Skip to main content

Command Palette

Search for a command to run...

The Ultimate DevOps Bootcamp Syllabus

Complete DevOps Bootcamp Curriculum in Detailed

Updated
โ€ข8 min read
The Ultimate DevOps Bootcamp Syllabus
P

๐‘ช๐’๐’๐’–๐’… ๐’‚๐’๐’… ๐‘ซ๐’†๐’—๐‘ถ๐’‘๐’” ๐‘ป๐’†๐’„๐’‰ ๐‘ช๐’๐’Ž๐’Ž๐’–๐’๐’Š๐’•๐’š || ๐‘ท๐’“๐’๐‘ซ๐’†๐’—๐‘ถ๐’‘๐’”๐‘ฎ๐’–๐’š ๐Ÿค– https://t.me/prodevopsguy ๐Ÿ‘‹ Hi there! We are ProDevOpsGuy, a passionate DevOps enthusiast Tech Community with a strong belief in the power of automation and collaboration to drive innovation. ๐Ÿš€ I thrive in bridging the gap between development and operations, creating seamless and efficient software delivery pipelines. My journey in the world of DevOps has allowed me to blend my technical skills with a knack for problem-solving, enabling me to contribute effectively to agile and dynamic environments. ๐Ÿ’ก With a keen interest in continuous integration, continuous delivery (CI/CD), containerization, and orchestration, I've had the privilege to explore cutting-edge technologies like Docker, Kubernetes, Jenkins, and Ansible. I find joy in designing scalable and resilient infrastructures that enable teams to deploy applications faster and with greater confidence. ๐ŸŒ Beyond the tech realm, I'm an advocate for DevOps culture, emphasizing collaboration, communication, and a relentless pursuit of improvement. I'm always eager to connect with fellow professionals, exchange insights, and explore opportunities to collaborate on exciting projects. ๐Ÿ“š When I'm not tinkering with the latest DevOps tools, you can find me indulging in books on technology trends, hiking to rejuvenate, and occasionally experimenting with new coding challenges. ๐ŸŒŸ Let's connect! Whether you're looking to discuss DevOps methodologies, explore partnership opportunities, or simply share experiences, feel free to reach out. I'm excited to be part of the DevOps journey, driving excellence together.

DevOps Bootcamp Curriculum:

Lesson 01: DevOps Bootcamp Overview

Lesson 02: DevOps Overview

  • What is DevOps?

  • Roles and Responsibilities of a DevOps Engineer

  • How DevOps fits in the Software Development Lifecycle

Lecture 01: What is an OS and How Does it Work?

  • Tasks of an OS

  • How an OS is Constructed

  • Differences Between Unix, Linux, Windows, and MacOS

Lesson 02: Virtualization

  • Introduction to Virtual Machine

  • Setup a Linux Virtual Machine

Lesson 03: Package Manager - Installing Software

  • What is a Package Manager and Software Repositories?

  • Options for Installing Software on Linux and How it Works

    • APT

    • APT vs APT-GET

    • SNAP

    • Ubuntu Software Center

    • YUM

Lesson 04: Working with Vim Editor

  • What is Vim?

  • Important Vim Commands

Lesson 05: Users & Permissions

  • Linux Accounts

  • Users, Groups & Permissions

  • User Management in Practice

  • File Ownership & Permissions

  • Modifying Permissions

Lesson 06: Linux File System

Lesson 07: Basic Linux Commands

  • Introduction to Command Line Interface

  • Essential Linux Commands

    • Directory Operations

    • Navigating the File System

    • Working with the File System (Create folders, list files, rename, remove files, etc.)

    • Execute Commands as Superuser

    • Pipes, Redirects, Less, Grep

Lesson 08: Shell Scripting

  • Shell vs sh vs Bash

  • Write & Execute a Simple Script

  • Writing Bash Scripts

    • Variables

    • Conditional Statements

    • Basic Operators

    • Passing Arguments to a Script

    • Read User Input

    • Shell Loops

    • Functions

Lesson 09: Environment Variables

  • What are Environment Variables and How to Access Them

  • Create, Delete, and Persist Environment Variables

  • Understanding the PATH Environment Variable

Lesson 10: Networking

  • How Computer Networks Work

  • LAN, Switch, Router, Subnet, Firewall, Gateway

  • IP Address and Port

  • DNS and DNS Resolution

  • Useful Networking Commands

Lesson 11: SSH - Secure Shell

  • What is SSH and How it Works

  • SSH in Action

    • Create Remote Server on Cloud

    • Generate SSH Key Pair

    • Execute a Bash Script on a Remote Machine

