Cloud Computing Bootcamp
By marina on Nov 29, 2008
Silicon Valley Cloud Computing gurus, SOA experts, and Virtualization vendors had a chance to explore and share the technology insights during the Cloud Computing Expo event in November. I attended the Cloud Computing Bootcamp, led by Alan Williamson, as well as preview products and offerings at the expo floor. The bootcamp was quite informative and started with the definition of Cloud Computing term. Well, there is no formal definition commonly shared in industry, unlike Web 2.0, and it is very broadly defined as on-demand provisioning of application, resources, and services, that allow resources to be scaled up and down. Wikipedia's definition, authored by Sam Johnston, specifies a six layer stack that encompasses Client, Services, Application, Platform, Storage, and Infrastructure. That was the basis for the bootcamp session, with individual layers explored in depth with regards to their nature, pros & cons, and players in each space. I'd like to summarize just a few of the layers and mention Sun technology in each category.
Layer #1 is the Infrastructure Layer. It consists of an operating system on demand, i.e. cpu/memory/processing. Some of the vendors in this space include Amazon EC2, FlexiScale, GoGrid, AppNexus, and Joyent. Sun partners with a number of hosting vendors to enable OpenSolaris as part of the deployment platform, which is available with Amazon EC2 and Joyent among others. With OpenSolaris, you can leverage DTrace, optimized AMP stack, and ZFS. Additional value add for Sun Startup Essentials members is FREE one year hosting available for Facebook, Bebo, and OpenSocial application developers on Joyent.
If you are a hosting provider, Sun offers all the building block for setting up the hosting environment. Starting with servers, storage, virtualization, OS, management components, AMP stack, you can leverage many of the proven Sun technologies to build up a cloud environment.
On the Infrastructure layer management side, RightScale and ElasticServer are the top two players that help you to monitor your site, provision new instances, and manage your environment. Similar to other layers and vendors in the space, there is no out of the box interoperability among the infrastructure providers. Therefore, your application stack should be very portable so that if you decide to move from one hosting environment to another, you can do so.
Layer #2 is the Storage Layer, which includes file or object based data storage. Users are billed based on the bandwidth and consumed storage. Amazon S3, Nirvanix, Mosso, Amazon's SimpleDB, Google's BigTable, Azure Storage are among storage providers in this space. With growing number of Web 2.0 companies offering media based applications, e.g. content aggregation, image searching and processing, these services are quite popular. On the down side, there are no common storage data access API shared among the vendors; also, there are limitation on the size of the data. As your storage consumption growth, the bandwidth cost of the service provider may become higher than the cost of the custom managed storage infrastructure. Thus, it's important to monitor and provision storage in a way that is cost effective for your business.
Sun has introduced recently Sun Storage 7000 series, and with Sun Storage 7210 Storage Array (SS7210) in either striped or mirrored configuration you can stream over 700MB/sec video content with 90% CPU utilization.
On the storage management side, Jungle Disk (acquired by Rackspace), ElephantDisk, PutPlace.com are a few popular service providers.
Layer # 3 Platform Layer comprises a complete software stack and an IDE for the cloud. This layer is responsible for the load balancing and resource provisioning. A few players include Google App Engine with support for Python, Force.com (SalesForce), MS Azure for .NET developers, Heroku.com for Ruby On Rails gurus. The latter one is built on Amazon's EC2.
In this layer, Sun offers to developers Zembly platform that enables building and deploying Facebook, OpenSocial, Meebo and iPhone applications.
With great benefits offered by each of the providers, there are still deployment differences, vendor lock in, and limitations to the underlying language support.
Cloud Computing paradigm became a de facto deployment environment for many startups, but before jumping on on its bandwagon, it is important to keep in mind your application requirements from the infrastructure, platform, database, performance, and scalability standpoint. The greatest value of the Cloud Computing is reduced TCO for application deployment and management, thus many companies take advantage of a cloud particularly for the initial launch of their sites. Once user based grows, some companies realize that for their specific application and data usage, cloud many no longer be the most effective alternative from the cost perspective. Aside from that, Cloud Computing may not offer the same server configuration, security, and SLA's critical to the business, as you may setup in your datacenter. Cloud provides you with a sandbox for your application deployment, thus flexibility is limited.