Welcome to my 90 Days of DevOps Challenge repository! This project documents my journey to learn essential DevOps tools and practices over the next three months. Each day focuses on a specific tool or concept to enhance my skills and knowledge in the field of DevOps.
Join #TrainWithShubham Community on an exhilarating journey of learning and growth as we embark on the #90DaysofChallenge!
- Challenge Overview
- Learning Objectives
- 90-Day Timetable
- Tools to Study
- Daily Progress
- Resources
- Contributing
- License
The goal of this challenge is to deepen my understanding of DevOps principles, practices, and tools that are widely used in the industry. By the end of the 90 days, I aim to have hands-on experience and practical knowledge in each area covered.
- Gain a solid understanding of Linux and command-line operations.
- Learn version control using Git and collaboration through GitHub.
- Explore automation and configuration management tools like Docker, Jenkins, Ansible, and Terraform.
- Understand container orchestration with Kubernetes.
- Familiarize myself with cloud services, monitoring, logging, and security in the DevOps lifecycle.
Day(s) | Topic/Tool | Learning Objectives |
---|---|---|
Day 01-07 | Linux (Basic to Advanced) | Understanding Linux basics, file system, commands, and shell scripting. |
Learn about user management, permissions, and process management. | ||
Day 08-12 | Git and GitHub | Learn version control with Git, branching, merging, and collaboration with GitHub. |
Day 13-15 | Python for DevOps | Learn Python basics, scripting, and automation for DevOps tasks. |
Day 16-21 | Docker (Basic to Advanced) | Understand containerization, Docker commands, building images, and managing containers. |
Learn about Docker Compose and creating multi-container applications. | ||
Day 22-29 | Jenkins and GitLab (Basic to Advanced) | Learn CI/CD concepts, setting up Jenkins, creating pipelines, and integrating with GitHub. |
Explore GitLab for CI/CD and understand its features. | ||
Day 30-37 | Kubernetes (Basic to Advanced) | Understand container orchestration, setting up a Kubernetes cluster, deploying applications, and managing resources. |
Learn about Helm, services, ingress, and persistent storage. | ||
Day 38-45 | AWS (Basic to Advanced) | Get familiar with core AWS services (EC2, S3, RDS), IAM, and networking basics. |
Learn about infrastructure as code with CloudFormation or AWS CDK. | ||
Day 46-52 | Terraform (Zero to Hero) | Understand infrastructure as code, writing Terraform scripts, and managing cloud resources. |
Day 53-59 | Ansible (Zero to Hero) | Learn configuration management, writing playbooks, and automating infrastructure provisioning. |
Day 60-66 | Monitoring and Logging | Explore tools like Prometheus, Grafana, ELK stack, and setting up alerts. |
Understand logging best practices and monitoring application performance. | ||
Day 67-73 | Security in DevOps (DevSecOps) | Learn about security practices in the CI/CD pipeline, secrets management, and compliance. |
Day 74-80 | Advanced Concepts (CI/CD, Microservices) | Explore microservices architecture, advanced CI/CD strategies, and automated testing. |
Day 81-87 | Practice Projects | Work on practical projects using the tools you've learned (e.g., deploying a web application with CI/CD). |
Day 88-90 | Review and Future Learning | Review key concepts, document your learning, and plan for future learning paths. |
Throughout the 90 days, I will focus on the following essential DevOps tools:
- Linux: Command-line operations and shell scripting.
- Docker: Containerization and orchestration.
- Jenkins and GitLab: CI/CD implementation.
- Kubernetes: Container orchestration and management.
- Terraform: Infrastructure as Code (IaC) tool.
- Git: Version control system.
- Ansible: Automation and configuration management.
- Prometheus: Monitoring and alerting toolkit.
- Grafana: Visualization and analytics platform for metrics.
- SonarQube: Continuous inspection of code quality.
- Mega Projects: Implementation of comprehensive projects to consolidate learning.
Keep track of my daily progress in individual folders labeled day01
, day02
, ..., day90
. Each day's folder will contain a README.md
file with the following:
- Learning objectives for the day
- Key concepts and tools covered
- Resources and references used
- Reflections on what was learned
- Official Documentation - Links to official documentation for each tool.
- Online Courses - Recommended platforms for learning (e.g., Coursera, Udacity).
- YouTube Channels - Links to useful YouTube channels for video tutorials.
If you'd like to contribute to this repository or provide feedback, feel free to open issues or pull requests!
This project is licensed under the MIT License - see the LICENSE file for details.
This is a living document that will evolve as I progress through the challenge. Stay tuned for updates and insights!