Skip links
On-Premise to AWS Migration For Agri-tech Business

On-Premise to AWS Migration For Agri-tech Business 

On-Premise to AWS Migration For Agri-tech Business

Introduction

Our customer incorporated in the year 2012 is a fast-growing Technology Company, focused on research, development and commercialization of novel crop nutrients, microbes and protectants. It provides customer services that address some of the key agricultural challenges of the 21st Century faced by farmers and commodity purchasers. They had the on-premises setup of a monolith application and we needed to migrate it to AWS environment in EKS.

Infrastructure Analysis:

⦿ Identifying substitutes for the existing infrastructure components.

⦿ We identified the services to be most suitable as per the current infrastructure and came up with the following services.

○ On-prem DNS -> Route53

○ Firewall System -> Web Application Firewall

○ Load Balancer -> Elastic Load Balancer

○ Network -> Amazon VPC

○ Hypervisor -> Amazon EKS

○ Storage servers -> EBS, EFS and for static data we went ahead with S3.

○ Database servers -> RDS

⦿ However, as we needed to first test out the new application docker images on cloud, we first went ahead with implementation of EKS infrastructure via CloudFormation.

Implementation:

Infrastructure preparation on Cloud for the Dev phase:

⦿ This included configuring VPC with several components like route table, NAT gateway, subnets, NACLs.

⦿ The application team developed the docker images and pushed that into AWS ECR.

⦿ We used these images to create the deployments in EKS cluster and and used Jenkins as a CI/CD tool.

⦿ We handled the security in Kubernetes via ClusterRole and Roles which allowed us to give specific read/write permissions to the users.

⦿ To handle environment variables, we used components like configmap and secrets and passed that to the pods.

⦿ The services were exposed using the ingress resource and used AWS application load balancer in the backend for the same.

⦿ We used HPA and Cluster Autoscaler also to handle traffic spikes and made sure that the application hosted was able to undergo different levels of testing by the application team.

⦿ Further to make the deployment faster, we built a GitOps workflow where we utilized ArgoCD and Gitlab to rollout revisions at a faster pace.

 

Leave a comment

Explore
Drag