Streamlining AMRIT's Deployment with CI-CD Integration
- 03 Mins read
- Devops
Deploying AMRIT’s latest code to multiple servers across state data centres has long been a manual, time-consuming, and error-prone process, which resulted in frequent downtimes for critical services like 104 and 1097 helplines. To solve this challenge, we turned to the open-source community through the Code for Gov Tech’s Dedicated Mentorship Program, where we collaborated with open-source contributors to automate the deployment process using a Continuous Integration and Continuous Deployment (CI-CD) pipeline.
CHALLENGE:Manual Deployments and Downtime
AMRIT’s deployment structure—spread across numerous on-premise servers and data centres—posed a significant challenge. Each release required manual intervention, leading to service downtimes that affected thousands of health workers. Moreover, manual releases increased the risk of errors, making it difficult to maintain the platform’s stability and responsiveness. With the need for a more streamlined process, our focus shifted towards implementing a robust CI-CD pipeline that would automate code testing, building, and deployment, while ensuring minimal downtime for these mission-critical services.
Delivering comprehensive documentation detailing the CI/CD tools, pipeline setup, configurations, and usage instructions. The outcome includes a Jenkins setup where a few clicks will build and deploy the latest code to designated data centers, automating code testing, building, and deployment processes.
SOLUTION: CI-CD Pipeline Implementation
Over the course of three months, in collaboration with a contributor selected through the Dedicated Mentorship Program, we successfully integrated a CI-CD pipeline for AMRIT. This solution included:
Key Objectives:
CI-CD Tool Selection and GitHub Actions Tweaking: We began by researching and selecting the best CI-CD tools for AMRIT’s deployment structure. GitHub Actions were enhanced to trigger unit tests and static code analysis to ensure code quality at every stage of development.
Automated Build and Deployment: A Jenkins pipeline was developed to build war files and automate their deployment to WildFly servers. This automated process eliminated the need for manual intervention during releases, saving time and reducing human errors.
Database Schema Migrations: One of the critical challenges was managing database schema migrations across multiple environments. The pipeline now automatically handles schema changes and synchronizes them across the deployment environment, ensuring consistency in data handling.
Seamless Sync to Higher Environments: Once the deployment pipeline was tested in the development environment, the same process was replicated to production, allowing AMRIT’s code to be promoted to higher environments with ease.
Expected Outcomes:
The contributor has created an initial implementation of CI-CD pipeline for a sandbox environment. The implementation of the CI-CD pipeline for AMRIT in higher environments is expected to have following outcomes.
Minimal Downtime: The pipeline will drastically reduc downtime for services like the 104 and 1097 helplines. Health workers will be able to access critical systems with little to no interruption, even during releases.
Automated, Secure Deployments: The new pipeline automates code testing, building, and deployment, reducing manual intervention and associated risks. Sensitive information, such as database passwords and API keys, will be managed securely within the pipeline.
Database Schema Migration: With automated schema migrations, database consistency will be maintained across all servers, ensuring smooth, error-free deployments.
Improved Efficiency and Stability: AMRIT’s development and release process is will be faster, more efficient, and stable. Jenkins pipeline will allow releases with just a few clicks, promoting frequent updates and improving the platform’s overall reliability.
About the Contributor
Shakyan Kushwaha is a Computer Science and Engineering graduate from IIITDM Jabalpur. His passion for DevOps, software development, and cloud technologies led him to contribute to healthcare tech solutions like AMRIT with Code for GovTech’s DMP initiative. With experience at IBM and expertise in optimizing CI/CD pipelines, Shakyan is dedicated to improving healthcare accessibility and efficiency.
Conclusion
The integration of a CI-CD pipeline into the AMRIT platform is a significant step toward streamlining healthcare service delivery in India. Through our collaboration with Code for Gov Tech’s Dedicated Mentorship Program, we have not only automated the deployment process but also ensured that critical healthcare services remain stable and accessible to millions of beneficiaries. This success story is a testament to the power of collaboration between the healthcare and tech communities in solving real-world challenges at scale.