Despite the benefits of cloud computing, tough questions compel many companies to take a slower path to the cloud. I’ve had many “tough questions” conversations with clients, and after answering many of the same questions over and over again, it seemed sensible to write my answers in detail.
This article introduces a series of cloud-related “tough questions, real answers” blogs. If you’re relatively new to the cloud, I suggest reading my Cloud Primer post, which includes a brief history of cloud computing, as well as a quick level set on cloud terminology. This “tough questions, real answers” series also refers frequently to another prerequisite post on the Top Reasons for Moving to the Cloud.
With those prereqs out of the way, let’s discuss our inaugural topic, which is one of the most common questions companies ask when considering a move to the cloud: Can we really save money in the cloud?
Cost savings in the cloud
As (I hope) you read in my Top Reasons for Moving to the Cloud article the short answer is “yes, but it depends.” Here are some of the top cost savings available with cloud computing:
- Pay as you go
From a cost perspective, moving to the cloud is analogous to plugging into your local power utility. It’s compute as a utility — you pay for what you use. The fact is there’s a lot of computing power that goes unused when you host your servers on premises. You purchase servers or Virtual Machines (VMs) to support your development team’s various environments, and the developers will only use the VMs eight to 10 hours a day. Or you purchase a beefy cluster of production servers to handle the biggest possible load you think your users might generate, but they rarely ever come close to that load. You’re paying for computing power that’s mostly wasted.
Contrast that with the cloud. In the cloud, you pay for what you use, commonly referred to as “pay as you go.” So if your dev team needs a dev environment, then stand up the entire dev environment as needed and shut it down when not. The same goes for your test environment, or stage, or whatever environments you need at various times. This theme also applies to other cloud services. Need a database, or cache or a queue? Stand them up and use them as long as you need. Then tear them down when not needed. You’re only charged during the time you use them.
Similarly, you pay for the scale you need. Scale up when needed, and then scale down when possible to save money.
And then there’s the cloud agility topic. Your teams can be more productive and provide more value if they’re not waiting around for infrastructure or tooling.
Take advantage of the many services available in the cloud without any major expenses upfront. Use the tools that are optimized for your precise use cases, deploy them at the scale you need and pay as you go.
- Cloud-enabled IT
Let your cloud provider take care of the grunt work related to installing and configuring all of the hardware, networking, monitoring, services, etc. They do it far cheaper than you ever could. You just focus on what’s strategic for your business. This topic isn’t so much cost-related; it’s about providing more value than you could get without the cloud.
As you can see, you can definitely reduce costs in the cloud, as well as provide more value, quicker. It should come as no surprise that many clients ask, “How much will I save in the cloud?” Unfortunately, that’s not at all easy to answer. The honest and disappointing answer is, “It depends.”
First of all, how much cost are you saving from the various cloud benefits: paying as you go, scaling on demand, being more productive/agile and focusing your team on high-value work? It’s difficult to assign those a dollar value.
Secondly, what are your current infrastructure costs, precisely? Most likely, you only have a very rough guess. There’s the cost of hardware (servers, networking, etc.), your electric bill, your facility costs, your labor costs, your various licensing costs (e.g., operating systems and databases) and more. Not an easy answer. You can search online for various case studies comparing on-premise costs to cloud, and certainly some case studies document real savings. But there’s no guarantee those are representative of your situation. It would take a very thorough analysis of your on-premise and cloud costs to arrive at an accurate cost comparison.
Although it’s difficult to calculate your actual costs, it’s worth mentioning one common but less than optimal way to save money in the cloud: “lift and shift.” I’ve worked with several companies whose goal was to move to the cloud as quickly as possible, and with minimal effort. They wanted to migrate their on-premise infrastructure and applications to the cloud with minimal change.
No taking advantage of the various cloud benefits discussed, such as no standing up environments as needed and then shutting them down. No scaling up and down as needed. No consideration of the cloud’s overwhelming number of tools and services, particularly the Platform as a Service (PaaS) and Software as a Service (SaaS) services that can offer some great features and cost savings. They usually say they plan to take advantage of those options eventually, but I can’t recall any of my “lift and shift” clients actually following through on that yet.
Still, I really can’t fault them for lifting and shifting because, in fact, they do save money — a couple of them saved 40%, which is really awesome for the minimal effort. It’s just that if they followed some of the best practices mentioned here, they could save a lot more.
Now, for full disclosure, it’s important to note that taking advantage of the full power of the cloud does take some 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 Infrastructure as a Service (IaaS)/PaaS/SaaS services available, how to navigate the cloud portal, how to architect your applications in the cloud, how to follow cloud best practices, how to monitor your deployed applications/services, etc. There really is a ton to learn.
- 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 start up and shut down 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 autoscale various cloud services. If you need something more customized than the built-in options, you can write an app to manage scaling, which, not surprisingly, takes more effort.
Yes, you can really save money in the cloud, especially if you take advantage of all the cloud has to offer, which takes some work. But even if you don’t leverage all the cloud has to offer, like with a “lift and shift” approach, you can still save money.