Architecture, eCommerce, Content Distribution, Kubernetes, and Application Development on the AWS Cloud
About the Client
The client is a leading US-based multinational corporation that sells videos on fitness, weight loss, and muscle building techniques. The client’s marketing strategy comprises a mix of direct response infomercials, sales consultants, e-commerce, and multi-level marketing for their brand and product promotion.
The client was encountering numerous speed and efficiency challenges during an upgrade of their technology stack and legacy applications. Ness was tasked with planning and executing the migration of the core applications to AWS Cloud Services and, simultaneously, migrating their database from an on-premise MySQL DB to the cloud-based AWS RDS.
As part of the solution, Ness containerized the on-premise application using Docker and Kubernetes. Then, we utilized CloudFormation scripts to enable the migration from on-premise infrastructure to the AWS cloud infrastructure. The process can be summarized as us creating “infrastructure as code”.
The Ness DevOps team worked on redesigning the CI/CD pipeline for the application. Jenkins was previously used for the CI/CD processes. However, the clients new IT strategy mandated the use of managed service products instead of maintaining in-house ones, so we implemented new pipeline solutions with Travis CI (for Continuous Integration) and Harness (for Continuous Delivery).
We also configured Amazon SQS and SNS for messaging – event processing and notifications.
Additionally, a centralized logging system was implemented using a fluent container where Loom and Dynatrace/Rollbar were used for monitoring overall application performance.
As part of this solution, we used Amazon RDS, EKS, S3, SNS, Elastic Cache – Redis, SQS, Elastic Transcoder.
Once the upgrade and implementation was complete, the client enjoyed significant improvements in the managing of maintenance, monitoring, and continuous deployment processes. Our use of container-based microservices ensured there was a significant reduction in the cost of operations. The solution also helped achieve high standards of scalability and fault tolerance through EKS (AWS Kubernetes).
The Ness team was an early adopter of EKS (Amazon’s Managed Kubernetes Service), so we had to face some unknown situations where no precedent existed to learn from. The Ness team also faced down some challenges with Ruby on Rails plugins in moving from a bare-metal machine scenario to running in a lightweight docker container.