Tuesday, August 4, 2009

Six steps to adopting cloud computing services

What is Cloud Computing?

Cloud computing is becoming one of the next industry buzz words. Cloud computing overlaps some of the concepts of distributed, grid and utility computing, however it does have its own meaning if contextually used correctly. The conceptual overlap is partly due to technology changes, usages and implementations over the years.

Trends in usage of the terms from Google searches shows Cloud Computing is a relatively new term introduced in the past year. There has also been a decline in general interest of Grid, Utility and Distributed computing. Likely they will be around in usage for quit a while to come. But Cloud computing has become the new buzz word driven largely by marketing and service offerings from big corporate players like Google, IBM and Amazon.

The term cloud computing probably comes from the use of a cloud image to represent the Internet or some large networked environment. Cloud computing is associated with a higher level abstraction of the cloud. Instead of there being data pipes, routers and servers, there are now services. The underlying hardware and software of networking is of course still there but there are now higher level service capabilities available used to build applications. Behind the services are data and compute resources. A user of the service doesn’t necessarily care about how it is implemented, what technologies are used or how it’s managed. Only that there is access to it and has a level of reliability necessary to meet the application requirements.

In essence this is distributed computing. An application is built using the resource from multiple services potentially from multiple locations. At this point, typically you still need to know the endpoint to access the services rather than having the cloud provide you available resources. This is also know as Software as a Service. Behind the service interface is usually a grid of computers to provide the resources. The grid is typically hosted by one company and consists of a homogeneous environment of hardware and software making it easier to support and maintain. (note: my definition of a grid is different from the wikipedia definition, but homogeneous environments in data centers is typically what I have run across). Once you start paying for the services and the resources utilized, well that’s utility computing.

Cloud computing really is accessing resources and services needed to perform functions with dynamically changing needs. An application or service developer requests access from the cloud rather than a specific endpoint or named resource. What goes on in the cloud manages multiple infrastructures across multiple organizations and consists of one or more frameworks overlaid on top of the infrastructures tying them together. Frameworks provide mechanisms for:
  • self-healing

  • self monitoring

  • resource registration and discovery

  • service level agreement definitions

  • automatic reconfiguration

The cloud is a virtualization of resources that maintains and manages itself. There are of course people resources to keep hardware, operation systems and networking in proper order. But from the perspective of a user or application developer only the cloud is referenced. The Assimilator project is a framework that executes across a heterogeneous environment in a local area network providing a local cloud environment. In the works is the addition of a network overlay to start providing an infrastructure across the Internet to help achieve the goal of true cloud computing.

Steps to adopting cloud computing services

  1. Assess IT software assets, then consider putting commodity and standalone applications in the cloud. The IT team should built a chart showing business users which applications they thought were differentiators and which ones they thought were commoditized and explained why applications they viewed as commodities were better suited for cloud services like email for LiveOffice. Standalone applications like HR/benefits and sales analytics were also better suited for the cloud.

  2. Reorganize IT teams according to application functionality rather than brand. To prepare for a virtualized/cloud environment, eliminate application silos such as those for Oracle or Siebel applications. IT thinks their value is associated with an application rather than a skill, so we need to change the mind-set to skills that we want in this new paradigm, like data management, business intelligence and analytics and the ability to do end-to-end business processing rather than skills tied to a particular application.

  3. Get a handle on your internal IT costs. What does email, ERP and clustered storage cost you internally? You need to know this before you can validate what it costs you in the cloud. Engage the finance department from the get-go to validate these costs internally compared with a services model.

  4. To socialize the cloud computing concept around the business, figure out the terminology that business executives and users are familiar with. When we heard that business users were reading The New Age of Innovation and using terms such as R=G for Resources are Global, he started to adopt the same terminology to explain the benefits of the cloud. You need to sync up the vocabulary around the cloud and virtualization with what the business users are hearing about it.

  5. Engage IT staff members by giving them a role in the process. Make testing cloud services a game for IT. pick several cloud applications for IT to test like sales analytics and HR/employee performance management and have no ground rules. Test whatever service on whatever provider you like.

    I can tell you that there is no better motivation for IT than to see the CIO/CTO doing it himself.

  6. Engage stakeholders throughout the organization. Information security, legal and finance are just a few of the groups that need to be involved.
    It took us two months to figure out security issues in the cloud -- with a lot of trial an error. The consensus in general is that security is ultimately up to you -- most cloud providers leave security parameters up to the customer, whether they be a need for encryption or beyond.
Reblog this post [with Zemanta]