Advent of DevOps
Level up your DevOps skills with 25 days of hands-on challenges
Advent of DevOps - 25 Day Challenge
Welcome to the Advent of DevOps! This is a hands-on, practical challenge designed to help you level up your DevOps skills through 25 days of real-world scenarios and tasks.
What is Advent of DevOps?
Inspired by the popular Advent of Code, Advent of DevOps is a series of 25 daily challenges covering essential DevOps practices, tools, and techniques. Each day presents a unique challenge that you can complete at your own pace.
What You'll Learn
- Containerization: Docker optimization, debugging, and best practices
- CI/CD: GitHub Actions workflows, caching, and automation
- Infrastructure as Code: Terraform modules and cloud deployments
- Kubernetes: Deployments, debugging, and Helm charts
- Observability: Monitoring, logging, and metrics
- Security: Container scanning, secrets management, and hardening
- Cloud Platforms: Serverless, static sites, and autoscaling
- DevOps Culture: Best practices, documentation, and collaboration
How It Works
- Choose a Day: Start with Day 1 or jump to any challenge that interests you
- Read the Challenge: Each day includes a clear task description and success criteria
- Complete the Task: Work through the challenge using the provided resources
- Share Your Solution: Tag @thedevopsdaily on social media with your progress
- Learn and Iterate: Review explanations and improve your solutions
Challenge Format
Each daily challenge includes:
- Title: What you'll be working on
- Description: Context and background
- Task: What you need to accomplish
- Target: Success criteria and goals
- Sample App: Starter code or resources (when applicable)
- Solution: Reference implementation
- Explanation: Why it matters and key concepts
- Result: What you should achieve
- Links: Additional resources and documentation
Community
Join thousands of DevOps practitioners taking the challenge! Share your progress, solutions, and learnings:
- Tag @thedevopsdaily on X (Twitter)
- Share on LinkedIn with #AdventOfDevOps
- Contribute your stories to our GitHub repository
Get Started
Ready to begin? Choose your first challenge:
Start with Day 1: Build a Minimal Docker Image
Or browse all challenges below!
Daily Challenges
Choose any day to start your DevOps learning journey
Build a Minimal Docker Image
Learn to create the smallest possible Docker image for a Python or Node.js application. Optimize for size, security, and performance.
Fix the Slow Docker Build
Debug and optimize a poorly written Dockerfile to reduce build time by at least 50%. Learn layer caching, build optimization, and best practices.
Add GitHub Actions CI
Set up continuous integration for a repository without automation. Create a GitHub Actions workflow that runs tests on every push.
Speed Up CI with Caching
Optimize a slow GitHub Actions workflow by adding intelligent caching for dependencies. Achieve 40% faster run times.
Debug a Broken Container
Troubleshoot and fix a container that fails to start. Learn essential debugging techniques for containerized applications.
Write a Small Terraform Module
Create your first reusable Terraform module to provision cloud infrastructure. Learn infrastructure as code fundamentals.
Improve the Terraform Module
Enhance your Terraform module with advanced features like testing, documentation, and CI/CD integration.
Deploy a Small App on Kubernetes
Deploy your first application to Kubernetes using Deployments, Services, and ConfigMaps. Learn the fundamentals of K8s.
Fix a Failing Pod
Debug and fix a Kubernetes pod that crashes on startup. Master essential troubleshooting techniques.
Wrap the App in a Helm Chart
Package your Kubernetes application as a Helm chart for easy deployment and management across environments.
Basic Observability
Set up monitoring and logging for your Kubernetes application with Prometheus and Grafana.
Log Parsing
Parse and analyze application logs to extract meaningful insights and debug production issues.
Security Scan
Scan container images and infrastructure code for security vulnerabilities and misconfigurations.
Networking Debugging
Debug network connectivity issues in Kubernetes including DNS, service discovery, and network policies.
Bash Scripting Day
Write a practical bash script to automate common DevOps tasks like deployments, backups, and health checks.
Autoscaling
Configure horizontal pod autoscaling in Kubernetes to automatically scale applications based on CPU and memory usage.
Serverless Deploy
Deploy a serverless function to AWS Lambda with API Gateway, learning modern serverless architecture patterns.
Deploy a Static Site
Deploy a static website to AWS S3 with CloudFront CDN for global performance and HTTPS support.
Load Testing
Perform load testing on your application to identify performance bottlenecks and capacity limits.
Secrets Management
Securely manage application secrets and credentials using AWS Secrets Manager, Kubernetes Secrets, and best practices.
Create a Reusable Template Repo
Build a GitHub template repository with DevOps best practices baked in for quick project bootstrapping.
Run a Local Cluster
Set up a local Kubernetes cluster with Minikube or Kind for development and testing without cloud costs.
Container Networking Puzzle
Solve complex container networking challenges involving multi-container apps, custom networks, and service discovery.
Harden a Config
Apply security hardening best practices to application configurations, containers, and infrastructure.
Write Your DevOps Journey
Reflect on your DevOps learning journey, document what you built, and share your knowledge with the community.
Ready to Start Your Journey?
Join the community and share your progress with @thedevopsdaily