A successful cloud migration starts with an assessment phase to determine gaps and dependencies. After the assessment phase, you can begin creating a pilot. The pilot’s objective is to get one or two candidates moved completely to Kubernetes with continuous integration/continuous development (CI/CD) pipeline tools already set up.
With this migration, we recommended starting the pilot by moving the most complex application to Kubernetes. the team.
Once you migrate the most complex application and see how it looks, explain what you did and what you migrated Choosing an application migration strategy
Three strategies for migration:
- Rehosting or lifting and shifting as-is
- Replatforming, lifting, and adjusting
- Refactoring, rewriting, and decoupling the application
The assessment phase
The assessment phase is critical because it helps you understand the dependencies you have and what you need to do to migrate the applications to Kubernetes. We choose a bottom-up approach, where you look at the cloud applications, their manifest config files, and the REST APIs, and try to gather all the needed applications for the dependencies and configuration. Then, you compile all the dependencies and try to map them.
Application re-engineering - the most common route
In many cases, legacy monoliths needs to be re-engineered to be lightweight microservices. Typically this is accomplished by chosing a lighter stack that exposes a single service as opposed to a large monolith. This single service becomes a docker / containerd container which can then be orchestrated in K8s. Similarly, all services are refactored to
Application security, networking security and service mesh
Depending upon the needs of the application, application level network security is applied using CNI based configuration as well as a service mesh deployed as needed to detect services and facilitate communication.
All custom authentication can be moved into Kubernetes.
From there, we could build the CI/CD pipeline and have the entire automation happen on top of Kubernetes. That was the gap analysis we did from a platform perspective and for identifying the service, which is the most critical part from an assessment perspective for moving to Kubernetes.
A CI/CD pipeline for Kubernetes will normally have the entire automation happen on top of Kubernetes. That was the gap analysis we did from a platform perspective and for identifying the service, which is the most critical part from an assessment perspective for moving to Kubernetes.
We mapped the CI/CD pipeline from a Kubernetes perspective to what they had before while also creating the gateways they have from an approval perspective. Key takeaways
We learned many things through this migration, but our top lessons were:
- Automation is key for the assessment and migration of large numbers of applications.
- Creating a migration factory with more automation tools is very important.
- Early success, which is moving one application to a pilot, showing it to the architects, and explaining it, opens new ways of looking at things and is the key to migrating more applications.