Recently, I had the opportunity to work on a Cloud Migration project with one of our clients. One aspect of the cloud migration that had to be looked at in detail was the cost of ownership of migrating to the cloud. Cloud migration is more than just lift and shifting VMs and databases to the cloud.
Organizations want to look before they leap and understand costs. The benefits of moving an on-premise application to the cloud are well documented, from ease of use and flexibility to scalability, security and reliability. What’s unknown is how much that cloud migration will cost in the big picture. Determining the answer isn’t always easy.
There are a few primary areas to look at when considering costs. It’s important to have a good understanding of the application’s current pre-migration costs, and then compare those to the application’s future post-migration costs. There is also the actual migration cost itself — the work and effort that it takes to migrate applications from on-premise to the cloud.
Below are a list of cost categories and a breakout of individual costs to assess.
We need to be sure to gain as much detail about the application’s current on-premise costs and system performance data. This will not only help determine the right sizing of the cloud infrastructure but also provide a comparison showing current on-premise vs. future cloud costs.
This is an estimation of the runtime costs of the migrated application in the cloud. We are not calculating any new feature development.
- Monthly/Yearly infrastructure and software (licensing/support) costs
- System maintenance and operation costs
- System updates
- Software version updates and patches
These are the estimated costs for the application migration. Things to keep in mind include:
- Application migration cost. The actual cost of moving the application from its existing location to the cloud.
- Application infrastructure, code or configuration changes that are required prior to migrating to the cloud. This could be deemed as refactor work.
- Application refactor work that needs to be accomplished prior to the cloud migration ensuring the application will work in the cloud.
Step1: current application inventory
Before jumping into cost numbers for cloud migration, the first step is to audit as much of the application’s current IT hardware and software assets as possible. This can be handled by reaching out to relevant departments and making sure that all application resources are accounted for.
You’ll want to gather all asset specifications, performance data, and the details of running processes and network connections. Some cloud providers offer tooling to aid and expedite this process. AWS provides its Application Discovery Service which introspects the workloads on the application’s servers.
Insight into the interdependencies of the application and the supporting infrastructure is also required. Application dependency mapping will give you visibility into interdependencies of your services and applications, including software, servers, storage, security, networking infrastructure and data.
Step 2: calculate current infrastructure and software costs
Next, we calculate the current direct and indirect costs for purchasing, operating and maintaining the application on your present IT infrastructure.
- Direct costs include purchase prices, software licenses and support, operational, maintenance, and administrative expenses.
- Indirect costs are less obvious expenses such as loss of productivity due to application downtime.
For direct costs it’s best to work with accounting and purchasing departments to gather invoices and other relevant documentation. Make sure to include all data center costs for hosting the application’s IT infrastructure, such as:
- Rack infrastructure
- Network Connectivity
- IT Labor
Even such things as air conditioning costs shouldn’t be taken for granted (we know, because our client specifically asked about them).
Keep in mind your administrative costs go beyond those associated with your IT staff. There may be labor and other expenses associated with Human Resources, Purchasing, Finance and other departments.
Most indirect costs will be related to downtime, such as loss of productivity for employees and other users, customer dissatisfaction, and damaged reputation. Among the ways to calculate these costs is to review outage reports or log files to determine how often application servers go down and for how long. Then multiply that time by an average hourly rate.
Step 3: estimate cloud infrastructure costs
Estimating cloud infrastructure costs can be a bit tricky as you may not know exactly what you need to host your application in a cloud environment. However, there are several online calculators that can aid in giving a general idea of costs.
Each cloud provider has its own cost calculators to help estimate the costs associated with running an application on the cloud. It is imperative to remember that these tools are for approximation purposes only.
- AWS Simple Monthly Calculator
- AWS Total Cost of Ownership Calculator
- AWS Migration Calculator (available only for AWS Partners)
If you are migrating to AWS and need a quick view, you might start with its Simple Monthly Calculator. The calculator allows you to input details about your future cloud infrastructure environment and then estimate your monthly AWS bill.
A more comprehensive tool, and one we used to calculate our client’s cloud infrastructure costs, is AWS’s Total Cost of Ownership calculator. It enables you to directly compare the cost of the current application’s on-premise costs compared to running the application on AWS Cloud. Simply input your server configurations and storage footprint details. You’ll receive a summary report showing the three-year TCO by cost categories. You can also download a report with detailed cost breakdowns, methodology, assumptions, and more.
Step 4: estimate cloud migration costs
The next step is to determine the costs associated with migrating your workloads to the cloud environment. Review your migration plan. It should include an assessment of the cloud-readiness of your applications so you know which ones can easily be moved to the cloud, which may require redesign, and which may be best suited to remain on-premise. You’ll want to assign costs for each migration scenario.
If your staff doesn’t have the expertise or time to handle app redesign, you may have to outsource some of the tasks to third-party companies. Get estimates so you can account for these charges. Also take into consideration potential costs for maintaining legacy systems that can’t move to the cloud.
Next, determine the migration method for moving your cloud-ready workloads. The options will typically involve migrating application servers and databases to the cloud using cloud provider migration tools. Whichever method you choose, be sure to build in contingencies to cover unexpected issues that may arise.
Cloud providers may charge fees for transferring data whether it’s done physically or virtually. A prime example is when migrating a large database to the cloud. Cloud providers charge fees for transferring data to their systems, so these network costs have to be accounted for. There may also be expenses for ensuring the data is properly in place and synchronized with on-premise systems and applications that haven’t yet migrated or won’t migrate to the cloud.
In addition, account for creating and executing a test plan, and for addressing potential data privacy and security issues during the move. Don’t forget the costs for running parallel environments during the migration. Few companies can afford any downtime, even during a migration. It’s likely your company will continue to use its applications during the cloud migration. You’ll need to spend time and money to ensure the data in your on-premise systems stays in sync with what’s in the cloud.
We find that calculating the cost of the actual migration can be challenging and difficult to estimate. The cost is highly dependent on the skill set of the team performing the migration. A more senior level team will be more efficient and cost effective than a junior level team. It may make more sense to T-shirt size the LOE of the migration initiative based on team skill level and app complexity: assign small, medium and large to give an idea of the effort rather than dollar figures.
Time is a key factor in the success and cost of cloud migrations. Working with a consulting partner that has an extensive, proven track record of managing cloud migrations can expedite the process. So can employing the tools cloud providers offer such as the AWS Migration Hub.
Step 5: estimate post migration costs
After the cloud migration is completed, there may be costs for continued integration and application testing. Training, labor, administration and other expenses related to the cloud are likely to emerge. Make sure to account for them in doing your cost analysis and budgeting for the migration project.
Also, keep in mind that one of the benefits of moving to cloud services is potential cost savings. There’s potential for much more cost savings due to ongoing optimization of the application after the application has been migrated to the cloud.
As an example, our client was able to take advantage of load-based auto scaling to deliver the right amount of resources as needed, and then scale down when not needed to save money.
One more piece of advice...
As you can see there are many variables and ins and outs when it comes to estimating the total cost of an application cloud migration. And while it’s important to include as much detail as possible when estimating costs, it’s equally important to consider your audience. What does the organization care about from a numbers perspective? What are the goals for the migration? Are there specific costs they are concerned with, or specific savings they intend to reap the benefits of?
Expect to have some back-and-forth with your executive audience as they have questions or concerns. Numbers tell a story, and listening to your audience makes for an honest and open relationship that goes beyond hard figures.