CI/CD Revamp for Legacy Services
· Part of my work at Carousell
Abstract: Replaced manual, insecure deployment processes with an automated CI/CD pipeline using Jenkins, improving security and deployment reliability.
The Problem
Deployments for several legacy applications were performed manually by engineers directly from their local machines. This process was fraught with problems:
- Security Risks: It required developers to have direct SSH access to production servers.
- Unreliable Deployments: Deployments would often fail due to local connectivity issues or inconsistent environments.
- Lack of Auditability: There was no clear, auditable trail for who deployed what and when.
The Solution
To address these issues, I designed and implemented a new, automated deployment workflow built on Jenkins. My responsibilities included:
- Infrastructure Setup: Deploying and configuring a dedicated Jenkins VM to act as our automation server.
- Pipeline Creation: Building a robust deployment pipeline in Jenkins for the legacy applications. The pipeline would automatically fetch the latest code from the repository, build the application, and deploy it to the target server.
- Security Hardening: The new workflow completely eliminated the need for developers to have direct SSH access to servers. All deployments were now managed through the Jenkins pipeline, drastically improving the security posture of our production environment.
This initiative successfully transformed a high-risk, unreliable manual process into a secure, reliable, and fully automated CI/CD workflow, leading to more stable and predictable releases.