Flying High in Cloud Computing

Several hours of my life Tuesday night were spent with my head in the clouds. I was attending the “un-conference” conference on cloud computing dubbed CloudCamp in Indianapolis. The interesting discussion – generated around topics such as the very definition of the cloud and even the appropriateness of its use for various implementations or components - got me thinking about what is available and what is still missing from existing frameworks.

Microsoft (not surprising) has made major investments in building out Azure (Microsoft’s cloud implementation) and has created a rich set of documentation to describe its functionality and architecture. Their offering is leveraged for many of Microsoft’s own applications supporting products like Live and Mesh (a fantastic tool).

What makes a cloud a cloud? If you are in the business of supporting corporate or commercial applications, you are beholden to some sort of hardware infrastructure. Five years ago that infrastructure was most likely dedicated hardware (DB servers, application servers, etc…). Pushing for economy of scale and better utilization, IT shops have been offering the layers of n-tier application frameworks as business services within the organization. First RDBMS (Oracle/SQL Server) clusters, then application servers like WebLogic and WebSphere, were transformed as business offerings that hosted like tiers across the entire application space of an organization. Later ECM platforms and other application frameworks were extended to serve the enterprise in general (Documentum and now SharePoint). Fewer administrators and shared hardware (better utilization in both cases) drove costs down.

New applications still required new hardware to expand the services in most cases and non-functional design and implementation remained a lengthy and costly part of deployments. Hardware requirements to support peak loads were often miscalculated and either fell short or wasted power and CPU cycles. Cloud computing brings the promise of eliminating much of this cycle and is beginning to deliver.

What is a Cloud?

Literally a cloud is a group of water molecules floating above that is just big enough not to condense and fall and yet just small enough to hold the present level of moisture…. Restated a cloud is an ever changing system of capacity that self regulates based on pressure and temperature. In our world of computing a cloud is much the same. We just substitute capacity for good old H2O. When the pressure goes up a natural cloud will likely deliver some of its moisture to us… The computing cloud will deliver more capacity when we need it as the pool of infrastructure resources is “detached” from any specific task. Hardware and software vendors are beginning to sell cloud specific modular packages to help the industry (and you) build out with less hassle. EMC, Cisco and VMware now offer V-Block, a combination of EMC storage and Cisco virtualized servers running VMware underpinnings (see http://online.wsj.com/article/BT-CO-20091030-715748.html).

How does this differ from a virtualized server room?

In a virtualized environment (VMware for sake of argument), physical hardware and logical servers are managed separately. An application like VMware manages the bare metal hardware and its resources as a pool of available capacity at a server level scope. Administrators generally create rules to align logical servers with physical machines or more generally to portions of the available capacity (provisioning). This sounds a lot like cloud computing to me and in fact is very close to the finish line and satisfies some definitions as long as the virtual server instances can be dynamically allocated and scaled horizontally. Many companies (most at this point) have moved to this virtual provisioning technique or are moving in that direction.

What else is needed to achieve an internal Cloud?

The difference between virtualized servers and a cloud is related to provisioning and scope. While VMware, Microsoft Hyper-V, Sun, Xen (open source hypervisor used by Amazon) and others provide technology to dynamically provision logical servers across physical hardware pools, they do not (typically) provision capacity for application layers on their own. Let’s look at the cloud from a different angle. Suppose I have a typical 3 tier application that runs on the web: Thick Client – Web Browser (Tier 1), Dynamic Web Application (tier 2), Database (Tier 3). The application can be broken down into data services, application services (logic) and UI services. All of these services have defined relationships and some design pattern to tie them together. In most cases the application services handle the integrations. Scaling this typical application usually requires separate activities for scaling out the application server (perhaps re-provisioning WebLogic nodes in a large cluster) and very complex re-provisioning of the backend database cluster. Often these changes require redesign and upgrade of SAN or NAS storage solutions, updating and retesting HA (high availability) and DR (disaster recovery) scenarios and backup/snapshot procedures. Many different corporate IT disciplines get involved, Program Managers, Unix Engineers, Windows Engineers, Application Specialists, End Users, etc…. When these problems go away, you have arrived in the clouds.

To achieve this goal a fabric must be woven above the provisioning layer that can dynamically align application spaces with runtime needs based on business rules provided at deployment. I believe that Microsoft Azure is on its way to becoming the most fluid environment available for running your applications and services and most closely fits the total model of cloud computing.

“The Windows Azure platform offers an intuitive, reliable and powerful platform for the creation of web applications and services.

The Windows Azure platform is comprised of Windows Azure: an operating system as a service; SQL Azure: a fully relational database in the cloud; and .NET Services: consumable web-based services that provide both secure connectivity and federated access control for applications.

Currently in Community Technology Preview (CTP), the services are free to evaluate through January 2010. We will begin charging customers on February 1st, 2010.” – Microsoft Windows Azure Platform web site…

Notice that Microsoft views the cloud as an Operating System as a Service (OSAS).  A significant point worth contemplating.

Most cloud offerings handily manage provisioning at a virtual machine level.  However in most cases common facilities for handling provisioning and automatic scaling at a specific service level are still lacking.  Also, the need manage state between the virtualized services loosely coupled to provide for such scaling still needs more standardized messaging and transaction boundries.

Cloud is good!

What if instead of using Oracle for a back end tier you had available an absolutely limitless capacity for data services abstracted from both vendor and hardware realities. One request for a result set or one million requests in an hour all produced with equal performance (from one application or thousands). Cost is variable based on your actual usage and there is NO requirement for internal staff or monitoring (assuming your application works). That would mean no load meetings to discuss outsourcing or personnel issues… Everyone on your staff could concentrate on moving forward and providing more competitive advantage in your market.

The benefit: If you need a new business or commercial application and can design it to run efficiently in the cloud (more on that another time) then you can build and release without much concern for capacity or hardware support of any kind.  A good way to live!  How far will we dive into the clouds in 2010?  Only time will tell.

This entry was posted in Cloud Computing, General IT Trends, Virtualization and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>