This is a sample application using Flask for the backend and Next.js for the frontend.
-
Navigate to the
server
directory:cd server
-
Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt
-
Run the Flask application:
python app.py or flask run
-
Navigate to the
client
directory:cd client
-
Install the required packages:
npm install
-
Run the Next.js application:
npm run dev
-
CI/CD Pipeline Setup
- Fork this repository.
- Create a CI/CD pipeline using Azure DevOps.
- Include automated testing in the pipeline.
- Deploy the application to Azure App Services.
-
Containerization
- Write Dockerfiles for both the Flask backend and the Next.js frontend.
- Ensure both Docker containers run locally.
-
Kubernetes Deployment on Azure
- Write Kubernetes manifests to deploy the Docker containers to a Kubernetes cluster.
- Ensure the application is accessible through a Kubernetes service.
-
Load Balancer
- Configure Nginx as a load balancer to distribute traffic.
-
Bonus
- Implement basic logging for the application using ELK stack or Azure Monitor.
-
Code Repository:
- Host the project on a private GitHub repository forked from this sample application.
- Provide a README.md file with instructions on how to set up and run the project locally.
- Share access to the repository with [email protected].
-
Video Demonstration:
- Record a video demonstrating the working of the CI/CD pipeline, Docker container, Kubernetes deployment on Azure, and load balancer setup.
- The video should show:
- The CI/CD pipeline in action, deploying the application.
- Running the Docker containers locally.
- Accessing the application through the Kubernetes service.
- Nginx implementation.
- Upload the video to Google Drive and provide the link in the README.md file.
- Technical accuracy and functionality of the CI/CD pipeline, Docker containers, Kubernetes deployment, and load balancer setup.
- Attention to detail and adherence to best practices in DevOps.