Welcome to the ultimate DevOps learning repository! This project is designed to take you from a basic software application to a fully automated, containerized, and orchestrated cloud-native solution.
This repository uses a .NET Task Manager as the core application to demonstrate the complete DevOps lifecycle. Whether you are a beginner or looking to professionalize your workflow, this project covers it all.
- Source Code: Located in
src/TaskManager. A functional C# console app. - Best Practices: Standardized folder structure, clean code, and separation of concerns.
- Action: Try running the app locally using
dotnet run.
- Dockerfile: Multi-stage builds to optimize image size and security.
- Docker Compose: Orchestrate the app with local storage persistence.
- Location:
infrastructure/docker/ - Goal: Package the app so it runs anywhere identically.
- Deployment: Scaling your app to handle traffic.
- Persistence: Using PVC (Persistent Volume Claims) for data storage.
- Service: Exposing your application to the network.
- Location:
infrastructure/kubernetes/ - Goal: Manage containers at scale with self-healing capabilities.
- Provisioning: Automatically create cloud resources (Resource Groups, ACR, AKS).
- Cloud Provider: Focused on Azure (easily adaptable to AWS/GCP).
- Location:
infrastructure/terraform/ - Goal: Treat your infrastructure like code—versionable and repeatable.
- GitHub Actions: Automate the entire process.
- Pipeline: Every push builds the code, runs tests, and creates Docker images.
- Location:
.github/workflows/ - Goal: Faster delivery with high reliability and zero manual intervention.
.
├── .github/workflows/ # CI/CD Pipelines
├── infrastructure/
│ ├── docker/ # Docker & Compose files
│ ├── kubernetes/ # K8s Manifests (Deployments, Services)
│ └── terraform/ # IaC for Cloud Provisioning
├── src/
│ └── TaskManager/ # Core .NET Application
└── README.md # Your Learning Guide- Clone the Repo: Start by exploring the
src/folder. - Build the Container: Move to
infrastructure/dockerand rundocker-compose up --build. - Explore Orchestration: Look at
infrastructure/kubernetesto see how a production-grade deployment is defined. - Provision Cloud: Use the
infrastructure/terraformfiles to see how to script a cloud environment. - Watch the Magic: Check the "Actions" tab in GitHub to see the CI/CD pipeline in action.
This project is part of a continuous learning journey in DevOps Engineering.
Lead Engineer: Saurabh Singh Rajput
"DevOps is not a goal, but a never-ending process of continual improvement."
Inspired by the need for a practical, hands-on DevOps guide.