Since the days of the first SaaS (Software as a Service) entrants the idea of provisioning computing resources from external hosting providers has clearly become mainstream. Search for “Cloudsourcing”, “Cloud Computing” or whatever you call it and you’ll see a wealth of information and a wide selection of mature and incumbent offerings.
From a technical and architectural perspective there is much to hold my interest. Architecturally, the cloud paradigms bring latency and other considerations to the forefront that generally did not figure strongly for in-house architectures. An architecture that entertains cloud storage, for example, clearly cannot accommodate regular high volume data requests and expect to be responsive. That does not mean that cloud-based storage should be discounted. Perhaps a hybrid architecture provides the best business value where large volumes of archived data are hosted in the cloud, with day-to-day operational data retained in-house. Such a hybrid data services model is put forward by Eugenio Pace and Gianpaolo Carraro in their article “Head in the Cloud, Feet on the Ground” in the October 2008 edition of the Microsoft Architecture Journal. Their article is definitely worth a read and I’ll be referring to it later on in this post.
The surge in Cloud Computing, like many IT paradigm surges, will incite a gamut of opinions and assessments. Some will hail Cloud Computing as a revolutionary, game changing force. Some will see it as yet another distributed computing model. Like others, I see it as evolutionary, a natural progression of distributed computing capabilities that reflects the evolution of hardware, networks, standards, computing economics, etc. Cloud Computing is significant and will have a profound impact for the following reasons: provisioning, sustainment, scaling, and cost. Not having to buy hardware and software, install it, scale it, patch it, cool it, upgrade it, fix it, hire Systems Engineers, etc, is a big deal for many businesses. Start-ups need not get side tracked mucking around provisioning and sustaining their own hardware and software and can, instead, apply those cycles to what will be their core competencies. Established businesses may be able to reduce computing costs and improve service levels by leveraging the Cloud. And therein lies my primary Cloud Computing interest at the moment: making sense of the Cloud from a business value perspective (i.e. understanding the value proposition). The subject of value, especially for enterprise-class customers, is addressed in the Sand Hill Group article “Capitalizing on the Cloud“.
When to go to the Cloud (the business decision) and how to go to the Cloud (the planning and architectural decisions) are obvious questions that require careful analysis. No doubt some will rush to the Cloud based on a cursory analysis of costs in a similar way that many rushed to outsource without accounting for the hidden costs. I recall the outsourcing rush that infected and pained the investment bank I was working for at the time. Senior execs mandated to IT managers that 25% of IT projects be outsourced. On paper it all looked too good to be true and it was. Outsourced developers cost a fraction of the rate of a London-based developer. Simply engage offshore developers to build the application, reap the savings and collect your big banking bonus. Anyone familiar with IT outsourcing knows how the story ended for many businesses bitten by the outsourcing bug: the hidden costs of additional management overhead, communication issues, quality issues, etc, quickly negated the labour rate savings and, in many cases, increased costs for many projects.
Making sense of Cloud Computing and its value to your business will require an understanding and analysis of more than just costs and architecture. On paper, compute time rates, data storage rates, and software usage rates may seem attractive. Quick calculations may illustrate savings. But what about regulations that govern data storage (e.g. healthcare regulations, the US Patriot Act)? Do regulations governing your business require that data be stored within your national boundaries? If so, are there any Cloud data storage providers that will provide geographically constrained storage to ensure your data is physically stored within your national borders? Amazon have introduced Availability Zones for their Cloud Compute (EC2) offering that let you specify distinct locations for your compute server instances. Their Cloud storage offering (S3) will likely follow suite allowing you to confine data storage to specific geographic regions.
In addition to regulatory considerations, there are many other factors that need to be understood before migrating applications to the Cloud. For mission critical applications that are architectural candidates for the Cloud, an assessment of Cloud providers will require an understanding of how they support high availability and disaster recovery. High availability considerations not only touch on the Cloud but also on an organization’s Internet connectivity. High availability requirements for Cloud applications will require redundant Internet connectivity on the organization’s part in addition to the high availability infrastructure provided by the Cloud provider. When it comes to disaster recovery perhaps the Cloud will provide better value. Many organizations either don’t have a proper DR plan or have not tested the plan sufficiently, exposing the company to an elevated risk of being unable to survive a disaster scenario. A solid Cloud provider will have a solid and fully tested DR plan since DR will be (or should be) one of their core competencies.
For a good architectural perspective on Cloud opportunities, I recommend the article “Head in the Cloud, Feet on the Ground” by Eugenio Pace and Gianpaolo Carraro. The bulk of their article focuses on what they call localized optimization through selective specialization (LOtSS). LOtSS is concerned with lowering software architecture “transloading” costs; the costs associated with managing the architecture across the enterprise-cloud boundary. They point out that security, application management, and integration are typical aspects that can incur unacceptable transloading costs. Organizations that are planning on adopting Cloud Computing will need to account for those transloading costs to effectively gauge the value of Cloud architectures.
The successful adoption of Cloud Computing to align with and support business strategies will obviously need to be backed by a value-focused plan which should include the assessment of architectural transloading costs. The plan could take the form of an adoption model such as “The Cloud Computing Adoption Model” which is loosely based on the Capability Maturity Model (CMM) with five maturity levels: Virtualization, Cloud Experimentation, Cloud Foundations, Cloud Advancement, and Cloud Actualization. Planning, adoption models, guidance, road maps, and assessments will be areas of continued and future focus as I work towards more formalization of Cloud Computing approaches and best practices for our customers.