Cloud computing has been held up as the next great leap organizations should take. Yet, I see few using these offerings for other than standard applications, pre-built features and some non-critical and departmental applications. Customized enterprise applications and those that offer competitive advantage are rarely built in the cloud today.
The draw of the cloud are many. In George Reese’s book, Cloud Application Architectures published this April, he draws the following comparisons:
From this, he concludes:
The one obvious fact that should jump out of this chart is that building an IT infrastructure from scratch no longer makes any sense. The only companies that should have an internal IT are organizations with a significant preexisting investment in internal IT or with regulatory requirements that prevent data storage in third-party environments.
Everyone else should be using a managed services provider or the cloud.
And, after more analysis:
If we exclude sunk costs, the right managed services option and cloud computing are always financially more attractive than managing your own IT.
If you have an application that you know has to be available 24/7/365, and even 1 minute of downtime in a year is entirely unacceptable, you almost certainly want to opt for a managed services environment and not concern yourself too much with the cost differences (they may even favor the managed services provider in that scenario).
On the other hand, if you want to get high-availability on the cheap, and 99.995% is good enough, you can’t beat the cloud.
Certainly, 99.995% availability is greater than most internal or even managed service organizations achieve. So, what will it take for enterprise IT to fully embrace the cloud as a development architecture? Let’s look at a few counter points to Reese’s analysis that cause friction.
Many organizations see the perpetuity cost model as unfavorable. While total cost of ownership within the first 3 or 4 years usually wins for the cloud, many organizations don’t like the longer-term analysis that often favors traditional models. Accounting rules also penalize pay as you go models.
Security concerns and concerns over the cloud provider’s reliability and viability make enterprises uncomfortable with relinquishing control of their critical data and unique functionality even if permissible by regulations. Examples show that data privacy may be at risk. Data can be lost. Downtime can be unexpected and prolonged. While all of these are possible with other architectures, the perception is that they are greater in the cloud. And, if a provider does go away, the entire infrastructure could need to be recreated quickly at very high costs.
Reese skirts perhaps the biggest issue – sunk costs. He mentions this from a financial perspective, but the sunk costs are many and are hard to over come. Enterprises have sunk costs in terms of legacy software, legacy data, legacy skill sets and existing infrastructure. Many enterprises start with packaged applications which do not fit well into the cloud as the basis for their customized offerings. Even if package conversion was easy, enterprise applications typically have many custom features that need to be re-recreated for the cloud. Organizations also often need to convert their existing data to new formats to use these applications. Cloud architectures are poorly understood and few resources know how to work with them when creating applications. New skills are needed, even if by fewer resources, to manage, configure and customize cloud applications. These are in addition the the main sunk cost: using still available, depreciated assets can be too enticing to make the leap.
The cloud will one day be a force for enterprise IT. Early adopters have show benefits with non-critical applications and we see many examples of architectures taking the first steps by exposing and utilizing web service API’s to extend offerings. Many start-ups have benefited from the low entry costs for building new businesses. But, it seems to me, that until the benefits become more magnified, or the counter points to cloud architectures are minimized, larger-scale enterprise adoption will be slow for core applications. Someday, everyone may program in the cloud, but the friction that exists today pushes that date further into the future.