Learn how Konnect and Kong Mesh can be leveraged to de-risk and lift-and-shift connections during a migration to the cloud.
The objective of this guide is to provide a self-paced demonstration of how the platform agnostic capabilities of Konnect and Kong Mesh easily enable you to migrate EKS and modernize to micro-service architecture simultaneously.
To demonstrate this we will step through the 3-phased approach that will deprecate the disputes
feature of a monolith running on premise, for a new micro-service running on a Kubernetes cluster.
Each phase has explicit technical objectives, and will build upon the previous.
Phase 1 : Deploy the monolith
and Konnect runtime instance
and onboard the monolith to Konnect.
Phase 2 : Deploy the Kong Mesh control plane
, and the on-prem
mesh zone. Then reconfigure the Konnect runtime-instance so that runtime-instance <--> monolith communication occurs over the mesh.
Phase 3 : Finally, in Phase 3 it's time to cutover. The objective is to deploy the Kong Mesh cloud
zone and disputes micro-services to Amazon EKS. Then execute some mesh Traffic Route policies that will re-direct traffic to the micro-service.
This repository uses a Makefile
as the main entry-point to run the demo:
AWS
is being used for cloud infrastructureTerraform
is used to deploy the AWS infraAnsible
is used deploy the Kong services to the environmentsDocker
is used to package up the code in this repository and any tooling required to simplify running this demo
The tutorial has the following prerequisites before getting started:
-
Linux or MacOS
-
AWS account with permissions to create VPCs, Subnets, EC2 instances, EKS Clusters, Keys, etc.
-
A Kong Konnect free account and Runtime Group ID
- Credentials - Personal Access Token
- Control Plane Instance ID - this is described in more detail in the Kong Konnect documentation Set up a Runtime
-
# MacOS brew install make # Debian (Ubuntu) apt-get install make # Enterprise Linux yum install make
Let's get started!!
Clone the repo:
git clone https://github.com/Kong/cloud-migration-journey.git
Navigate into cloud-migration-journey
sub-directory:
cd migration-journey
View the available make
targets for the project:
make
In this step you will build the utility containers needed to run the demo.
make build
NOTE: You will be prompted for your computer's architecture. If running a system that is Intel-based enter
amd64
, and if running a system that is ARM-based such as a Mac M1 processor, enterarm64
.
make prep
This will create a .kmj
directory in your $HOME
, and prompt for various inputs:
- AWS CLI credentials are configured
- Open the Kong Migration Journey configuration file,
users.tfvars
, where you populate Kong Konnect info, and change the default AWS settings (AWS Region, VPC, Subnets).
make infra.deploy
This will deploy AWS infrastructure, generate any dynamic files for the demo in the ~/.kmj
directory, the kubeconfig
, and EC2 keys.
NOTE: It is extremely important that you do not delete the
~/.kmj
directory, or any of its contents at this point. You will have a hard time cleaning up later.
Explore: infrastructure deployment.
With the infrastructure successfully deployed, you are ready to start the tutorial.
In each phase, first execute the make command that will install any Konnect and Kong Mesh services in the AWS infrastructure, then proceed to the tutorial.
make kong.phase1
Navigate to the tutorial Explore: Phase 1.
make kong.phase2
Navigate to the tutorial Explore: Phase 2.
make kong.phase3
Navigate to the tutorial Explore: Phase 3.
Tear down the AWS infrastructure:
make infra.destroy
The above command will remove everything that was created in AWS, along with your EC2 keys, kubeconfig, Ansible inventory, and variables.
Once the above process has completed successfully, you can remove the ~/.kmj
directory if desired, or retain it to run the demo again later:
rm -rf ~/.kmj