DevOps - Step By Step Learning : Part 3 (A Simplified Roadmap to Start)
Saiful Islam Rasel
Senior Engineer, SDE @ bKash | Ex: AsthaIT | Sports Programmer | Problem Solver | FinTech | Microservice | Java | Spring-boot | C# | .NET | PostgreSQL | DynamoDB | JavaScript | TypeScript | React.js | Next.js | Angular
Story:
Rasel was able to convince the management and finally his team, and other teams started using Jira for project management, Confluence for documentation management, Git for version control, and GitHub for hosting codebase instead of manual management via an Excel Sheet.
But this was solved in the first part of the overall problems. Though they got better control and flow for managing projects and tasks/bugs, the deployment and operation parts were still manual, thus problematic.
So Rasel was inspired and confident from the overall result so far and decided to take the initiative to solve the other parts too. But like before, to convince the management, he needs the data and knowledge. As a result, he decided to gather a simplified roadmap so that everyone who was willing to learn the DevOps practice and tools hands-on could easily follow that.
A Simplified Roadmap:
Step 1 (Learn a Programming Language)
Why?
How to Learn?
Step 2 (Learn Computer Networking)
Why?
How to Learn?
Step 3 (Learn Linux)
Why?
How to Learn?
Step 4 (Be Fluent in Terminal or CLI Use)
Why?
How to Learn?
Step 5 (Learn Scripting with Bash)
Why?
How to Learn?
Step 6 (Learn Source Control Like GIT)
Why?
How to Learn?
Step 7 (Learn Automation With Github Action)
Why?
How to Learn?
Step 8 (Learn About Web Server Like Nginx)
Why?
How to Learn?
Step 9 (Learn Containerization Using Docker)
Why?
How to Learn?
Step 10 (Learn Cloud Provider Like AWS)
Why?
How to Learn?
Step 11 (Learn Infrastructure Provisioning by Code - IaC Using Terraform)
Why?
How to Learn?
Step 12 (Learn Container Orchestration Using Kubernetes)
Why?
How to Learn?
Step 13 (Learn Logging and Infrastructure Monitoring)
Why?
How to Learn?
Summary:
DevOps is all about automating software development, deployment, and infrastructure management. To get started, begin by learning a programming language like Golang, as scripting is essential for automation. Understanding computer networking concepts such as IP addressing, DNS, and firewalls is crucial since DevOps involves managing servers and cloud environments. Since most DevOps tools and cloud servers run on Linux, mastering Linux commands and becoming comfortable with the terminal (CLI) will help you navigate and control systems efficiently. Bash scripting is another key skill that allows you to automate repetitive tasks like backups and log management.
Version control using Git is essential for tracking code changes and collaborating with teams, while learning GitHub Actions will help you automate testing and deployments through CI/CD pipelines. Since applications need to be hosted, understanding web servers like Nginx will allow you to manage traffic and serve applications efficiently. To make applications portable and scalable, Docker is used for containerization, allowing apps to run seamlessly across different environments.
Cloud platforms like AWS, Azure, or Google Cloud are widely used in DevOps, so learning how to deploy and manage cloud infrastructure is a must. Infrastructure as Code (IaC) with Terraform enables automated provisioning of cloud resources, making deployments more efficient. For managing multiple containers, Kubernetes is essential, as it helps with scaling and orchestrating workloads. Finally, monitoring tools like Prometheus and Grafana are used to track application and server performance, ensuring reliability and quick issue resolution.
Previous Parts:
Detailed Roadmap Resource: https://roadmap.sh/devops