Pioneering Change

What it takes to transform an application.
Our client, an American multinational, provides workforce management and human resource management services. They offer a range of features to help organizations manage their employees, which includes tracking their time and attendance.

The Challenge

The requirement was to build an application on a different architecture to utilize tools, harmonized with the client’s standard set of tools, with no automation in place. Since the application employs a microservices architecture, various services had to be created and deployed multiple times a day for testing in the development environment before being deployed for production. 

A laptop displaying various graphs in a meeting

an icon that depicts limited knowledge of app architecture

Limited knowledge of application architecture and services involved.

An icon representing adapting to service changesAdapting to service changes, implementing service segregation, and establishing secure secret management mechanisms.
An icon representing absence of best practicesAbsence of established best practices and standardization.
navigating-iconNavigating the intricate process of adapting the architecture while working with limited knowledge and network-level components
deployment-iconEffectively managing the build and deployment of applications, with a particular emphasis on image management.

The Solution

Nagarro's journey to successfully overcoming all these challenges began with a collaborative effort with our client, where we first chalked out a meticulously planned application migration strategy. Our dedication to delivering top-notch service quality led us to overcome all the challenges by taking a deliberate and phased approach.

We carefully crafted a Host and Service project architecture, effectively segregating network-level resources within the Host project and application resources in the Service Project. To bolster the security, we implemented a cutting-edge firewall to intelligently route traffic to the Service Project.

A man and a woman looking at a laptop screen

The Implementation Phase

We leveraged the power of Terraform to streamline infrastructure deployments and created Helm charts for applications to ensure their consistency and scalability. Multiple deployments to production were handled adeptly by Jenkins jobs, as we built jobs which integrated with image scanning, tagged the finalized image, and deployed it to a different environment with the help of Helm charts.

We also created a single-click rollout and rollback Jenkins job to handle 1000+ environment variables and secrets. This setup provided us with the flexibility to update or add new microservices with minimal effort. We defined a proper release strategy to roll out any new features. We also implemented the tagging feature with each image, which identifies the fixes going into the release with just one number, which helps us in case of any rollback requirements.

To ensure comprehensive and centralized logging, we harnessed Splunk, seamlessly forwarding application logs from Cloud Logging by using a Pub-Sub model.

This meticulous design allowed us to set up new environments and application services with ease. To keep a watchful eye on performance and proactively address issues, we implemented Cloud Monitoring with Grafana and PagerDuty to tackle production issues even before their possible escalation. Today, our system operates in eight diverse environments across multiple GCP projects, including four robust production environments, situated in distinct regions. With an increasing demand for additional environments, we stand ready to expand and meet the evolving needs of our clients.

A series of strategic measures were undertaken to enhance our DevOps operations significantly. First and foremost, we standardized the process for infrastructure provisioning, bringing about a new level of consistency and efficiency.

Additionally, we streamlined the process of microservices build and deployment, reducing the complexities that previously hindered our agility. To further improve our operational capabilities, we established a robust release mechanism and implemented comprehensive monitoring and alerting systems for our applications.

Business Impact

As a result of all our efforts, several key DevOps parameters have witnessed notable improvements:

An icon for result

Deployment Frequency

Our ability to deploy products to end-users has increased substantially. This heightened deployment frequency reflects our organization's agility in responding to shifting market demands and our readiness for experimentation.

An icon for result

Lead time for change

The time required to implement changes has reduced significantly. This swift responsiveness to the evolving market demands not only enhances our competitive edge but also diminishes the associated risks of frequent deployments.

An icon for result

Time to Restore a Service (MTTR)

The time it takes to recover from production failures has been minimized through a combination of seamless automation, holistic monitoring, and effective collaboration. This ensures that we can swiftly address and rectify any potential issues.

An icon for result

Change Fail Rate (CFR)

We have notably reduced the occurrence of software deployments causing production failures that necessitate remediation. This reflects an enhancement in our quality assurance measures and a smoother release pipeline, resulting in more reliable software releases.