Moving applications to the cloud can be done in a variety of ways. If you do it correctly, the effort required to keep applications running in the cloud can be reduced dramatically. For example, we have seen cases where the number of staff required to keep the systems running 24/7 dropped from six persons to just one. In this article we will introduce three strategies for migrating applications to the cloud, the impact of those strategies on IT operations, and a list of tasks that will disappear from the IT operations backlog as a result.
Cloud Migration Strategies
When you consider the different strategies that are available, you will find that only three —rehost, redesign and re-platform—involve moving existing applications to the cloud. Rehosting means you lift and shift your entire IT application landscape from an on-premise data center to a data center in the cloud. Redesigning means that you completely rewrite your applications to run in the cloud. Re-platforming means that you move your applications to the cloud while taking advantage of the services offered by the cloud platform. For example, when youre-platform by containerizing all your applications, you are using a cloud-native re-platform strategy.
Effect on IT Operations
So, what effects do these different strategies have on IT operations?
- A rehosting strategy will have virtually no positive impact on IT operations. Using this strategy is comparable to moving your applications to another datacenter. All the procedures for running and maintaining your applications will be the same. Life in the cloud may even be a little more difficult, since the staff must learn how to work within the constraints of a cloud platform.
- A redesign strategy may eliminate much of the traditional work of IT operations by taking full advantage of the cloud platform’s features and benefits. Traditional virtual machines are replaced with serverless application frameworks. The new design can use all of the cloud platform’s services for application deployment, managed data storage services, and managed monitoring solutions.
- A cloud-native re-platformstrategy will drastically reduce the effort required by IT operations to keep the IT systems operational. Just like the redesign strategy, re-platforming will be able to take optimal advantage of the benefits the cloud platform has to offer. You can use all of the cloud platform’s services for infrastructure and application deployment, managed datastorage services, and monitoring solutions in order to provide a robust and reliable platform for all your applications.
IT Operations Tasks Made Obsolete by the Cloud
Once you have executed a redesign or re-platformstrategy, the following tasks will have disappeared from the IT operations task list:
- Hardware-related tasks: Since the entire data center in the Cloud is software-defined, there are no more hardware-related tasks to perform. No more disks to replace, no more racks to fill, no more patching of network cables. Everything is defined and maintained in code.
- Database administration tasks: Cloud providers offer you fully managed versions of your favorite relational database management systems, which are scalable and always available. You will no longer need a team of databaseadministrators to provide 24/7 support.
- Manual installation of applications: Continuous Delivery pipelines fully automate thedeployment of applications into the variousdevelopment, test and production environments. All manual steps are therefore eliminated from thedelivery process.
- Manual restarts of applications: Each application that is deployed will undergo ahealth check, which indicates whether the applicationis capable of serving requests. If the health check fails,the application will automatically be killed andrestarted. If the application uses more memory thanis allocated to it, it will also be killed and restarted.
- Maintenance on individual virtual machines: Since the cloud infrastructure is built using the principle of immutable infrastructure and infrastructure as code, all the changes required are done in code and found under version control. To change the configuration of a virtual machine, you need to change the source code. Once committed, these changes are automatically deployed using the continuous deployment pipeline. The virtual machine instances will be replaced with a newly configured version.
- Troubleshooting differences between development, test and production: Both the application and the cloud infrastructure are programmed as code and stored under version control. This ensures that there are no variations among different environments, which minimizes the possibility that differences between the configuration of the environment are a root cause of the incorrect behavior of applications.
- Installation and maintenance of logging and monitoring systems: All cloud platforms provide logging and monitoring systems as a managed service. The logs and metrics of all your applications will automatically report to these systems, providing you with a comprehensive view of your applications and infrastructure. This requires no effort from IT operations.
- Installation and maintenance of a Continuous Integration platform: All cloud providers offer serverless variants of version management and continuous integration systems, which require zero effort on your behalf to maintain.
- Backup and restore: Since all virtual machines and built and configured from code, there is no need to make backups of the virtual machines for use when restoring systems after a huge system failure. When a virtual machine is broken, you can just terminate it and a new instance will be created to perform the required work.
- Manual steps involved for disaster recovery: Since all the applications and the entire infrastructure is programmed and under version control, and the entire software delivery process is automated, you can reproduce your IT landscape in a different region of the cloud provider at any moment. You can be certain that your disaster recovery will succeed.
- Capacity planning: Each application that is deployed is required to specify the amount of memory, disk storage and CPU that it requires. The cloud platform will automatically allocate the required resources for you, so you will never runout of capacity.
Cloud migration reduces the effort required to keep applications running dramatically. It does, however, require you to execute a redesign or re-platform strategy. Considering that rewriting every application is a verytime-consuming process, using a redesign strategy is limited to situations where you have a small number of applications. Therefore, in order to reap all the benefits of moving to the cloud, we recommend that you execute a cloud-native re-platforming strategy.