Wednesday, April 22, 2009

Which Cloud Is Right For You?

As you read the title of this blog, you are probably thinking "What are you about to sell me?". Being the architect and consultant at heart that I am, I couldn't bring myself to do that just yet. No instead I want you to think about the various kinds of cloud computing.

Conventional definitions are mostly restricted to public versus private clouds. However, the Cloud Cube white paper from the Jericho Forum and Chris Hoff's elaboration on the cloud cube expanded my concept to include a much broader spectrum of possibilities.

Not only can clouds categorized in terms of public and private but they can also be characterized in many other terms as well. Consider the following possibilities:
  • Internal/External (e.g. in your company's datacenter),
  • Open/Proprietary (e.g. Interoperable, Portable and Interchangeable),
  • Perimeterised/De-perimeterised (e.g. Operating within the traditional IT perimeter),
  • Insourced/Outsourced,
  • Offshore/Onshore (e.g. would offshoring data create a security or privacy risk?),
  • Reglatory X compliant/Non-compliant (e.g. HIPPA, FISMA, SOX, ... etc.)
  • Single tenancy/Multi-tenancy (dedicated/shared server, network storage,... etc.),
  • Isolated data/co-mingled data (e.g. disk storage, database, backups, directory),
  • Dedicated security/Socialist security,
  • and On-premise/Off-premise
Once you start to consider these many facets of Cloud Computing, it becomes easier to understand why it can be so complicated. The conclusion that I came to from this broadened perspective is that it is vital to understand as many aspects of the requirements for your service before blindly jumping into a specific Cloud Computing solution. You may find that there were more requirements than you thought that were inherently addressed by hosting your service within your private datacenter. However, you may find that your service may be very flexible and have a wide variety of cloud options. The main point is to understand your requirements so that you can make the most informed decision possible.

Thanks to the folks at the Jericho Forum and Chris Hoff for broadening my perspective.
Thanks also to Joel Weise for the referral to Chris Hoff's blog.

Brad




The 10 "S"es of Cloud Computing

Hello again,

In my efforts to keep up with all things virtualization, I have begun to learn about Cloud Computing. The starting point for everyone on this journey is to find out "What is Cloud Computing". You will most likely find as I did in this video that there about as many definitions of Cloud Computing as there are people.

Drawing on the The Five Pillars of Cloud Computing, Cloud Computing in Plain English, Rethinking Application Delivery and other resources, I suggest that Cloud Computing is the intersection of the following 10 "S"es:
  1. Services - Infrastructure (IaaS), Platform (Paas), Software (SaaS), Storage (DaaS)... etc.
  2. Servers - Physical or virtual servers.
  3. Storage - The footprint of storage required host the operating systems, services, and data for your service(s).
  4. Service Networking - Physical and/or virtual networking.
  5. Self Service Orchestration - The ability for end users to in an a manual or automated way signup, provision, manage, use, integrate with other services (like data stores, identity services, or any other services), populate (load data), control local and geographic load balancing participation and deprovision hardware, operating systems, or services services.
  6. Self Updating - The underlying hardware, operating systems, and software services are maintained in an automated or at the very least controlled way.
  7. Service Metering - Account for services (Iaas, Paas, and Saas) consumed in as near real time as possible. Think of Google Analytics that benefits both the user and the service provider. For the user, it provides at a granular or global level the usage of the user's service(s). For the provider, it accounts clearly what and how the services are being consumed.
  8. Service Billing - Automated chargeback mechanism for metered services.
  9. Security - Although this isn't talked about much, it needs to be an inherent component of every architectural component of Cloud Computing.
  10. Service Level Agreement (SLA) -An SLA is essentially a contract between a provider and a consumer that defines acceptable terms that the provider is willing to agree to for a certain price to deliver the service to the consumer. If the provider fails to satisfy the terms of the SLA, the provider typically pays a fine to the consumer as compensation. SLA terms are typically defined in terms of availability (e.g. 99.999% uptime), response times (e.g. no greater than 1 second), or throughput (e.g. no less than 1,000 operations per second). At the present time, the main cloud computing providers offer SLAs but they are typically very weak and not par with most enterpise computing much less service provider level expectations.
I hope you find this definition useful in your pilgrimage into the world of Cloud Computing.

Regards,
Brad