With the increasing benefits of using the cloud, more and more organizations are migrating over their workloads. The key driver for this migration is the adoption of technology across every business vertical. With technology adoption, the investment in resources increases significantly.
At the start, organizations decided to host their infrastructure in their data center mainly due to flexibility and security reasons. But with the evolution of the cloud, rapidly changing business demands, and evolving technology, more and more organizations want to avoid upfront investment and adopt the flexibilities and agility offered by the cloud. The key driving factors are reduced operational costs, minimized hardware refresh cost, business agility, an adopted service model rather than building things from the ground up, and reduced operational risks.
However, cloud adoption is not a straightforward path. Migration of enterprise legacy applications or rehosting the infrastructure from the data center to the cloud can quickly go south if not planned properly. Even if they can successfully pull this off, they might end up operating the same way. It is important to continuously refine the infrastructure and adopt cloud design principles to leverage the real benefits of the cloud.
This article focuses on best practices that can help organizations make the migration to the cloud more successful.
Identify a Migration Strategy
A migration strategy is the most critical component for an active migration of infrastructure and applications to the cloud. A migration strategy starts with preparation and clear business justification for the migration. Gartner published the 5 “R’s” which organizations can use to map out a migration strategy.
Rehost – The rehost strategy is also known as the “lift and shift” strategy. Typically, this strategy is chosen by an organization that wants to perform a quick migration of their application to the cloud for business use case purposes. Another common reason organizations choose the rehost strategy is to provide skill development time for the team.
Replatform – The re-platform strategy is also known as “lift, thinker, and shift.” As a part of this strategy, the core architecture remains the same. However, this is a quick change that reduces the management and operations overhead and might save on costs. An example of this strategy would be moving the databases to a managed database service provided by the cloud providers or from one application server to another to save on licensing costs.
Repurchase – The repurchase strategy is also known as the “drop and shop.” Here, organizations might decide to entirely shift from one product to another to meet the needs of a business use case and leverage the latest features and capabilities. For example, moving from one CMS platform to another, or leveraging a SaaS solution instead of homegrown products.
Refactoring or Re-Architecting – This is a problematic strategy to choose, but it eventually becomes one of the most rewarding for organizations. Often, when the existing application environment is not able to provide features, scale, and performance organizations choose to refactor or re-architect their entire applications to meet the needs of a business use case which can help improve agility and business prospects.
Retire – This strategy is chosen as part of the discovery phase by organizations as they find that 10%–20% of resources are not used at all and can be quickly gotten rid of when migration to the cloud is complete.
Discovery and Component Elimination
There is no rule that only one of the cloud strategies is as a part of the migration strategy. A key focus should be around the discovery of the resources and applications running in the data center. The discovery phase is not only limits identifying resources, but also the link or dependency between them. Once the discovery is complete, the next step is to determine the what needs to be migrated and what can be retired. Organizations should look at the component elimination part of the re-platform strategy and identify the architecture components which can easily be replaced by services provided by cloud providers.
For example, instead of running the master-slave MySQL database infrastructure, organizations can choose to use a managed database service. Or, instead of running the SMTP server for sending emails, organizations can choose to use the email service provided by the cloud providers. This re-platform approach helps to reduce the actual cloud migration footprint and helps to experience the benefits and agility made available by the cloud providers.
Licensing and Migration Cost
License management is one of the most critical areas for cloud migration. The license management aspects apply to various areas of the environment, i.e., operating system licenses, application server licenses, and third-party tool licenses. As a part of the migration plan, organizations should validate whether the licenses can be moved or converted to cloud-based licenses or not. For operating system licenses, the cloud provider instance cost includes the license cost. However, some cloud providers offer an option to apply the windows licenses at the host level. Third-party tools and companies are still figuring out the best model for license management on both the on-premise and cloud. Usually, in the data center, the same license can be shared by multiple applications as they sit on the same hardware, but in the cloud world, the application is spread across multiple servers. Product companies are continuously trying to refine the license management as it gets complicated when the resources are added and removed based on the traffic load.
As part of the migration plan, the next set of vital questions involves choosing between bring your own license (BYOL) model or using pay-per-use model licenses from the cloud provider or marketplace. Each model has its benefits, and these should be figured out as part of the migration plan to avoid a significant shift in the plan. Lastly, the migration tool cost should be carefully evaluated. The cloud provider provides their own set of services, but any third-party cost should be accounted for too.
It is a best practice to design an entire cloud architecture before starting the migration and map the resources to their respective areas or subnets. The cloud provides the capability to create a virtual private cloud or network and allows you to create subnets with the required IP blocks, define IP addresses for the resources, and establish the routing between them. In most cases, for the continuity of the functionality, the legacy application components should have the same IP address as the components depend on the IP address for the connectivity.
For seamless migration and switchover, the resources are mapped to the same domain name and precise communication is sent to all the stakeholders to avoid any confusion.
Team Technical Expertise
A team’s expertise defines the success of an organization’s cloud migration journey. The end goal for the team remains the same—whether running on the cloud or data center—the effective management of resources to keep applications up and running and meet the business goals.
However, it is the journey that matters. The abstraction introduced by the cloud and its design principles are entirely different from on-premise, and it is essential to train and develop this skill set across teams (operations, development, design) so that they can quickly adapt.
Training and developing this skill set takes time and, to speed up the migration activity, organizations might take on a new team with the required skill set or leverage a managed services provider with migration expertise who will have developed a template and automation around the migration which can quickly address complexities and align with the plan.
Enterprises have their centralized security access mechanism to grant access to individuals across the server farm or the application. They allow functional role-based access to the team members. When stepping into the cloud world, the access management is different from the norm and plans should be put in place so that the teams have the right and minimal privileges necessary to do their work. The cloud does provide the capability to link the centralized access management with cloud services so that there are no access issues. Also, access governance policies should be put in place as the part of the migration phase.
For the entire migration activity to be successful, it is always advisable to start small. Organizations should choose a small application, come up with a migration plan, and migrate. It helps them to identify gaps so that they can refine their master migration plan. This activity will also aid in making the technical staff more comfortable with cloud services and does mindset shift by allowing the stakeholders to see the benefits of the cloud migration.
Identify Repeated Items and Automate Them
Cloud automation provides us with the ability to build infrastructure as code and automatically deploy the applications without any downtime. The same thought process can be infused during the migration strategy too. During the migration of multiple applications, organizations come across repeatable patterns, and it is recommended to automate them. It will cut down on migration time, provide more consistency, and spread an automation thought process across the teams so that they can see the real benefit of moving to the cloud.
Monitoring and Governance
During the cloud migration or post-migration phase, the environment should be carefully examined and monitored. It is not always the case that an application behaves in the same manner as it did in the data center because architecture components can change. The application, system, network, and audit logs should be captured and carefully examined along with the data provided by the monitoring dashboard to perform a correlation between the various components, and visualize and identify the enhancement areas so that better benefits can be derived. A simple example would be looking at the resource utilization pattern and right-sizing the servers so that the cost of the infrastructure can be brought down.
Organizations should adopt the agile methodology and work in sprints to perform mass migrations in addition to providing continuous learning and improvement to the entire migration process. The agile methodology is not only applicable to organizations themselves, but even to the MSPs partners. Organizations should enable their team to quickly pass on feedback on the things that are working and not working so that necessary corrections are made, and everyone is on the right course.
There are no guarantees in life and no list of best practices will ensure your migration to the cloud will be successful. There are many variables that will determine this outcome, including the commitment from your organization, the expertise of your team, your technical requirements and plenty more. The list above, however, provides a solid framework to start out with.
At the end of the day, you must stay focus on the endgame — reducing operational costs and risks, minimizing hardware cost, and becoming or staying agile. If you’ve made the decision to migrate and are reading this article, you’ve already made the first commitment. Stick to the task at hand.