Monday, November 22, 2010

Business value from the cloud – Process Machines


Using the cloud as a Utility service has advantages. It enables computing on a pay-as-you-go-model. However, the advantages of Infrastructure/Platform are highly relevant to IT departments. From a business perspective this is still same old IT. The underlying delivery model may be different and the pricing may be attractive, but it does not bring any meaningful value to business operations, besides optimizing IT functions.

To make the Cloud relevant to the business, the pay-as-you go paradigm needs to be extended to business functionality. What if … business functionality could be enabled "on tap". A business function that currently needs to be designed and developed by the in-house IT team could instead be leveraged on-demand by a hosted provider of functionality.

In this scenario, the cloud becomes much more tangible to the business, as it provides the ability to enhance existing business processes, and use these enhancements on as as-needed basis. Of course, this concept applies equally to both private and public cloud environments. The granularity of the business function needs to be defined, but several industry examples are available:

  • Calculations based on federal standards that change regularly (Ex: FDA mandated formulae for calculating sugar content)
  • Widget functions that are regularly used (Ex: Geo mapping capability)
  • Complex but static business functions (Ex: Tax filing)
The ability to leverage functionality in a cloud based model is enabled by using a SOA based infrastructure in the cloud. The process/function is the utility that is made available. The infrastructure / platform are irrelevant from a functionality perspective. These pieces of functionality aka: PROCESS MACHINES are created as virtual images and are then deployed as one holistic unit. The diagram below lays out the concept and deployment model for these process machines:


Own / Lease / Taxi … Zip Car


Defining the utility computing model and explaining various layers and types of clouds has been an industry staple for a while. Attempts to define the cloud have been many, and they have been memorialized in the NIST definition as reproduced below:

Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.

A conceptual model for the cloud layers is as follows:
The definitions and descriptions although accurate and complete fail to provide a sense of realism. I was recently asked to make the cloud "real" for a group of business leaders and chose the metaphor approach to explain the cloud. In doing so I ended up extending the metaphor and stumbling upon a concept that can potentially further drive cloud adoption. The metaphor I used was the classic car-based analogy.
  
We start with the traditional ownership model where you outright purchase a car. You own the vehicle, and can choose the color, the trim and the accessories. The car costs you the same whether you keep it in the garage or drive it 12 hours a day. You are also responsible for the maintenance and insurance for the vehicle.


This is the on-premise model for traditional software, where-in you own the software, can modify it as you please and are also responsible for the maintenance of the software.

A more recent model for software delivery has been the hosted model. This is similar to leasing a car. You own the vehicle, can accessorize it within limits, and can drive it when and where you please. The maintenance of the vehicle is not your responsibility. However you are limited to how much change you can make to the vehicle. For ex: You cannot change the color or add additional trim to the vehicle.


This model reduces the amount of ownership you have for the software, but it also lowers the maintenance overhead. As a business you start leveraging the software for the business function it offers without having to get overly involved in the maintenance of the application.

If the intent is simply to get from place A to place B and you do not care about what you drive and how the ride feels then using a taxi is an ideal solution. You use the taxi to get where you want. You pay for the time that you use the taxi, and have no ownership and no maintenance overhead. This is the cloud model for service delivery.


Granular pieces of functionality are leveraged on demand, and you pay for what you use. This is a highly efficient model for leveraging specific business functionality. There is no ownership and no maintenance overhead. Also you get what is delivered, and have no control over the structure of the services, and have to adapt your business processes to accommodate these services.

What if…. You liked the on-demand model of the cloud, the pay-as-you go convenience of the cloud, but still wanted the ability to customize your experience. Essentially you wanted a taxi, BUT wanted to choose the model of the taxi… AND you wanted to drive it. You wanted all of this for short periods of time and did not want to have any of the liabilities that come with ownership. This is possible, and in the "car" analogy is provided by the Zip car providers in major metro cities.


  This confluence of pay-as-you-go with the flexibility of limited ownership is provided by layering a SOA based approach in a cloud environment. This approach provides for a pre-built process on the cloud that can be further orchestrated to work with existing business processes.