I’m going to do a follow up on our Enterprise Architect Ulf Domanders discussion (Sharing is Caring) that lead down the Cloud and since this is a really big topic there will be a series of posts about it. I’ll start off with some background talk to move on and talk more about specific features.
So all of you have probably heard about the Cloud and what a powerful platform it is. So what is it and how come it’s going to revolutionize? Change the way we develop systems? Change how we are interacting with them and what we expect from them? I’ll do some short talking about it here.
I’m going to focus my cloud talking to Windows Azure. Azure has a lot of features and functions like databases, virtual machines, web system hosting, cloud service hosting, busses and more. Azure is a Platform as a Service (PaaS) and just like the more common seen, Software as a Service (SaaS), the whole idea is to use what you want to use and to pay for what you use, no more no less. It also has to be said that we don’t need to invest anything to get started, right now (when this is written) you even get the first 90 days for free.
So if I sign up for this what do I get? Access to an enormous computer park with almost unlimited resources! Think about that for a second, unlimited resources, that’s sick! What “normal” IT department can give us that to a reasonable price? I would say none. You even get the wonderful possibility to just demand more power at any time (a new computer, more website applications to handle that new peak on your website, database nodes, etc.), just ask for it and you will get it! No orders to create, no shipping times, no installing, no configuration to be done. It’s all done and ready to go within minutes! And when that peak is over? Just release it and stop paying for it. We can now have a slim (low cost) setup that easily and fast can be scaled and take 100 or tens of thousands times the normal payload or more, for just a short while or for as long as we like and we just pay for it while we use it.
But is the cloud for everything? No it’s not and we even need to consider if the system we plan to migrate to the cloud will benefit from the cloud features at all. Since the cloud is created for extreme situations that normal systems or solutions didn’t have to consider, most developers need to learn how to create or update systems to be able benefit and scale in a good way from these features. I would say that there is still a lot of developers that don’t use multiple threading, asynchronous call or any other form of parallel or task divided programming. It’s probably since it can be quite complex and hard to understand, even though there are very good frameworks out there that simplifies these tasks. On the same way the cloud simplifies the extreme tasks of controlling hundreds of clustered computers, busses, applications going up and down, virtual machines, scaling up and down etc. It’s still in the hands of us developers to develop systems in a way that they can and will benefit from all these fantastic features in a good way.
Just take the example that Ulf made, 2 600 000 hits found in 0.26 s!!! It is unimaginable for me as a developer on a small company to get the resources needed to perform that massive search in billions of billions of records, or I mean it was. Since this, the result of an extremely optimized and very good implementation of the MapReduce pattern (MapReduce pattern actually was created out of the paper describing Google’s search engine algorithm) running on Google’s own cloud platform. The cool thing is that we actually can access this today! We just need to start thinking CLOUD and start developing cloud native products! Just think about what we can achieve and how much easier hosting, scaling, testing and developing with high customer interaction will be.
Mobility will still be a key word in the future witch will continue push systems into the web and since most web system comes with a web services integration will be more intuitive and even more important. We need to do more with less! We need to be able to use our favorite web shop, erp-system, wms-system, invoice sender and so on and to just connect them by some easy steps. When that is done the systems will talk and with the right setup do most of the work for you!
As the nerd I am I love the Cloud and all the fantastic features it comes with. The possibilities it gives us and what new and unknown paths we will cross. Since we are in the beginning of using and understanding the possibilities of such great power anything can happen! It will most certainly revolutionize the software development and all that goes with it, the demand and the possibilities for system integration will grow and grow!
I just love it!