Saturday, April 14, 2012

Future of IT: Devices will be RESTing in Cloud

For last couple of weeks I was trying to understand cloud technology from a overall industry prospective and thought to share. Overall Cloud and REST(Also called cloud protocol) seems to be technology of future. With the evolution of hand held computing and mobile device proliferation cloud is going to be a dominating plat form of future.This blog post will give you a very quick overview of what exactly cloud is?

What is cloud 
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
Impact of Cloud Computing on Software Development 
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.

What Next 
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

Feel free to leave your comments.

No comments:

Post a Comment