Will a Cloud Migration Save Your Organization Money?
Today we are going to talk about whether migrating to the cloud can actually save your organization money or not. You’ve probably heard some people say it does while others claim it costs more - so what gives?
In theory, a cloud migration should save you money (along with a myriad of other benefits). However, many migrations are executed without the proper understanding of cloud architecture, or they are done in a way that gets them operating in the cloud quickly – but no one ever comes behind that ‘lift & shift’ migration and properly refactors things for the cloud to really take advantage of the cost and efficiency benefits. What do I mean?
Cloud infrastructure is generally split into IaaS, PaaS, and SaaS – and the IaaS options generally cost the most to keep running. They still may save you money in the long run over purchasing, implementing, and maintaining physical infrastructure at your office – but they are costly compared to the other cloud options and only allow you to realize a few benefits of the cloud. For example, if you run a SQL Server on top of a Windows Server operating system in your office (even if it is inside of a virtual machine in your office) – and then you migrate that to the cloud by provisioning a Windows Server VM in Azure and installing SQL Server on top of it… you will offload some of the work and cost onto Azure and away from your organization, but it is almost the same thing as you had. The major cloud providers are able to leverage an economy of scale to get you some direct cost savings, but there are better ways.
Looking again to our SQL Server scenario – Instead of using a Windows Server virtual machine, you could use Azure’s PaaS offering for SQL Server, brilliantly coined ‘Azure SQL’. Explaining how it all works under the hood is another blog post for another day, but the gist is that not only does it give you instant hosting cost savings by simply using it, but it also gives you many rich autoscaling and auto on/off features that will further control your cost by only giving you EXACTLY what you require at any given time. There are examples of this type of ‘refactoring’ for all kind of different IT systems and needs.
Let me break down the numbers on cost for this scenario to give you a feel for just how useful going the refactor route over (or soon after) going the rehost/lift & shift route is – then I will give you another example – this time of a real migration project I worked on and used a refactor approach for. Keep in mind that there are many cost savings from moving from IaaS to PaaS – but comparing purely the hosting costs on Azure: Two virtual machines (the A7 SKU) hosting redundant SQL server with 8 vCPUs, 56 GB RAM, and zone redundant 512GB disks each would give you a starting average cost of $1,809/month. Now there are many nuances here that we could try to take into account (like reserved instances), but for now let us just compare the averages here. The closest comparable Azure SQL Database (the PaaS variant Azure offers for SQL servers) that is zone redundant, has a serverless compute max of 18 vCores & 54GB RAM, a 250GB+ storage size, and fully active during business hours would run around $676/month. Now, there are a lot of variables when making these comparisons – such as how often your Azure SQL DB is using how much of its serverless compute/RAM maximums, auto-pause delays, etc. However, the point is that because Azure is able to more tightly couple the database with its hardware and allow you to pay for ONLY what you need – the cost savings can be dramatic when moving from IaaS. Those savings are even more dramatic when migrating from on-premises. The PaaS offerings also mean offloading even more responsibility and risk onto Azure such as the dealing with the underlying operating system and patching.
I worked on a refactor migration for an internal timesheet/time tracking software that my client had developed some years back. That application lived on a Linux server. The break down was a Linux server OS that had two Linux virtual machines on top of it – one for the application server and another for the database server (MongoDB in this case). This physical server lived in their office datacenter and because of their off-the-beaten-path location, it often experienced brownouts or just straight up power outages. Sometimes the UPS (uninterruptable power supply) was enough, sometimes it wasn’t. This caused the application to go down all the time, and it often required administrator or developer time to get it back up and running properly since they had also made the application externally accessible to people outside of the office. Migrating this workload to the cloud in a lift & shift would have solved the outage problem, but the costs would have added up over time – so I opted to follow a refactor migration pattern. I worked with the development team to integrate their GitHub codebase with Azure DevOps and set up a CI/CD pipeline that would deliver the code into an Azure App Service. App Service is one of Azure’s PaaS variants of a VM. From there, we set up proper availability/redundancy options and configured autoscaling to scale up during peak usage and scale down during off hours. I was also able to put their MongoDB onto an Azure CosmosDB and connect that to the App Service. Azure CosmosDB is Microsoft’s PaaS offering for many kinds of NoSQL databases (DBs that do not use SQL, such as MongoDB). The result was a solution to their outage/availability problem, better performance, cost savings on hardware, and efficiency benefits plus cost savings on IT maintenance time.
So, what are the cost savings here? Well, let’s start with just the hardware and licenses those VMs were hosted on which costed around $7,500 all said and done – let’s divide that over a ~4year lifecycle to get about $156/month in hardware/licensing costs. In comparison, two Azure virtual machines running Linux (1 for the database, 1 for the application) and similarly specced would run about $122/month. If you were to take a step further (as we actually did for this project) and refactor the system – hosting it on Azure App Service and Azure CosmosDB, it would run you about $70/month. Broken down, that cost is entirely the app service because Azure offers a certain amount of CosmosDB throughput for free and that was enough for our MongoDB in this case. Even if this were your organization’s second CosmosDB in Azure (so you couldn’t use the free throughput anymore) – we’re still only talking $10-20/month extra. On a pure hosting/infrastructure level, the cloud wins out on cost in this smaller-scale scenario even if you do a lift & shift. If you refactor, your starting savings on infrastructure are over 50%! This doesn’t factor in any of the other cost and stress savings, though.
The cost savings of a cloud migration go far beyond the basic hardware/hosting components of your IT infrastructure. The additional benefits are a bit harder to quantify since they will vary a lot organization to organization and would require an additional blog post to fully detail. I will, however, mention some of them so you can think about how these things currently work at your organization and start to visualize the savings in money, time, effort, and stress that could be realized in your situation. Some of those benefits are a lower initial capital investment, higher productivity, faster upgrades and innovation (think scaling up operations during the pandemic to meet demand in the snap of your fingers rather than waiting on hardware and installations!), and more. If you want to sit down and discuss your organizations specific situation and needs to hear what a cloud migration might look like – contact us today to set up a meeting where we will help you understand all the implications of upgrading your organization.