Skip to content

This is the sample application for the DevOps Capstone Project. It generates QR Codes for the provided URL, the front-end is in NextJS and the API is written in Python using FastAPI.

License

Notifications You must be signed in to change notification settings

Ayaan49/devops-qr-code

 
 

Repository files navigation

Project Introduction:

devops-capstone-ezgif com-webp-to-png-converter

Welcome to the DevOps Capstone Project guide! In this comprehensive project, we will walk through the process of setting up a QR code application on AWS. The app has three components: Front-end, API and Storage. All 3 components would be hosted in containers utilizing the cloud provider of your choice(I'll use AWS). Our goal is to apply DevOps practices like containerization, CI/CD, IAC, observability, monitoring, and logging for the application.

Application Details

  • Front-End Container: Hosts the website where users can input URLs.

  • API Container: Handles the QR code generation for given URLs.

  • Storage Container: Stores the generated QR codes.

Project Overview:

In this project, we will achieve the following-

  1. Containerization: Containerize both the front-end and API by creating a Dockerfile.

  2. CI/CD: Write CI/CD pipeline to automate deployment of the containers, once your source code is changed.

  3. Infrastructure as Code (IaC): Use OpenTofu to define and deploy the cloud Infrastructure(Kubernetes cluster).

  4. Kubernetes YAML Files: Create deployment and service YAML files for both the Next.js front-end and the FastAPI backend.

  5. Install Nginx Ingress Controller: We will install the Nginx Ingress Controller, which in turn will create an AWS Application Load Balancer (ALB) for the EKS cluster.

  6. DNS Mapping of Load Balancer: We will get the URL of the Load Balancer and map it to our domain name in Cloudflare.

  7. Install Cert-Manager: To provide an automated way of ensuring TLS certificates for our site, we will install Cert-Manager.

  8. Helm Chart for application: Create a Helm chart for the application to facilitate easy deployment through the Helm command.

  9. Monitoring & Logging Setup: Implement monitoring and logging for the EKS cluster using Helm, Prometheus, Loki, and Grafana.

  10. ArgoCD Installation: Install and set up ArgoCD for continuous delivery and GitOps.

About

This is the sample application for the DevOps Capstone Project. It generates QR Codes for the provided URL, the front-end is in NextJS and the API is written in Python using FastAPI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HCL 59.6%
  • JavaScript 17.0%
  • Python 10.5%
  • Dockerfile 9.7%
  • CSS 3.2%