https://github.com/akash2061/celebal-devops-project
A comprehensive DevOps project demonstrating CI/CD pipeline implementation for deploying a Next.js application to Azure Kubernetes Service (AKS) using Azure DevOps.
https://github.com/akash2061/celebal-devops-project
azure-container-registry azure-devops azure-kubernetes-services cloud-computing cloud-pipeline devops docker docker-container github-actions k8s kubernetes kubernetes-deployment pipelines project workflow
Last synced: 2 months ago
JSON representation
A comprehensive DevOps project demonstrating CI/CD pipeline implementation for deploying a Next.js application to Azure Kubernetes Service (AKS) using Azure DevOps.
- Host: GitHub
- URL: https://github.com/akash2061/celebal-devops-project
- Owner: akash2061
- Created: 2025-06-16T15:45:39.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-06-25T13:35:26.000Z (4 months ago)
- Last Synced: 2025-06-25T13:38:04.496Z (4 months ago)
- Topics: azure-container-registry, azure-devops, azure-kubernetes-services, cloud-computing, cloud-pipeline, devops, docker, docker-container, github-actions, k8s, kubernetes, kubernetes-deployment, pipelines, project, workflow
- Language: TypeScript
- Homepage:
- Size: 15.4 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Azure Kubernetes Service Deployment using GitHub Actions
A comprehensive DevOps project demonstrating CI/CD pipeline implementation for deploying a Next.js application to Azure Kubernetes Service (AKS) using GitHub Actions.
[](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/celebal-deployment-pipeline.yml)
[](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/docker-image-CI.yml)
[](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/azure-container-reg-CI.yml)## 🏗️ Project Architecture

> Final Project Report: [View Documentation](Docs/DevOps_Internship_Final_Project_Documentation.pdf)
## 📋 Project Overview
This project showcases a complete DevOps workflow that includes:
- **Frontend Application**: Next.js application with TypeScript and Tailwind CSS
- **Containerization**: Docker containerization for consistent deployments
- **CI/CD Pipeline**: GitHub Actions pipeline for automated build and deployment
- **Container Registry**: Azure Container Registry for image storage
- **Orchestration**: Azure Kubernetes Service for container orchestration## 🛠️ Technology Stack
### Application
- **Next.js 15.2.4** - React framework
- **TypeScript** - Type-safe JavaScript
- **Tailwind CSS** - Utility-first CSS framework
- **Radix UI** - Accessible component library
- **Lucide React** - Icon library### DevOps & Infrastructure
- **GitHub Actions** - CI/CD pipeline management
- **Azure Container Registry** - Container image registry
- **Azure Kubernetes Service** - Container orchestration
- **Docker** - Containerization platform## 📸 Deployment Snapshots
The following screenshots showcase real-time deployments from our CI/CD workflow:
### ✅ AKS Deployment Success

### ✅ Autoscale Enabled K8s

### ✅ Single Image on K8s

### ✅ Azure Container Registry

### ✅ Node Pool Creation
> Detailed ScreenShorts are available in : [Documentation](Docs/)
## 🚀 Getting Started
### Prerequisites
- Node.js 18 or higher
- Docker
- GitHub account
- Azure subscription
- kubectl (for local Kubernetes management)### Local Development
1. **Clone the repository**
```bash
git clone https://github.com/akash2061/Celebal-DevOps-Project
cd Celebal-DevOps-Project
```2. **Navigate to the App directory**
```bash
cd App
```3. **Install dependencies**
```bash
npm install --legacy-peer-deps
# or
pnpm install --legacy-peer-deps
```4. **Run the development server**
```bash
npm run dev
```5. **Open your browser**
Navigate to [http://localhost:80](http://localhost:80)### Docker Deployment
1. **Build the Docker image**
```bash
cd App
docker build -t my-v0-project .
```2. **Run the container**
```bash
docker run -p my-v0-project
```## 🔄 CI/CD Pipeline
The project implements a complete CI/CD pipeline as illustrated in the diagram above:
### Pipeline Stages
1. **Source Control**: Developer commits code to GitHub repository
2. **Feature Branch**: Development work happens in feature branches
3. **Pull Request**: Code review and merge to main branch
4. **Build Pipeline**:
- Code compilation and testing
- Docker image creation
- Push to Azure Container Registry
- Generate deployment artifacts
5. **Release Pipeline**: Deploy to Azure Kubernetes Service### Pipeline Configuration
The pipeline is configured to:
- Build the Next.js application
- Create Docker images
- Push images to Azure Container Registry
- Deploy to AKS cluster
- Run on port 80## 🐳 Docker Configuration
The [Dockerfile](App/Dockerfile) uses multi-stage builds for optimization:
- **Base stage**: Install dependencies and build the application
- **Production stage**: Create lightweight production imageKey features:
- Uses Node.js 18 Alpine for smaller image size
- Optimized for production deployment
- Exposes port 80
- Includes only necessary files for runtime## 🚀 Deployment
### Azure Kubernetes Service Deployment
1. **Set up Azure resources**
- Create AKS cluster
- Set up Azure Container Registry
- Configure GitHub secrets for authentication2. **Configure GitHub secrets**
- Container registry URL
- Kubernetes namespace
- Azure service principal credentials3. **Deploy using GitHub Actions**
- Pipeline automatically triggers on code commits
- Builds and pushes container images
- Deploys to AKS cluster> K8s Deployment Manifest using ACR : [ACR-K8s](App/manifests/aks_deployment.yml)
> K8s Deployment Manifest using Docker-Hub : [Docker-Hub-K8s](App/manifests/docker_hub_k8s_deployment.yml)
### AKS Pipeline Deployment:
## 🔁 Workflows
1. **Celebal Deployment Pipeline** : Complete CI/CD pipeline that builds images and deploys to Azure Kubernetes Service _(automated deployments)_
2. **Docker Image CI** : Builds and pushes Docker images to Docker Hub [@u/akash2061](https://hub.docker.com/u/akash2061) _(manual trigger | Fallback Option)_
3. **Azure Container Registry CI** : Migrates Docker images from Docker Hub to Azure Container Registry _(manual trigger)_
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request
5. Ensure all GitHub Actions checks pass## 📝 Documentation
Additional documentation can be found in the [Docs](Docs/) directory:
- Pipeline architecture diagrams
- Detailed project presentation
- Infrastructure setup guides## 🔧 Scripts
Available npm scripts in [package.json](App/package.json):
```json
{
"dev": "next dev -p 80", // Development server
"build": "next build", // Production build
"start": "next start -p 80", // Production server
"lint": "next lint" // Code linting
}
```## 📄 License
This project is part of a DevOps learning initiative and is intended for educational purposes.
---
**Note**: This project demonstrates enterprise-grade DevOps practices including automated testing, security scanning, and production deployment strategies using GitHub Actions and Azure cloud services.