Skip to content

vedant-kakde/DevOps-Roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 

Repository files navigation

🛣 DevOps Roadmap


  • What DevOps concepts & tools to learn ?
  • Tasks & Responsibilities ?

🔰 There are two Departments

🔹 DEVELOPMENT :-

  • deploying of application
  • testing of application

🔹 OPERATIONS :-

  • deployment of application
  • maintained on a server

🔰 Concepts of Software Development

Development
✅ Git
✅ How developers work
✅ Which git workflow
✅ How application is configured
✅ Automated testing

🔰 Operating System & Linux Basics

🔹 Operations -> Server
🔹 Prepare the infrastructure
✅ Linux Basics
✅ Comfortable using CLI
✅ Shell commands
✅ Linux File System
✅ Server Management
✅ SSH Key Management

🔰 Networking & Security

✅ Firewall, Proxy Servers
✅ Load Balancers
✅ HTTP/HTTPS
✅ IP, DNS Name Resolution

🔰 Containers

✅ Virtualization
✅ Containers
Docker

🔰 How to release the Operations?

Build Automation & CI/CD
✅ Build Tools & Package Manager
(Maven & Gradle -> Java app. , npm -> JS app.)
✅ Build Docker Images
✅ Artifact Repository (Nexus, Docker Hub)
✅ Build Automation (Jenkins, GitLab, GitHub Actions)
✅ Configure complete CI/CD pipeline

🔰 Cloud Providers

Infrastructure as a Service
AWS, Google Cloud, Azure
🔹 Save costs
🔹 Offer a range of services - Load balancing, Backup, Clustering, Security, ...
🔹 Many services are Platform-specific services
🔹 There are too many services
🔹 Only learn services you actually need

🔰 Container Orchestration

🔹For small containers -
✅ Docker compose, Docker Swarm

🔹If we have lot more containers or Incase of big microservices
We need more powerful tool

✅ Kubernetes
🚩 Learn Kubernetes
🚩 How it works, Administor & Manage the cluster, Deploy applications

🔰 Monitoring

  • Track Performance
  • Discover Problems
    ✅ Monitor Software
    ✅ Monitor Infrastructure
    Tools - Prometheus , Nagios, etc.

🔰 Infrastructure as Code

🔹 For Production, Testing, Dvelopment
🔹 You need more than one environment
🔹 Manually creating & maintaining the environment :-

  • Time consuming
  • Error prone

🔸 Use code to :-
  • Create infrastructure
  • Configure to run & deploy your app

  • Infra. Provisioning (Terraform)
  • Config. management (Ansible, Chef, Puppet)

🔹You should know one of these tools to be:-
  • More efficient
  • Transparent
  • Easy to replicate & recover

🔰 Scripting Language

🔹 Automating tasks for development & operations :-
Backups, cron jobs, system monitoring

✅ Know a Scripting Language
🚩 OS-specific - bash, shell
🚩 OS-independent - Python, Ruby, Go

🌟 Python is most popular
🚩 Easy to read
🚩 Easy to learn
🚩 Many Libraries for most of Databases, OS Tasks & Cloud Platforms

🔰 Version Control

Git
GitHub

❗ How many tools to learn?

🔹 One tool in each category
🔹 Most popular / widely used