Skip to content

yasmeenkhaled/cloudDevOpsProjectt

Repository files navigation

☁️ Cloud DevOps Project

This project demonstrates a complete DevOps lifecycle implementation for deploying a Flask web application on the cloud using the following tools:

  • Git & GitHub – Source control and collaboration
  • Docker – Containerization
  • Kubernetes (K8s) – Container orchestration
  • Terraform – Infrastructure as Code on AWS
  • Ansible – Configuration management
  • Jenkins – Continuous Integration (CI)
  • ArgoCD – Continuous Deployment (CD)

📦 Application Overview

The application is a simple Python Flask web app that renders an HTML page using Jinja templates.

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

🚀 1. Docker – Containerizing the Flask App

We use a Dockerfile to package the Flask application into a container image.

🔧 Build the Docker Image

docker build -t flask-app .

▶️ Run the Container

docker run -p 5000:5000 flask-app

✅ This exposes the Flask app on http://localhost:5000

Docker Image


☸️ 2. Kubernetes – Deploying the App on Minikube

The Kubernetes setup includes the following YAML resources:

  • namespace.yaml
  • deployment.yaml
  • service.yaml

🚀 Start Minikube

minikube start

📦 Apply Kubernetes Manifests

kubectl apply -f namespace.yaml
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

🌐 Expose the Service

minikube service flask-service -n ivolve

This command opens the exposed service in your browser.

Service Exposed Service UI


🌍 3. Terraform – Provisioning AWS Infrastructure

Terraform is used to provision backend resources such as:

  • S3 bucket for remote state
  • DynamoDB table for state locking (deprecated: use use_lockfile)
  • EC2 instance or other infrastructure Source Code: Source Code:

📷 Infrastructure Provisioning Screenshots:

Terraform Infra Terraform Output


Jenkins / CI/CD pipline

Source Code: -Jenkinsfile

image

ArgoCD

image

About

Graduation Project Deploy App and build infrastrucure

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors