You may have been told that it’s prudent to have a cloud exit plan. It’s important to note that cloud exit plans and reverse cloud migration plans should not be confused for one another!
A cloud exit plan may come in handy if you need to leave one cloud service provider for another. Or if you’re thinking about switching from on-prem to off-prem. Alternatively, maybe you’re looking to adopt multi-cloud and move some of your infrastructure off one cloud. This is normal and expected behaviour once you make the switch to the cloud, and there are many reasons why exiting one cloud may benefit your organization.
A reverse cloud migration plan is a scenario where you’re looking to migrate off the cloud. Under normal circumstances, this should never happen! So before you’re looking to perform a reverse cloud migration or develop a plan, consider the following.
Optimize costs
Hosting on the cloud will not always be cheaper for your web application. This is true. But, if during the cloud and architectural design phase of your cloud journey, you determine that costs will be lower for you on the cloud, this is unlikely to change! If your costs start to unexpectedly rise, it is more likely that your stack needs to be optimized.
Instance and resource setup and management. The bulk of your public cloud bill comes from instance and resource setup and management. As your web application grows over time, your infrastructure will likely need to grow with it. This is why it's important to do regular audits of your instances and their resource usage and capacity. As your resource and capacity requirements change, the setup you have may no longer be the optimal solution.
Data management. Data itself is a difficult area to optimize costs in because there are no metrics that you can measure directly. Your cost optimization for data, as a result, often comes from experience or relies on expertise from people who have extensive experience with optimizing data. However, as a rule of thumb, a good place to start is to look at data storage and retrieval.
App functionality. As we always say, your code should run on your infrastructure as efficiently as your infrastructure should process your code. This is often overlooked when it comes to cost reduction because the cloud makes it easier to separate development from operations. However, consider the impact of optimizing your codebase by decreasing its size or making sure it uses less memory!
Cost tracking, monitoring, and analysis. Finally, you should set up monitoring for your costs directly! This will inform your decisions when setting up and managing your instances as well as other cost optimization activities. You could build your own tools, but most public cloud service providers have native cost optimization tools that you can use (such as Amazon CloudWatch or AWS Trusted Advisor for Amazon Web Services.)
Improve performance
Enable auto-scaling. Auto-scaling is pretty much an auto-include on the cloud. Most public cloud service providers will have inhouse capabilities to scale resources up or down on a needs basis. This technique can help make sure that you’re not overpaying for resources that aren’t always needed. Read about how this e-commerce company used auto-scaling to deal with peak seasons.
Check your databases. Although the cloud has virtually unlimited and cheap resources, databases currently still require special attention when it comes to optimization and reducing costs. No matter how much CPU or memory you allocate, an unrefined database will still consume a lot of resources. Make sure that you’re tuning your database settings as well as your database queries to minimize the number of resources consumed and lower your costs.
Monitor your app. Just like with costs, performance also comes with monitoring responsibilities. Make sure that you’re consistently monitoring your app performance as well as tracking external factors that influence such as user behaviour, so that you can identify what is causing performance bottlenecks.
Conclusion
Reverse cloud migrations should almost never happen. Before considering it, take a look at your costs and performance first to see if anything can be optimized. If you cannot identify any areas for optimization, consider outsourcing to a third-party who can perform an audit for you.
What are other ways that you optimize your cloud setup? Let us know.