Code-Keeper - DevOps CI/CD Automation Platform
Built a complete end-to-end DevOps automation platform that deploys a GitLab instance using Ansible, provisions cloud infrastructure with Terraform, and implements CI/CD pipelines for a microservices-based application. The project applies standard practices for continuous integration, continuous deployment, and security across staging and production environments.

Context
Code-Keeper is a DevOps automation platform that walks through the complete lifecycle of modern application deployment. The project consists of three core microservices: an Inventory application for managing movie catalog data, a Billing application for processing orders with message queue integration, and an API Gateway serving as the single entry point for all client requests.
The infrastructure is fully automated using Infrastructure as Code (IaC) principles with Terraform, provisioning resources on AWS including EKS clusters, RDS databases, VPCs, and monitoring with CloudWatch. The entire GitLab CI/CD platform is deployed and configured using Ansible playbooks, demonstrating configuration management automation.
Each microservice includes extensive automated testing (smoke tests, integration tests, stress tests), security scanning with Trivy, containerization with Docker, and orchestration with Kubernetes. The pipelines implement manual approval gates between staging and production deployments, ensuring controlled releases.
The problem
Designing and implementing a complete end-to-end DevOps pipeline presented multiple challenges: orchestrating infrastructure provisioning across staging and production environments while maintaining consistency, automating GitLab deployment and runner configuration with Ansible, implementing secure credential management without storing secrets in code, creating test suites for each microservice covering connectivity, integration, and performance testing, integrating security scanning at multiple pipeline stages, and ensuring zero-downtime deployments with proper approval workflows. Additionally, managing multi-service dependencies with RabbitMQ message queuing and PostgreSQL databases required careful orchestration.
Architecture & decisions
Implemented Infrastructure as Code with Terraform modules for networking, compute (EKS), database (RDS), and monitoring, enabling reproducible deployments. Created Ansible roles and playbooks for automated GitLab installation and runner configuration. Designed multi-stage CI/CD pipelines with distinct phases: smoke tests, integration tests, stress tests, security scanning, build, push to registry, staging deployment, manual approval, and production deployment. Utilized GitLab CI/CD variables and Kubernetes secrets for secure credential management. Implemented health checks and rolling updates for zero-downtime deployments. Integrated Trivy for vulnerability scanning of both filesystem and Docker images. Used Docker multi-stage builds for optimized container images. Implemented monitoring with CloudWatch logs and metrics.
What it does
- GitLab Automated Deployment with Ansible
- Infrastructure as Code with Terraform
- Multi-Environment Support (Staging/Production)
- Comprehensive CI/CD Pipelines
- Automated Testing (Smoke, Integration, Stress)
- Security Scanning with Trivy
- Container Orchestration with Kubernetes
- Message Queue with RabbitMQ
- Database Management with PostgreSQL
- Manual Approval Gates
- Zero-Downtime Deployments
- CloudWatch Monitoring and Logging
- Microservices Architecture (Inventory, Billing, API Gateway)