You can think cloud as a very big computing machine with scalable computing storage and complex operating system that runs you application in multiple instance and give you benefit of parallel computing without exposing complexities like load balancing and scaling. In real world theses are data centers with complex automation software.
Microsoft View of Cloud Computing
Microsoft has a very different view on cloud computing. They are presenting their software Windows Azure like a operating system for data centers. Though there are other players like Google and Amazon in the market but they are providing a subset of offering in compared to Microsoft. Microsoft also has added advantage of it large product base and developer tools like VS201. Below is an conceptual view of Microsoft vision on cloud computing
Fundamentally there will be no change in tools and technologies being used to develop cloud application. Developer can use the same tool that have been using for year to develop cloud application but they will have to change the way they think the application. below are some key points that developer has to deal with in order to write cloud based application
- Statelessness: Cloud application are stateless and you can not store anything locally on the machine executing your code in cloud. Even session will not be of much use because if user issues five request to your application all may be served from different instances
- Distributed Design: None of two components of cloud are directly connected they always use message queuing to intact and this design is very challenging
Typical architecture of a cloud application
- Event Driven : Cloud application are developed in async model and highly event based and and going forward Even driven programming model will be key to success on mobile devices. But Even driven programming is more complex than other async approaches.
- Monitored Consumption : Cloud computing is driven by price not technology and every bit of code you write and every byte you save in cloud will be monitored and charged in $. As a result of this developer need to be more careful while writing code and designing table schema.
- For example if you fix, applied a patch to your application that increases over all computing requirement by .01% (looks too small) could cause significant $ if your company has thousands of servers.
- Similarly using char and varchar will significantly affect storage consumption and you will have to justify the increasing bills if it deviates to daily routine. so careful and start reading about optimizations.
If you feel that cloud computing is a promising future then you must invest some time to understand the technology it self. Lot of material can be found on internet and I have consolidated some key notes and good learning references on my site page https://sites.google.com/site/akstechtalks/keynotes/cloud-computing
Feel free to leave your comments.