Cloud service providers tempt us with promises that we can move all our workloads to the cloud right away. In truth, incremental “cloudification” is more realistic. In this article, I trace the most common progression I’ve seen as companies migrate to the cloud.
Step 1: Toe in the Water – SaaS
With software as a service (SaaS) the entire backend infrastructure is hidden from the end-user. This makes SaaS the easiest way by far to work in the cloud. Whether we think about it or not, we’re already consuming many applications this way. Some are simply websites that give us access to useful content. Others are structured online applications with specific functions.
This point was really driven home to me the other day when I was configuring a new home PC. In the past I’d spend hours loading various applications on a new system – from Office, to fat clients, to utilities, to multimedia tools. This time I just installed my favorite browsers and an antivirus program and I was done. Just about everything I need is online including productivity apps, social networking, streaming media, and connectivity to work.
What to Watch For (WTWF)
For SaaS providers, the key to end-user quality of experience (QoE) is designing their application for the cloud. If the user base is distributed – as is often the case with cloud delivery – this means a distributed architecture, with multiple service nodes located close to major user populations.
Step 2: Wading In – Test/Dev, Backup
When new technologies emerge, they are initially used opportunistically. When virtualization came on the scene, for example, the first users were software developers who found it useful for test/dev functions.
We’re seeing the same pattern with the cloud, where the first users are often developers frustrated with the limits of traditional IT.
Rather than submitting a request for capacity – along with lengthy business justifications, capacity projections, security analyses, and the like – they can simply swipe their credit cards and get access to infrastructure or platform as a service (IaaS/PaaS) development environments.
Within the IT department, data backup is usually one of the first cloud targets. Rather than having to manage expensive and fragile tape libraries and media, the backup manager can simply point their data to an online backup provider. Many people already do this at home, and they know it works. Enterprise-class backup adds features like data encryption, archiving, e-discovery, and user self-service for restores.
For the test/dev use case, the most important thing to watch for is uncontrolled growth of shadow IT. This is similar to what we’ve seen with virtual machine sprawl in the virtualization world. Simply put, if it’s easy for developers to run things themselves, they’ll do so in a big way.
In the case of online data backup, network capacity and performance are critical to success. Some companies believe they can simply use their existing circuits and backup off-hours. A better approach is to perform a comprehensive network review, with an eye towards current and future services consumption. I explored this topic in a recent article about the benefits of high-capacity WAN.
Step 3: Waist Deep – Disaster Recovery, Non-Critical Apps
Once enterprises get comfortable with the idea that their data can reside in the cloud, they may extend their consumption of cloud-based services. Disaster recovery is a particularly appealing next step. Cloud-based DR offers a number of advantages over traditional approaches. I discussed the evolution of disaster recovery in more depth in a prior post.
In addition, cost-conscious or capacity-constrained IT departments may start moving lightly-used apps to run on an infrastructure as a service (IaaS) provider. Rather than having to procure, install, manage, support, and periodically upgrade physical systems, they can simply run the apps in a cloud-based environment.
As with data backup, proper network design is critical to the success of cloud-based disaster recovery and application delivery. When done right, these cloud services can be more flexible and cost-effective than traditional environments.
For example, a company might promote their DR environment to active processing if they need to perform maintenance on their physical premises and then switch back when maintenance is complete.
Step 4: Sink or Swim – Critical Production Systems, Desktops
Assuming all has gone well (or at least not horribly wrong) to this point, companies may start rethinking their IT operations entirely. What once seemed unthinkable – running mission-critical applications in the cloud – might become a reality.
Similarly, once developers have become used to coding in cloud-based development environments, they may logically want their applications to run in the cloud as well. This can be especially true as they make use of extended services and utilities provided in the cloud environment.
The move to the cloud for mission-critical applications may take the form of running traditional apps in a private and/or public cloud environment. Or, if SaaS alternatives are available – which they increasingly are – it might mean moving to service-based consumption.
In addition to applications, companies are also faced with challenges at the client access layer. Users are becoming more and more used to mobility and choice of devices. As companies evolve from a limited list of supported clients to a bring-your-own-device (BYOD) model, desktops as a service (DaaS) can become increasingly attractive.
As use of public cloud resources grows, most companies discover an important fact:
if you consume a lot of it, public cloud is expensive
This is when many companies discover the wisdom of an “own the base, rent the spike” consumption model.
And once again, for DaaS proper network design is key to end-user QoE.
Step 5: Ubiquitous Computing
Traditional IT delivery has long been faulted for being expensive, inefficient, and inflexible. Cloud computing promises to fundamentally change how computing services are delivered. The National Institute of Standards and Technology (NIST) defines the following essential characteristics of cloud computing:
- On-demand self service
- Broad network access
- Resource pooling
- Rapid elasticity
- Measured service
These characteristics are much more appealing to application and line of business owners. So while cloud computing is still in its infancy, every day we get closer to the vision described by John McCarthy in 1961 when he said: “computing may someday be organized as a public utility.“