1.Introduction to DevOps
- What is Software Development
- Software Development Life Cycle
- Traditional Models for SDLC
- Why DevOps?
- What is DevOps?
- DevOps Lifecycle
- DevOps Tools
2.Linux Environment
- Vagrant using VirtualBox
- Bash Shell Scripting
- Scripting Languages
- Powershell
- Python
- Groovy
3.Version Control
- What is Version Control
- Types of Version Control System
- Introduction to Git
- Git Lifecycle
- Common Git Commands
- Working with Branches in Git
- Merging Branches
- Resolving Merge Conflicts
- Git Workflow
4.Build Tools
- Ant
- Maven
5.Continuous Deployment: Containerization with Docker
- Introduction to Docker
- Understanding Docker Lifecycle
- Components of Docker Ecosystem
- Common Docker Operations
- Creating a DockerHub Account
- Committing changes in a Container
- Pushing a Container Image to DockerHub
- Creating Custom Docker Images using Dockerfile
- What are Docker Volumes
- Deploying a Multi-Tier Application using Docker Network
- Using Docker Compose to deploy containers
- What is Container Orchestration
- Container Orchestration Tools
- Introduction to Docker Swarm
- Deploying a 2-Node Cluster using Docker Swarm
6.Cloud Computing
- AWS and its services.
- Networking
- VPC, Subnets and NAT Gateway
- EC2 and RDS
- ECS and ECR
- Azure Cloud Computing
- Packer
- Terraform
7.Configuration Management using Puppet
- Need for Configuration Management
- Configuration Management Tools
- What is Puppet
- Puppet Architecture
- Setting up Master-Slave using Puppet
- Puppet Manifests
- Puppet Modules
- Applying configuration using Puppet
- Puppet File Server
8.Configuration Management using Ansible
- What is Ansible?
- Ansible vs Puppet
- Ansible Architecture
- Setting up Master-Slave using Ansible
- Ansible Playbook
- Ansible Roles
- Applying configuration using Ansible
- Installing Ansible on AWS
- Creating a Playbook using YAML
- Creating an Ansible Role
- Using Roles in Playbook
9.Continuous Integration using Jenkins
- Introduction to Continuous Integration
- Jenkins Master-Slave Architecture
- Understanding CI/CD Pipelines
- Creating an end to end automated CI/CD Pipeline
- Creating a Jenkins Master-Slave on AWS
- Installing Plug-ins in Jenkins
- Creating Jenkins Builds
- Creating Scheduled Builds
- Triggering Jobs using Git WebHooks
- Using the Pipeline Plugin In Jenkins
10.Continuous Orchestration using Kubernetes
- Introduction to Kubernetes
- Docker Swarm vs Kubernetes
- Kubernetes Architecture
- Deploying Kubernetes using Kubeadms
- Alternate ways of deploying Kubernetes
- YAML Files
- Creating a Deployment in Kubernetes using YAML
- Services in Kubernetes
- Ingress in Kubernetes
- Case Study – Kubernetes Architecture
11.Continuous Monitoring using Nagios
- What is Continuous Monitoring
- Introduction to Nagios
- Nagios Architecture
- Monitoring Services in Nagios
- What are NRPE Plugins
- Monitoring System Info using NRPE plugins