Lesson 12: Introduction to Version Control and Git

  • Basic Concepts of Git

  • Setup Git Repository (Remote and Local)

  • Working with Git

    • git status, git commit, git add, git push
  • Initialize Git Project Locally

  • Concept of Branches

  • Merge Requests

  • Deleting Branches

  • Avoiding Merge Commits (rebase)

  • Resolving Merge Conflicts

  • Ignoring Certain Files (.gitignore)

  • Saving Work-in-Progress Changes (git stash)

  • Going Back in History (git checkout)

  • Undoing Commits (git revert, git reset)

  • Merging Branches

  • Git for DevOps

Lesson 13: Build Tools and Package Managers

  • What are Build Tools and Package Managers?

  • Building an Artifact

  • Running the Application Artifact

  • Publishing the Application Artifact to an Artifact Repository

  • Build Tools for Java (Gradle and Maven)

  • Dependency Management in Software Development

  • Package Manager in JavaScript Applications - Build and Run Applications in JS

  • Build Tools & Docker

  • Relevance of Build Tools for DevOps Engineers

Lesson 14: Cloud & Infrastructure as a Service Concepts

  • Setup Server on DigitalOcean (Droplet)

  • Install Java on Cloud Server

  • Deploy and Run an Application on Cloud Server

  • Create a Linux User to Login to Server (Instead of Using Root User)

Lesson 15: Artifact Repository Manager

  • What is an Artifact Repository Manager?

  • Install and Run Nexus on Cloud Server

  • Different Repository Types (Proxy, Hosted, etc.)

  • Different Repository Formats (Maven, Docker, NPM, etc.)

  • Upload Jar File to Nexus (Maven and Gradle Projects)

  • Nexus API and Repository URLs

  • Blob Stores

  • Browsing Components - Components vs Assets

  • Cleanup Policies and Scheduled Tasks

Lesson 16: Introduction to Containers

  • What is a Container?

  • Docker Components and Architecture

  • Docker vs. Virtual Machine

  • Main Docker Commands

  • Debugging a Docker Container

  • Demo Project Overview - Docker in Practice

  • Developing with Containers

  • Docker Compose - Running Multiple Services

  • Dockerfile - Building Our Own Docker Image

  • Private Docker Repository - Pushing Our Built Docker Image into a Private Registry on AWS

  • Deploying a Containerized App

  • Docker Volumes - Persist Data in Docker

  • Volumes Demo - Configure Persistence for Our Demo Project

  • Docker Best Practices

  • Docker & Nexus

    • Create Docker Images Repository on Nexus and Push/Pull Docker Image from/to Nexus Repository Manager

    • Deploy Nexus as Docker Container

Lesson 17: Build Automation and Jenkins

  • What is Build Automation? What is Jenkins?

  • Install Jenkins on Cloud Server (Docker vs Server Install)

  • Jenkins Plugins

  • Installing Build Tools in Jenkins

  • Jenkins Basics Demo

    • Create Freestyle Job

    • Configure Git Repository

    • Run Tests and Build Java Application

  • Docker in Jenkins

    • Make Docker Commands Available in Jenkins

    • Build Docker Image

    • Push to DockerHub Repo

    • Push to Nexus Repo

  • Jenkins Pipeline (Use Cases)

  • Create a Simple Pipeline Job

  • Full Jenkinsfile Syntax Demo

  • Create a Full Pipeline Job

    • Build Java App

    • Build Docker Image

    • Push to Private DockerHub

  • Create a Multi-Branch Pipeline Job

  • Credentials in Jenkins

  • Jenkins Shared Library

  • WebHooks - Trigger Jenkins Jobs Automatically

  • Versioning Application in Continuous Deployment

    • Concepts of Versioning in Software Development

    • Increment Application Version from Jenkins Pipeline

    • Set New Docker Image Version from Jenkins Pipeline

    • Commit Version Bump from Jenkins Pipeline

Lesson 18: Introduction to Amazon Web Services

  • Create an AWS Account

  • Identity & Access Management (IAM) - User, Groups, and Permissions

  • Regions and Availability Zones

  • Virtual Private Cloud (VPC) - Manage Private Network on AWS

    • Subnets

    • Security Groups

    • Internet Gateway

    • Route Table

  • CIDR Blocks Explained

  • Introduction to Elastic Compute Cloud (EC2)

    • Create an EC2 Instance

    • Run Web Application on EC2 Using Docker

  • AWS Command Line Tool

    • Install and Configure AWS CLI

    • Create AWS Components with AWS CLI

  • Automate Deploying from Jenkins Pipeline to EC2 Instance

    • Using docker run

    • Using docker-compose

  • Real-Life Example of Dynamically Setting New Image Version in Docker-Compose

  • SSH Agent Plugin and SSH Credential Type in Jenkins

