Blue Ridge, a client, combines the disciplines of supply chain demand and pricing under a cloud-based platform that is fully configurable. Blue Ridge’s planning and pricing platform offers business leaders simplicity. It combines data science-rich inventory forecasting capabilities and price optimization insights.
Blue Ridge provides wholesale distributors, specialty retailers, as well as discrete manufacturers, with the ability to adapt to market, product, and competition by efficiently and effectively managing a volatile supply chain.
CloudThat was approached by the customer to help them scale their business.
The client wants to move applications from server-based deployments to container-based deployments, automate the provisioning and configuration of AWS infrastructure, configure container repository, and set up CI/CD pipelines for deployment automation and rapid releases.
Proposed Solution
CloudThat’s DevOps team performed a thorough analysis of the client’s IT infrastructure and organizational structure. They proposed the following solution.
Create and set up an EKS cluster. Both Windows and Linux nodes must be configured. Enable cluster autoscaling. Configure Nginx Ingress controller and AWS Load Balancer controller.
Containerize Dotnet applications and push them towards ECR. To gain a better understanding of the application, and to fix any errors, work closely with the developers.
Microservices that are highly available, scalable and fault-tolerant are deployed to EKS in the specified namespaces.
Single deployment for login application exposed via AWS application load balancedr.
For all other applications, set up a Kubernetes Deployment resource for each tenant. Cluster-ip service type is used to expose applications.
Traffic management was made possible by the establishment of a highly available Nginx Ingress, backed up by AWS NLB. Along with the ingress resource, host-based routing was also set up. You can easily add rules to forward traffic to clients that are older.
Allow HPA based upon CPU and memory usages
AWS CloudWatch and Datadog provide infrastructure and application monitoring. Integrate Datadog and EKS Datadog Dashboard should have access to container logs
Add BitBucket to TeamCity’s project configuration. Integrate TeamCity with ECR by adding ECR connection in TeamCity project configuration and by adding Docker support in the build configuration.Integrate Octopus with ECR by adding AWS ECR as an Octopus External Feed. Integrate Octopus Deployment with EKS by adding EKS cluster as a Kubernetes Target. To configure the Kubernetes target, create service accounts
AWS Services are used in the Solution
AWS CloudFormation
AWS EKS
AWS EC2
Amazon CloudWatch
AWS ECR
AWS ELB
Third-party tools used
Nginx Ingress Control
Log Monitor
Datadog
TeamCity
OctopusDeploy
Architectural Diagram
CICD Diagram
Flow Diagram
VPC design
Outcomes and Results
Since the applications are now running on cluster pods, startup time and performance have been greatly improved. (In the past, startup took 5 minutes. Now it takes 5-6 seconds.
RollingUpdate strategy in Kubernetes Deployment resource reduced downtime (tenant onboarding) The Docker image will contain the tenant and it takes 3-4 minutes to reduce down to a minute.
Operational overhead was reduced by automated infrastructure provisioning using CloudFormation and eksctl
Combining HPA and cluster autoscaler enabled smooth scaling of resources based upon defined criteria
Implementing CI/CD and the related DevOps best practice enabled new feature releases and rollbacks with no downtime and deployments that span within mi