Skip to content

Commit 2aae880

Browse files
committed
added capstone project as a seperate section
1 parent 51c1612 commit 2aae880

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

pages/_meta.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
"---": {
55
"type": "separator"
66
},
7-
"projects": "Projects",
7+
"":{
8+
"title": "Projects",
9+
"type": "separator"},
10+
"capstone-project":"Capstone Project",
11+
"projects":"More Projects",
812
"contact": {
913
"title": "Twitter",
1014
"type": "page",

pages/capstone-project.mdx

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# DevOps Capstone Project: QR Code Generator
2+
3+
An app that converts a URL to a QR Code. The app has three components: Front-end, API and Storage. All 3 components should be hosted in containers utilizing the cloud provider of your choice. The sample application code is provided, your goals is to apply DevOps practices like containerization, CI/CD, observability and monitoring for the application.
4+
5+
- Front-End Container: Hosts the website where users can input URLs.
6+
- API Container: Handles the QR code generation for given URLs.
7+
- Storage Container: Stores the generated QR codes.
8+
9+
## Details
10+
11+
### 1. Application
12+
13+
- **Front-End**: A web application where users can submit URLs.
14+
- **API**: An API that receives URLs and generates QR codes.
15+
The API can store the QR codes in cloud storage(S3 Bucket, Azure Blob Storage, GCP Cloud Buckets).
16+
- **Storage**: A storage solution (like Azure Blob Storage, AWS S3 or Google Cloud Storage) to hold the QR codes.
17+
Ensure security and accessibility for the stored data.
18+
19+
### 2. Programming
20+
21+
A sample application is available here [rishabkumar7/devops-qr-code](https://github.com/rishabkumar7/devops-qr-code). It has the front-end built in NextJS, uses FastAPI Python framework for the API and AWS S3 for storage.
22+
23+
#### Required
24+
25+
- Containerization: Containerize both the front-end and API by creating a `Dockerfile`.
26+
- CI/CD: Write CI/CD pipeline to automate deployment of the containers, once your source code is changed.
27+
- Infrastructure as Code (IaC): Use Terraform to define and deploy the cloud Infrastructure(Kubernetes cluster).
28+
- Kubernetes YAML Files: Create deployment and service YAML files for both the Next.js front-end and the FastAPI backend.
29+
30+
> #### Optional
31+
> Optionally you can customize the already provided app.
32+
Sample app uses AWS S3. You can utilize cloud SDKs/modules (e.g., `boto3` for AWS, `google-cloud` for GCP, `azure` for Azure) to interact with cloud storage service from respective cloud providers.
33+
34+
### 3. Deployment
35+
36+
- Containerize the front-end, API using Docker.
37+
- Setup CI/CD: Push the containers to a container registry (Azure Container Registry, Amazon ECR, Google Container Registry or Docker hub).
38+
- Setup Kubernetes service within your cloud provider (Azure AKS, Amazon EKS or GCP GKE).
39+
- Use IaC like Terraform to define and deploy the Kubernetes cluster.
40+
- Deploy the front-end and API containers to the cluster.
41+
- Ensure containers are interconnected for seamless data flow.
42+
- Setup CI/CD pipeline to deploy the Kubernetes manifests to cluster after source is changed.
43+
44+
### 4. Implementation
45+
46+
- Web-app: Users are able to access the front-end, make sure the web-app is publicly accessible via a URL and has an input field to enter URLs.
47+
- API: Once the URL is entered by a user, the web-app makes the request to the API container to convert the URL into a QR Code.
48+
- Storage: The generated QR Code is stored and also displayed on the web-app for user.
49+
- CI/CD: Setup CI/CD pipeline to deploy the containers and application after the source is changed. You can utilize tools like GitHub Actions or Azure DevOps.
50+
- Monitoring: Setup monitoring for containers for key metrics and insights. You have Azure Monitor for AKS, Amazon CloudWatch Container Insights for EKS, or take it a step further by setting up Grafana.

0 commit comments

Comments
 (0)