About the Client
Established in the year 1939, the client is a leading agro and dairy product manufacturer in India. Lately, with the exponential growth and success in the agro and dairy industry, the group has diversified into allied industry verticals that include – Digitals and Foods. The client is also well known for its excellent product quality and superior customer service which has won numerous awards, accolades, and the trust of thousands of loyal customers across international borders as well.
The Business Challenge
The client was looking to modernize their existing legacy applications that manage the internal and external operations of their business. Since the client is scaling its operations, they had started facing challenges to scale a set of applications built on the LAMP stack. They were using legacy techniques and technologies which were not giving them the required agility.
CloudHedge suggested containerization of the PHP Application with LAMP stack hosted on legacy CentOS 5.11 and deployment on a Kubernetes production cluster.
Apart from the application containerization, the following set of activities were also considered in the scope of this project:
- Setting up a source code repository
- Setting up basic CI/CD pipeline
- Setting up container registry
- Split the current MariaDB Galera Cluster
How CloudHedge Helped?
CloudHedge implemented the solution for the requirement with the following approach:
Information gathering and Requirements Analysis phase-I – While working with legacy applications, CloudHedge did the groundwork of setting up basic build triggers, identified target repositories, and connectivity with a deployment target. in addition, the team also identified the CD criteria (Build Promotions, etc.) and gathered the details which helped in splitting and rebuilding the database clusters.
Database cluster splitting Phase- II
Based on the information and scope gathered for database splitting, we addressed the requirement during this phase:
- Setup Galera Cluster with Maxscale proxy in HA mode
- Setup Google based two-factor authentication
- Proposed backup and restore policies for DB and configuration policies
- Prepared reference architecture document for the production DB cluster
Automated Containerization Phase-III
- The team then made use of CloudHedge Discover to assess the readiness of the PHP application for containers and discovered the processes within minutes. Post app discovery phase a recommendation report was generated which was highly detailed with data as to which all processes are required for containerization.
- Post app discovery, the team then implemented the Transform tool to containerize the application. Containerization of processes right from choosing the right base image to the handling of environment variables was all performed in an automated manner by the Transform tool within days.
- Moving to deployment phase, the team then implemented the Cruize tool which created container blueprints and deployed it on the K8s Cluster.
Using Jenkins, the team designed the following pipelines
- Build automation: Functional test baselining for build validation, identification of configurations, environment variables (required for app functionality), set up the build pipeline
- Deploy automation: Application deployment and configuration automation, setting up the deployment pipelines, setting up respective environments
UAT and Release Phase-V
- Demonstrated the execution of the build process (as applicable) and deployment process
- Demonstrated the build promotion process
- Trained existing resources on what we did and how we executed the earlier 2 phases.
- Had the UAT performed, gathered feedback & fixed issues & released the final version.
View the project case study video below:
As CloudHedge DevOps evolves, there were more benefits in terms of efficiency. High-quality implementations along with more frequent code deployments have allowed the client to provide more for their customers. It has also allowed its customers to try things that may not work and give them the flexibility to grow and expand in terms of scalability.
CloudHedge brought the following benefits with DevOps implementation:
- The entire project was executed within 6months instead of 18months. The overall project cost incurred was 1/10 of competitors and the client’s OpEx was reduced by 40%.
- Since the client was going digital, the containerized solution could easily scale as per the demand.
- Seamless integration in the client’s CI/CD Jenkins based automation ensured faster production.
- The application was containerized which made it stable/reliable in its operating environments.
- Cultural change – DevOps fosters a culture of openness and transparency and does so from the earliest stages of development.
- Efficacy of time management of the client was improved by 30% through the unique dashboard developed by CloudHedge.
Continuous Release and Deployment, Continuous Testing, and Continuous Monitoring – Today’s software development practices require teams to continuously deliver quality software, reduced go-to-market timelines, and adaptation of shorter release cycles. DevOps, using its practices of Continuous Release and Deployment, Continuous Testing, and Continuous Monitoring, provides just that.