Skip to content

Latest commit

 

History

History
100 lines (74 loc) · 5.97 KB

README.md

File metadata and controls

100 lines (74 loc) · 5.97 KB

90 Days of DevOps Challenge

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!


Table of Contents

Challenge Overview

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.

Learning Objectives

  • 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.

90-Day Timetable

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.

Tools to Study

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.

Daily Progress

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

Resources

Contributing

If you'd like to contribute to this repository or provide feedback, feel free to open issues or pull requests!

License

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!