By now, we have all heard the success stories in which companies have increased their agility, lowered costs, reduced their data center footprint, built impressive high-scale systems, or gained competitive advantages by leveraging cloud computing services. But for every success story, there are one too many companies that struggle to capitalize on the promise of cloud computing.
Companies that race to the clouds without any formal strategy often end up with less than stellar results. Instead of finding that pot of gold at the end of the rainbow, they find themselves at the dark side of the cloud. What does the dark side look like? Here is a short list of issues created by failed cloud initiatives:
- Higher than expected costs
- Poorly performing applications and services
- Gaping security holes
- Reliability issues
- Inability to track IT assets and service portfolio
- Propagating application silos into the cloud.
Be Careful What You Wish For
The cloud gives development teams the ability to be more self-sufficient. Long procurement cycles are now replaced by on-demand services. Infrastructure as a service (IaaS) gives developers quick access to large quantities of compute, network, and storage infrastructure that can be provisioned in minutes. Applications can be built and deployed in a fraction of time that it has taken in previous years. With Platform as a Service (PaaS), developers can build applications on top of platforms without having to manage the underlying operating system, database management system, network infrastructure, and disk storage systems. PaaS manages things like auto scaling, patching, failover, etc. Software as a Service (SaaS) provides complete applications, often exposed as APIs where developers can integrate their own applications with services delivered over the web. All three of these cloud service models provide developers with on-demand capabilities that enable software to be built and deployed more quickly, cheaply, and easily than ever before.
Unfortunately for many companies, this does not always translate into great results. Building software in the cloud requires a different architecture and a different set of processes than companies are used to for traditional on-premises deployments. Companies that do not acknowledge this and continue to operate in their set ways will struggle mightily in the cloud.
Where many companies go wrong is in not taking a holistic view of the application portfolio before approaching the cloud. Instead, they head to the cloud one application at a time and often in silos. Enterprises are made up of years of legacy solutions buried in application or business silos. Many of these applications and services are suboptimal and outdated. Enterprises are laden with redundancy caused by mergers and acquisitions and from years of developing within application silos. Too often, companies don’t address their “sins of the past” and repeat these mistakes in the cloud. Before diving into the cloud, companies would be wise to take a step back and analyze their application portfolio.
Too often, companies start building cloud services with no real plan and no structure. Core services like security, logging, monitoring, and others are not available. The end result is that each application owner implements its own services unique to its applications. Over time, companies find that they now own several different tools that provide the same functionality. This brand-new cloud environment quickly starts to become as complex, redundant, and wasteful as the legacy on-premises environment. Old on-premises silos become new cloud silos. Costs start spiraling out of control, and all of the issues from the legacies eventually find their way into the cloud.
The definition of insanity is to do the same things over and over and expect different results. Yet here we are again. Just because the cloud makes it easier to build and deploy applications does not mean the end result will automatically be any better than in days gone past. Companies should take a step back and put some thought into building a strategy for moving the organization forward into this new world called the cloud. Here are what some of the outputs of the portfolio analysis should be:
- A list of applications and services targeted for the cloud
- A list of unique design patterns targeted for the cloud
- A list of core services that should be provided to development teams (logging, monitoring, security, etc.)
- A reference architecture
- Operations strategy (how will we support this?)
- Roadmap (in what order will we deliver core services and build applications?)
- Organizational assessment (how ready are we, and what changes do we need?)
- Cloud portfolio assessment (what do we already have in the cloud?)
- Cloud principles
- Business drivers and opportunities
- Business requirements and constraints (e.g., compliance issues, SLAs, etc.)
This analysis does not need to be a long process. Investing four to eight weeks in it is a worthy investment. From this information, a company can start laying the groundwork for transforming the enterprise from a legacy on-premises delivery model to an agile cloud model.
Skipping this early analysis step, on the other hand, will most likely lead to chaos in the cloud. Without a cloud strategy, companies will simply take all baggage they have today on-premises and move it to the cloud. A pragmatic shift to the cloud can instead allow a company to free itself of many burdens from our legacy architectures. But going to the cloud without a sound strategy will just propagate all of your current pain points into the cloud and potentially make things worse. Don’t make that mistake.