Top Reasons for Moving to the Cloud
Do a quick online search about companies moving to cloud computing (e.g. “survey moving to the cloud”) and soon you’ll see a theme that the shift to cloud computing is happening faster than expected. An impressive number of small to midsize companies have gone all-cloud, and quite a few large enterprises plan to be all-cloud in five years. From my perspective as a consultant helping many clients with cloud projects, I hear a continuous stream of requests from clients asking for help in moving to the cloud. Clearly they are seeing some benefits with cloud computing. Here is a quick list of benefits based on what I’ve most commonly seen from clients.
[Note: if you’re new to cloud computing, please read my Cloud Primer post first.]
As I’m already working on a soon-to-be published blog post that discusses cost in the cloud, I’ll not go into great detail here. So, in brief, can you save money in the cloud? Absolutely, but that totally depends on your situation. Personally, I have worked with a few clients who have moved to Microsoft Azure from on-prem, and also to Azure from Amazon’s cloud (AWS), with cost being a driving factor. In their cases, signing an Azure Enterprise Agreement with Microsoft brought significant discounts to Azure’s published pricing, which made it worth the switch. A colleague of mine recently worked with a client to move from a third-party hosting provider to Azure and they saved over 40%. That doesn’t bode well for the long term viability of old school hosting providers, which is why many of them are scrambling to rebrand themselves as cloud providers. Undoubtedly the cloud is a disruptive innovation.
So clearly you can save money in the cloud. It’s important to note, however, that for many of my cloud clients, cost was not a leading factor for moving to the cloud. Sure, they wanted to stay on par with their current costs, if not save some money. But their main reasons are discussed in subsequent sections.
Enough said about cost for now, as my next post should be published soon.
Agility in the cloud means that your development teams can be more productive in the cloud. It’s all about faster time to value. I’ve been a consultant for many years, and most clients I’ve worked with have a process to follow if you need to procure some infrastructure, whether that’s hardware or software. Need some servers for your dev environment? Then submit a request, wait for approval, wait some weeks/months for the hardware to arrive, wait for the infrastructure team to install and configure it, and there you go. Even if your server room is highly virtualized, it’s a safe bet that at best it will take your infrastructure team a matter of days or weeks to fulfill your request. That’s an example of slow time to value. The important question for you to answer is: How long does it take for you to get new servers deployed? How about an entirely new test environment?
Another example. Your team decides to use a new technology in their technology stack. Everyone’s on board, so how long does it take to get that installed on your dev/test/production environments? For many of my clients that’s still another time-consuming process. Again, that’s slow time to value.
In the cloud there is little to no waiting whatsoever. You want a new environment? Your devs can go stand it up in a few minutes or hours, depending on complexity. Definitely not weeks or months. For example, I can stand up a new developer VM in the cloud, with development tools installed, in a few minutes. A new SQL database, or a bunch of storage, or a high-performance caching service? All take just a few minutes. How about something more complex, like a SharePoint farm or a Hadoop cluster? Depending on the complexity that could take some time to fill out all the specs, but still it should be less than an hour. And if you want to tear it down, tweak it and redeploy, it will be much faster the next time around. Even better, you can create a template out of that deployment and then use that template as the basis for automating your deployments to other environments, like test or staging or production.
On a related note, it’s not only your development teams that benefit; your infrastructure team benefits too. The cloud providers offload a lot of the grunt work your infrastructure team would rather avoid. I’m sure some people love racking and stacking servers, replacing hard drives, running cable, etc., but those aren’t high value activities for most businesses. Now this doesn’t mean that you’re going be laying off infrastructure staff; rather, it means that they can avoid the drudgery of maintaining basic infrastructure and focus on more strategic, high value priorities.
In sum, cloud agility means that the cloud offers much faster time to value than on-prem options. The cloud provides your development teams with the resources they need, without delay, which increases their productivity and speeds up their development efforts. It also frees up your infrastructure team to focus on strategic priorities.
Flexibility refers to the overwhelming number of options that the major cloud providers offer. So not only does the cloud provide agility, it also provides incredible flexibility. Need compute? Check out all the VM options. As of this writing AWS offers 40 VM types, Azure offers 68, and Google offers 18 (as well as custom machine types). Some are general purpose and some are specialized, and all offer a huge variety of operating systems to choose from, a variety of regions, etc. So many options. Need storage? Choose from basic storage, or high-performance premium storage, or very cheap backup storage; and while you’re at is, also choose from various regions, backup options, etc. You need a database? How about a website? Caching? Analytics? Again, so many options. Some are IaaS, while others are PaaS or SaaS. The list just goes on and on and on, and they’re all ready to use without delay. At present AWS offers 68 services, Azure offers 58, and Google 47. Again, it’s pretty overwhelming but it’s way better than the relatively small tool belt your dev teams have at their disposal.
Another aspect of flexibility is that the cloud providers are constantly creating new services, as well as evolving & improving their current offerings. The pace of change within the cloud can be overwhelming, for better or worse. The continuous stream of new offerings is great, and the continuous improvements to cloud services means that they become very robust and feature-rich over time. But it can be difficult to keep up with all the changes. One very cool thing that I’ve experienced working with Microsoft Azure is that the Azure teams actually solicit feedback and use that feedback to prioritize their work. I’ve had more than a few of my requests incorporated into various Azure services, which feels pretty good.
You’ve heard that the cloud offers nearly limitless scale, which is true. If you need massive scale for your cloud solution, then that’s totally doable. But what’s more important is that the cloud offers you the *right* scale when you need it. The vast majority of clients I’ve worked with have significant variability in the scale their applications need. Some vary by time of day, others by time of year. For example, perhaps you’re a retailer whose website gets incredibly busy from Thanksgiving through the new year. The point is, in the cloud you can scale your apps up when needed, and then scale them down when possible to save money. This means you can avoid the wasted compute that is so typical of on-prem infrastructure. The ability to scale up and down in the cloud as needed is called elasticity.
Another aspect of scale is the cloud’s worldwide distribution. That allows you to deploy your infrastructure close to your users to minimize latency. So if your customers are across the US you can deploy your app to various data centers across the US. This can help distribute your workload across regions to increase performance, and also minimize latency. The same applies if your customers are global, especially if they’re in countries with tight data sovereignty laws, such as Germany and China. Presently Amazon has 13 regions with 4 in process, Azure has 26 regions with 8 in process, and Google has 4 regions with 2 in process.
One benefit of cloud computing that you don’t hear so frequently is that it changes the way IT works, and allows IT to accomplish things that were out of reach before. This “Cloud-enabled IT” is a result of all the benefits we’ve discussed so far: cost savings, agility, flexibility, and scale. Through these benefits, cloud-enabled IT teams can leverage a very wide array of tools and services to deploy applications faster, cheaper, and at dynamic scale – all things they couldn’t do previously. Here are a few examples:
- I’ve worked with clients who have taken advantage of the cloud’s scale to sell their solution to much larger customers than they could have before.
- Some clients have gained significant cost savings by migrating to the cloud from more expensive hosting providers. In doing so they also gained the other benefits of agility flexibility and scale.
- Other clients have taken advantage of the cloud’s “pay per use” model to minimize their risk. They’ve taken small bets by deploying innovative new services to the cloud, hoping that they’ll take off and be successful. But they do so knowing that even if a new service fails to meet their goals, they can just tear it down and sigh with relief that their investment was minimal, thanks to the cloud.
- Other clients have been emboldened by the cloud to create strategic applications even though they have no IT staff whatsoever. They’ve leveraged development teams from Cardinal Solutions to build and deploy their apps using cloud PaaS services, knowing that PaaS services are so easy to monitor and maintain. Thanks to the cloud they don’t need on-prem infrastructure, or a contract with a hosting provider, or their own IT staff.
- Still other clients have used the cloud as an inexpensive warm/cold disaster recovery site, or a cheap backup solution. And the list goes on…
Reality Check: Time and Effort Required
Now, for full disclosure it’s important to note that taking advantage of all the benefits of cloud computing doesn’t happen overnight. It takes some time and effort.
- Depending on your teams’ familiarity with the cloud, there could be a pretty steep learning curve to climb. You’ll have to learn the various IaaS/PaaS/SaaS services available, how to navigate the cloud portal, how to architect your applications in the cloud, etc. There really is a ton to learn. For people like my colleagues and me that’s exciting, but it can be quite daunting.
- If you want to take advantage of standing up and tearing down environments as needed, it’s best to write the automation to make that happen. Fortunately, the major cloud providers have pretty good tooling to help with that automation, and there are some very good open source options as well. Related to this, in Microsoft Azure there’s a very cool service called DevTest Labs, which provides a sort of playground for your development teams. It has built-in guardrails to control spending, and automation to startup and shutdown VMs around your working hours.
- Similarly, you can scale up and down manually, but that’s not optimal. The preferred approach is to configure your various services to scale up and down automatically, whether on a schedule or based on usage/performance metrics. There are some pretty good built-in options to auto-scale various cloud services. If you need something more customized than the built-in options, then you can write an app to manage scaling, which not surprisingly takes more effort.
Cloud computing has provided a valuable new option for how businesses get IT done. By using the cloud businesses can save money, deliver value more quickly, access a very broad range of technologies, scale their computing capacity up and down as needed to meet demand, and shift more of their focus to providing business value. It’s no wonder so many companies are shifting more and more of their workloads to the cloud. Are you in? If not, and you have concerns with moving to the cloud, feel free to email me.