Course Overview
This DevOps training course focuses on teaching individuals the principles and practices of DevOps. This training typically covers topics such as:
- Understanding the basics of DevOps and its key concepts such as continuous integration, continuous delivery, and infrastructure as code.
- Implementing continuous integration and continuous delivery (CI/CD) pipelines using popular DevOps tools such as Jenkins, Git, and Ansible.
- Automating the deployment and scaling of containerized applications using tools such as Docker and Kubernetes.
- Configuring and managing infrastructure using tools such as Terraform and Ansible.
- Implementing security best practices.
- Monitoring and troubleshooting applications and systems using tools such as Nagios and Prometheus.
- Utilizing DevOps practices to optimize the performance and scalability of applications and systems.
This training usually provides hands-on experience and real-world examples of implementing DevOps practices, including best practices and patterns that can be used to optimize the deployment, scaling and monitoring of applications.
By the end of this training, participants should be able to use DevOps tools to automate the software development and deployment process, improve the performance and scalability of applications, and implement security best practices.
Course Content
17 Modules : 226 Lessons : 45 hr 26 min
Module 2 : Operating Systems & Linux
-
General Introduction
-
About Operating Systems
-
Virtualization & Virtual Machines
-
Linux Virtual Machine on Oracle Virtual Box
-
Linux File System
-
Command Line Interface (CLI)
-
Core Linux Commands (CLI)
-
Linux Package Manager
-
The Vim Editor
-
Linux Accounts, Users, Groups & Permissions in Linux
-
File Ownership & Permissions in Linux
-
Linux Commands for Pipes & Redirects
-
Shell Scripting
-
Environment Variables
-
Networking
-
SSH - About Secure Shell
Module 3 : Version Control with Git
-
Introduction to Version Control
-
Introduction to Git for Version Control
-
Introduction to Git using it for Version Control
-
Setting up Remote and Local Git Repositories
-
Working with Git
-
Working on a Git project locally
-
Branch Concept
-
Merge Requests
-
Branch deletion
-
Doing Rebase in Git
-
Resolv Conflicts while doing Merge
-
Using Gitignore
-
Using Git stash
-
Checking & using history
-
How to Undo commits
-
Merging branches
-
Use of Git for Devops
Module 5 : Build Tools and Package Manager Tools
-
Introduction to Build Tools
-
Installing Build Tools
-
Building an Artifact
-
Build Tools for Development teams
-
Running an Application
-
Building JS Applications
-
Basic Concepts and Differences in Build Tools
-
Publishing an Artifact
-
Using Build Tools & Docker
-
Various Build Tools for DevOps
Module 7 : Artifact Repository Manager with Nexus
-
Introduction to Artifact Repository Manager
-
How to Install and Run Nexus on a cloud server
-
Introduction to Nexus
-
Discussion on Repository Types
-
Publishing Artifacts to Repository
-
About Nexus REST API
-
What is Blob Store?
-
Comparison of Component vs Asset
-
Implementing Cleanup Policies and Scheduled Tasks
Module 8 : Containers with Docker
-
Introduction to Container
-
What is Container vs Image
-
Difference between Docker vs. Virtual Machine
-
About Docker Architecture and components
-
Important Docker Commands
-
Essential Debug Commands
-
Practical Docker Project
-
How to Develop using Docker
-
What is Docker Compose? - Running multiple Docker containers
-
What is Dockerfile? - How to Build your own Docker Image
-
About Private Docker Repository
-
How to Deploy docker application on a server
-
About Docker Volumes & Persisting Data
-
Docker Volumes Practical
-
How to Create Docker Hosted Repository on Nexus
-
How to Deploy Nexus as Docker Container
-
Some Docker Best Practices
Module 9 : Build Automation & CI/CD with Jenkins
-
Introduction to Build Automation
-
Installing Jenkins
-
The Jenkins UI
-
How to Install Build Tools in Jenkins
-
Jenkins Basics Handson - Doing a Freestyle Job
-
Using Docker in Jenkins
-
Implementing a Freestyle to Pipeline Job
-
Abouy Pipeline Job
-
Syntax used in Jenkins file
-
Creating a complete Pipeline
-
Introduction to Multibranch Pipeline
-
Overview of Jenkins Jobs
-
Using Jenkins Credentials
-
Using Shared Library in Jenkins
-
Using Webhooks to Trigger Pipeline Jobs automatically
-
How to Dynamically Increment Application version in a Jenkins Pipeline
Module 10 : AWS Services
-
Introduction to AWS (Amazon Web Services)
-
How to Create an AWS account
-
Abot IAM | How to Manage Users, Roles and Permissions
-
About Regions & Availability Zones
-
About VPC | How to Manage Private Network on AWS
-
What are CIDR Blocks?
-
What is EC2 Virtual Cloud Server?
-
Deploying to EC2 server from Jenkins Pipeline - CI/CD
-
What is AWS CLI?
-
About AWS & Terraform
-
About Container Services on AWS
Module 11 : Container Orchestration with Kubernetes
-
Introduction to Kubernetes
-
What are the Main Kubernetes Components?
-
Discussion on Kubernetes Architecture
-
What are Minikube and kubectl? | using Local Kubernetes Cluster
-
Essential kubectl commands
-
What is YAML Configuration File?
-
Lab Session |How to Deploy an Application in Kubernetes Cluster
-
What are Namespaces, and how to Organize Components
-
Using Services |How to Connect to Applications inside cluster
-
About Ingress | How to Connect to Applications outside cluster
-
About Volumes | Understanding Persisting Application Data
-
What are ConfigMap & Secret Volume Types?
-
About StatefulSet | How to Deploy Stateful Applications
-
About Managed Kubernetes Services
-
Using Helm | Package Manager for Kubernetes
-
Practical Session on using Helm for Managed K8s cluster
-
How to Deploy Images in Kubernetes from private Docker repository
-
How to use Kubernetes Operators for Managing Complex Applications
-
Practical Session on using Helm and Operator
-
How to Secure your cluster - Authorizing with RBAC
-
Using Microservices in Kubernetes
-
Practical Session | How to Deploy a Microservices Application
-
Imoplementing Best Practices for Production & Security
-
Practical Session on Creating Helm Chart for Microservices
-
Practical Session on Deploying Microservices with Helmfile
Module 12 : Kubernetes on AWS - EKS
-
Using Container Services on AWS
-
How to Create EKS cluster with AWS Management Console
-
How to Configure Autoscaling in EKS cluster
-
How to Create Fargate Profile for EKS Cluster
-
How to Create EKS cluster with eksctl command line tool
-
How to Deploy to EKS Cluster from Jenkins Pipeline
-
Practical Session on Deploying to LKE Cluster from Jenkins Pipeline
-
Best Practices for using Jenkins Credentials
-
Implementing a Complete CI/CD Pipeline with EKS and DockerHub
-
Implementing a Complete CI/CD Pipeline with EKS and ECR
Module 13 : Infrastructure as Code with Terraform
-
Introduction to Terraforms
-
How to Install Terraform & Setup a Terraform Project
-
Terraform Providers
-
About Resources & Data Sources
-
How to Change & Destroy Terraform Resources?
-
Essential Terraform commands
-
What is Terraform State?
-
What are Output Values?
-
About Variables in Terraform
-
About Environment Variables in Terraform
-
How to Create Git Repository for local Terraform Project?
-
How to Automate Provisioning EC2 with Terraform?
-
Using Provisioners in Terraform
-
Terraform Modules
-
How to Automate Provisioning EKS cluster with Terraform
-
How to Complete CI/CD with Terraform?
-
What is Remote State in Terraform?
-
Using Best Practices in Terraform
Module 14 : Programming Basics with Python
-
Introduction to Python
-
How to Install Python and create a Local Setup?
-
How to Install Python and create a Local Setup?
-
Difference using Python IDE vs Simple File Editor
-
About Strings and Number Data Types
-
What are Variables?
-
What are Functions?
-
How to Accept User Input?
-
Using Conditionals if / else and Boolean Data Type
-
How to do Error Handling with Try-Except?
-
Using While Loops
-
Using Lists and For Loops
-
Using Comments
-
What are Sets?
-
What are Built-In Functions?
-
What is Dictionary Data Type?
-
About Modules
-
Creating a Countdown App
-
Using Packages, PyPI and pip
-
Practical Session | Spreadsheet Automation using Python
-
About OOP: Classes and Objects
-
Practical Session | Sending API Request to GitLab
Module 15 : Automation with Python
-
Using Boto Library AWS SDK for Python
-
How to Install Boto3 and connect to AWS
-
More about Boto
-
Comparison | Terraform vs Python | knowing when to use which tool
-
How to do Health Check for EC2
-
How to Schedule a Task in Python?
-
How to Configure Server: Adding Environment Tags to EC2 Instances
-
About EKS cluster information
-
How to Backup EC2 Volumes: Automate Snapshot creation
-
How to Automate cleanup of old Snapshots
-
How to Automate restoring EC2 Volume from the Backup
-
How to Handle Errors
-
How to Monitor a Website | Scheduling Task to Monitor Application Health
-
How to Monitor a Website | Automating Email Notification
-
How to Monitor a Website | Restarting Application and Rebooting Server
Module 16 : Configuration Management with Ansible
-
What is Ansible?
-
How to Install Ansible?
-
How to Setup Managed Server to Configure with Ansible?
-
About Ansible Inventory and essential Ansible ad-hoc commands
-
How to Configure AWS EC2 server with Ansible?
-
How to Manage Host Key Checking and SSH keys?
-
What are Playbooks?
-
About Ansible Modules
-
What are Collections in Ansible?
-
Practical Session | How to Deploy a Nodejs application
-
Using Ansible Variables to make your Playbook customizable
-
Practical Session | How to Deploy Nexus?
-
Configuring Ansible - The Default Inventory File
-
Practical Session | Running Docker applications
-
Using Terraform & Ansible
-
Using Dynamic Inventory for EC2 Servers
-
How to Deploy Application in K8s
-
How to Run Ansible from Jenkins Pipeline?
-
About Ansible Roles | How to make Ansible content more reusable and modular
Module 17 : Monitoring with Prometheus
-
Introduction to Prometheus for Monitoring
-
How to Install Prometheus Stack in Kubernetes
-
How to do Data Visualization with Prometheus UI
-
What is Grafana?
-
Using Alert Rules in Prometheus
-
How to Create customized Alert Rules
-
Using Alertmanager
-
How to Configure Alertmanager with Email Receiver
-
How to Trigger Alerts for Email Receiver
-
How to Monitor Third-Party Applications
-
How to Deploy Redis Exporter
-
Using Alert Rules & Grafana Dashboard for Redis
-
Collecting & Exposing Metrics with Prometheus Client Library Monitor
About the instructor
Kallol C
DevOps Trainer
1 Course
4 Lessons
172 Sessions Taught
4 students enrolled
Senior DevOps Engineer, with 7+ Years Experience. Guarantee of High Quality Work.
Have been teaching DevOps for more than 3 years now, have above 96% student satisfaction rate. Have worked on numerous projects setting up CICD from scratch.
Skills : Github, Github Actions, CICD, Kubernetes, Docker,Jenkins, Ansible, AWS.