Lesson 19: Introduction to Kubernetes

  • Understand the Main Kubernetes Components

    • Node, Pod, Service, Ingress, ConfigMap, Secret, Volume, Deployment, StatefulSet
  • Kubernetes Architecture

  • Minikube and kubectl - Local Setup

  • Main Kubectl Commands - K8s CLI

    • Create and Debug Pod in a Minicluster
  • Kubernetes YAML Configuration File

  • Demo Project: MongoDB and MongoExpress

  • Organizing Your Components with K8s Namespaces

  • Kubernetes Service Types

  • Making Your App Accessible from Outside with Kubernetes Ingress

  • Persisting Data in Kubernetes with Volumes

    • Persistent Volume, Persistent Volume Claim, Storage Class
  • ConfigMap and Secret Kubernetes Volume Types

  • Deploying Stateful Apps with StatefulSet

  • Deploying Kubernetes Cluster on a Managed Kubernetes Service (K8s on Cloud)

  • Helm - Package Manager of Kubernetes

  • Helm Demo: Install a Stateful Application on Kubernetes Using Helm

  • Demo: Deploy App from Private Docker Registry

  • Extending the Kubernetes API with Operator

  • Secure Your Cluster - Authorization with Role-Based Access Control (RBAC)

Microservices in Kubernetes

  • Introduction to Microservices

  • Demo Project: Deploy Microservices Application

  • Demo Project: Create Common Helm Chart for Microservices

  • Demo Project: Deploy Microservices with Helmfile

  • Production & Security Best Practices

AWS & Kubernetes

  • AWS Container Services: Overview (ECR, ECS, EKS, Fargate)

  • Create an EKS Cluster with AWS Management Console (UI)

    • Create Cluster VPC, Cluster Roles

    • Use CloudFormation Stack

    • EC2 Worker Nodes

    • Configure Kube Context to Connect to the Cluster

  • Configure Autoscaling in EKS Cluster

  • Create Fargate Profile for EKS Cluster

  • Create an EKS Cluster with eksctl (the Easy Way)

AWS & Kubernetes & Jenkins & Docker

  • CI/CD

  • Configure kubectl Inside Jenkins

  • Configure Kube Context in Jenkins

  • Install aws-iam-authenticator in Jenkins

  • Complete Jenkins Pipeline - Deploy to EKS Using kubectl

  • Complete Jenkins Pipeline - Build and Push Docker Image to ECR and Deploy to EKS

  • Complete Jenkins Pipeline - Deploy to LKE Using Kubernetes CLI Plugin and Kubeconfig File

Lesson 20: Introduction to Terraform

  • What is Terraform? How it Works

  • Terraform Architecture

  • Install Terraform & Setup Terraform Project

  • Providers in Terraform

  • Resources & Data Sources

  • Change & Destroy Terraform Resources

  • Terraform Commands

  • Terraform State

  • Output Values

  • Variables in Terraform

  • Environment Variables in Terraform

  • Create Git Repository for Local Terraform Project

Terraform & AWS

  • Automate Provisioning EC2 Server with Terraform

  • Provisioners in Terraform

  • Modularize the Demo Project

Terraform & AWS & Kubernetes

  • Automate Provisioning EKS Cluster with Terraform

    • Use Existing Modules from Terraform Registry

    • Create VPC

    • Provision EKS Cluster

Terraform & AWS & Jenkins - Complete CI/CD

  • Complete CI/CD with Terraform

    • Configure Terraform in Jenkins

    • Automate Provisioning EC2 Instance from Jenkins Pipeline and Deploy the Application with Docker-Compose

  • Remote State in Terraform

  • Terraform Best Practices

Lesson 21: Core Concepts and Syntax of Ansible

  • Introduction to Ansible

  • Install & Configure Ansible

  • Setup Managed Server to Configure with Ansible

  • Ansible Inventory

  • Ansible Ad-Hoc Commands

  • Configure AWS EC2 Server with Ansible

  • Managing Host Key Checking and SSH Keys

  • Ansible Tasks, Play & Playbook

  • Ansible Modules

  • Ansible Collections & Ansible Galaxy

  • Ansible Variables - Make Your Playbook Customizable

  • Troubleshooting in Ansible

  • Conditionals

  • Privilege Escalation

  • Ansible Configuration - Default Inventory File

Learn Most Common Ansible Modules with Hands-On Demos

  • Project: Deploy Node.js Application

  • Project: Deploy Nexus

  • Configure Servers with Different Linux Distributions on AWS and Digital Ocean Platforms

    • Install Tools on a Server, Configure Applications, Work with a File System, Move Static Files Between Machines, etc.

    • Map and Translate Shell Scripts and Commands into Ansible Playbooks to Automate Various Common Tasks

More Advanced Topics & Integrations with Other Technologies

  • Dynamic Inventory for EC2 Servers

  • Ansible Roles - Make Your Ansible Content More Reusable and Modular for Better Maintenance

  • Project: Ansible & Terraform

  • Project: Run Docker Applications

  • Project: Deploying Applications in Kubernetes

  • Project: Run Ansible from Jenkins Pipeline

More from this blog

P

ProDevOpsGuy Tech Community

73 posts

Home of DevOps Best Blogs/Series