DevOps Roadmap
DevOps Roadmap
DevOps Roadmap
Infrastructure as
code
Configuration
Management
Cloud
RoadMap CICD
Virtualisation &
Containerisation
Programming
Shell Scripting
Linux
Linux
Basic Linux
What you must learn ?
Basic Commands ls, cd, pwd, mkdir, rm, cp, mv, find, grep, awk, sed, etc.
File System Understanding of the Linux file system hierarchy, permissions (chmod, chown), and special files (like
/dev, /proc, /sys).
Text Editors Proficiency with at least one command-line text editor like vim, nano, or emacs.
Networking Commands like netstat, ifconfig, ss, ping, traceroute, and understanding of network configuration files.
Package Management Knowledge of package managers like apt, yum, or dnf depending on the distribution.
@Sandip Das
Advance Linux
What you must learn ?
System Monitoring Tools like vmstat, iostat, lsof, and sar.
Disk Management Understanding of disk partitions, fdisk, mkfs, mounting/unmounting, and fstab.
SSH Securely accessing remote systems using SSH, and understanding of SSH keys.
Security Basic security practices like setting up firewalls (iptables, ufw), SELinux, and understanding of public
and private keys.
@Sandip Das
Shell
Scripting
Shell Scripting
@Sandip Das
Input/Output Reading input from the user or a file, and displaying output.
Control Structures if, elif, else, loops (for, while), and comprehensions.
Modules and Packages How to import and use them, and the Python standard library, Pip, Python package manager to install
and manage libraries.
Virtual Environments venv and virtualenv Isolate Python environments for different projects.
File Operations Reading from and writing to files. Handling different file formats, especially JSON and YAML, which
are common in configuration and infrastructure code
Networking and API requests: Make HTTP requests to interact with RESTful APIs. socket: Low-level networking for tasks
Interactions like checking port availability.
Automation and Scripting os and sys modules: Interact with the operating system, execute commands, and handle command-
line arguments. subprocess: Run shell commands and scripts from Python.
Programming
@Sandip Das
Databases sqlite3: Built-in library for SQLite databases. SQLAlchemy or PyMySQL: For interactions with larger
databases like MySQL or PostgreSQL.
Cloud Provider SDKs boto3: AWS SDK for Python. Useful for automating tasks in AWS.
SDKs for other cloud providers like google-cloud-python for GCP or azure-sdk-for-python for Azure.
Web Frameworks Flask or Django: Useful if you're building internal web tools or dashboards.
Testing unittest or pytest: Write tests for your scripts to ensure they work as expected.
Logging logging: Built-in module for generating logs. Essential for debugging and monitoring.
Performance and Monitoring time and profile: Measure and optimize the performance of your scripts.
Error Handling Properly handle exceptions using try, except, finally, and raise meaningful errors when necessary.
Virtualisation &
Containerisation
Virtualisation
What you must learn?
Virtualization and containerization are foundational technologies in the DevOps landscape. They enable
consistent environments, scalability, and efficient resource utilization. Here's a breakdown of the essential
knowledge in these areas for a DevOps engineer:
Conceptual Understanding Difference between full virtualization, paravirtualization, and hardware-assisted virtualization.
Understand hypervisors and the difference between Type 1 (bare metal) and Type 2 (hosted)
hypervisors.
Tools & Platforms VMware vSphere/ESXi: Widely used in enterprise settings for creating and managing virtual
machines.
Microsoft Hyper-V: Microsoft's virtualization solution.
Oracle VirtualBox: Popular for desktop virtualization.
KVM (Kernel-based Virtual Machine): Linux-based virtualization solution.
Networking & Storage Understand virtual switches, NICs, and other virtual networking components.
Familiarity with storage solutions like SAN, NAS, and how they integrate with virtual
environments.
@Sandip Das
Containerisation
What you must learn?
Grasp the difference between virtual machines and containers.
Conceptual Understanding
Understand the benefits of containers: lightweight, fast, consistent, and scalable.
Docker:
Docker images, containers, Dockerfiles, and docker-compose.
Core Tools
Building, running, and managing containers.
Docker Hub and creating custom Docker images.
Containerd & runc:
Lower-level container runtimes that Docker is built upon.
Registry Understand container registries like Docker Hub, Quay.io, and how to set up private registries.
Monitoring & Logging Tools like Prometheus for monitoring and Grafana for visualization.
Logging solutions like ELK Stack (Elasticsearch, Logstash, Kibana) or EFK Stack (with Fluentd).
@Sandip Das
Continuous Integration (CI)
&
Continuous Deployment/Delivery (CD)
CICD
What you must learn?
Continuous Integration (CI) and Continuous Deployment/Delivery (CD) are fundamental practices in the DevOps methodology. They ensure
that code changes are automatically tested, integrated, and deployed to production, leading to faster and more reliable releases. Here's a
breakdown of the essential CI/CD knowledge for a DevOps engineer:
Core Concepts Continuous Integration (CI): The practice of frequently integrating code changes into a shared
repository, where they are automatically tested.
Continuous Deployment vs. Continuous Delivery:
Continuous Deployment: Automated deployment of code changes to production without
manual intervention.
Continuous Delivery: Code changes are automatically built, tested, and prepared for a
manual release to production.
Build Automation: Compiling source code into executable artifacts.
Automated Testing: Running unit, integration, and system tests automatically.
Deployment Strategies: Understanding of different deployment methods like blue-green
deployments, canary releases, and rolling updates.
@Sandip Das
CICD
What you must learn?
Container Integration Understanding how to integrate container tools like Docker and orchestration platforms like
Kubernetes into CI/CD pipelines.
Infrastructure as Code (IaC) Integrating IaC tools like Terraform or CloudFormation into CI/CD processes for infrastructure
Integration provisioning.
Artifact Managemen Knowledge of artifact repositories like Nexus, Artifactory, or Azure Artifact to store and manage build
artifacts
Security Implementing security best practices in CI/CD, such as secret management, code scanning, and
dependency checking.
Familiarity with tools like SonarQube for static code analysis or Snyk for vulnerability scanning.
Version Control Integration Deep integration with version control systems like Git, understanding hooks, triggers, and pull request
workflows.
@Sandip Das
CICD
What you must learn?
Parallel Builds
Optimizing CI/CD pipelines by running jobs in parallel, caching dependencies, and reusing previous
& Caching
build steps.
Environment Management Managing different environments like development, staging, and production within CI/CD
pipelines.
Monitoring
& Integrating monitoring and logging tools into CI/CD pipelines to provide feedback on
Feedback deployments.
Understanding feedback loops to ensure that any issues in the CI/CD process are quickly
identified and addressed.
@Sandip Das
Major CICD Tools!
Jenkins GitLab CI/CD GitHub Actions Travis CI CircleCI
Familiarity with Jenkins Understanding .gitlab- Configuring workflows Configuring builds using Understanding CircleCI
pipelines, both declarative ci.yml configuration. using the YAML syntax. .travis.yml. configuration with
and scripted. Familiarity with GitLab Utilizing the marketplace Integration with GitHub .circleci/config.yml.
Knowledge of Jenkins runners, stages, and actions and creating repositories. Working with CircleCI
plugins, nodes, and jobs. custom actions. orbs and workflows.
executors.
Integrating Jenkins with
version control systems
like Git.
Multi-branch pipeline
@Sandip Das
Cloud
Cloud
What you must learn?
Cloud platforms play a pivotal role in the modern DevOps landscape. They provide scalable infrastructure, a plethora of services, and tools that
facilitate automation, monitoring, and deployment. Here's a breakdown of the essential cloud knowledge for a DevOps engineer:
Core Cloud Concepts Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service
(SaaS).
Understanding of elasticity, scalability, and high availability.
Cloud pricing models and cost optimization strategies.
Cloud compute basics: Virtual Machine/instance type / sizes and their use cases and performance/
cost
Cloud storage basics: Elastic/scaled Storage, Object Storage etc
Cloud networking: Virtual Private Cloud (VPC) , Firewalls / security groups
Cloud security basics: Identity and Access Management (IAM), encryption, etc.
@Sandip Das
Major Cloud Providers
@Sandip Das
Serverless Architectures:
Familiarity with serverless concepts and platforms like AWS Lambda, Azure Functions, and Google Cloud Functions.
and Understanding of serverless application deployment and monitoring will help cost reduction
Configuration Management
Configuration management
What you must learn?
Configuration management (CM) is a critical component in the DevOps landscape. It ensures that systems are consistently maintained in a
desired state, allowing for scalable and automated infrastructure management. Here's a breakdown of the essential configuration
management knowledge for a DevOps engineer:
Core Concepts Idempotence: The ability to run the same configuration multiple times without changing the result
after the first run.
Convergence: The process of moving the current system state towards the desired state.
Immutable Infrastructure: The idea of never modifying systems in place, but replacing them with
new instances when changes are needed.
Version Control for Understand the importance of storing configuration code in version control systems like Git.
Configuration Grasp best practices like code reviews for configuration changes, branching strategies, and
continuous integration for configuration code.
Familiarity with tools and practices to securely manage secrets (like API keys, passwords, and
Secrets Management certificates) in configuration management. Tools include:
HashiCorp Vault
AWS Secrets Manager
@Sandip Das Azure Key Vault
Major Configuration Management Tools
@Sandip Das
Infrastructure as Code
Infrastructure as code (IAC)
What you must learn?
Infrastructure as Code (IaC) is a key principle in the DevOps paradigm, allowing infrastructure provisioning and management using code and
automation. Here's a breakdown of the essential IaC knowledge for a DevOps engineer:
Core Concepts Immutable Infrastructure: The idea of provisioning new infrastructure for any change rather than
altering existing resources.
Declarative vs. Imperative Approaches: Understanding the difference between defining the
desired end state (declarative) and specifying the steps to reach that state (imperative).
Version Control: Storing IaC scripts in version control systems like Git, ensuring traceability,
collaboration, and history tracking.
Configuration Understand how IaC integrates with configuration management tools like Ansible, Puppet, Chef, or
Management Integration SaltStack. For instance, you might use Terraform to provision a VM and then Ansible to configure the
software on that VM.
State Management Understand the importance of state in IaC tools, especially in Terraform. Know how to manage, back
up, and lock the state to prevent conflicts.
@Sandip Das
@Sandip Das
Modular and Reusable Grasp the importance of writing modular IaC scripts for reusability. For example, using
Code Terraform modules or CloudFormation nested stacks.
@Sandip Das
Modular and Reusable Grasp the importance of writing modular IaC scripts for reusability. For example, using
Code Terraform modules or CloudFormation nested stacks.
Thank you for reading
Subscribe: @LearnTechWithSandip