
Web application where users can add, delete, and view messages in various languages. Built an Azure Kubernetes (AKS) Cluster deployment pipeline using Terraform and GitOps automation with ArgoCD, incorporating DevSecOps principles such as image and cluster scanning for enhanced security. To optimize costs, deployed the app in a K3s cluster on an Ubuntu server. Integrated Prometheus with custom application metrics to monitor app performance and set up alerts for predefined rules, sending notifications to Slack. Leveraged Grafana for advanced visualization and interactive monitoring of the system.
Key Learnings
- Infrastructure as Code (IaC) with Terraform to boostrap an Azure Kubernetes (AKS) Cluster.
- Setting up CI/CD pipelines using GitHub Actions to deploy to a Kubernetes cluster.
- Implementing GitOps workflows with ArgoCD to manage application deployments.
- Setting up an Azure Container Registry (ACR) to store application Docker images.
- Setting up Kubernetes Network policies to filter Ingress and Egress traffic between Pods.
- Deployed an Nginx Ingress controller with SSL termination using CertManager to effectively manage and route incoming web traffic to the appropriate kubernetes services.
- Utilized Helm package management to create a Helm chart for the application, and installing existing Helm charts to easily manage external kubernetes dependencies.
- DevSecOps practices involving image scanning, Kubernetes cluster and dependency management to ensure security.
- Implemented custom application and container metrics using Prometheus, and visualized these metrics with Grafana.
- Added Slack notifications based on real-time prometheus metrics.