
DEVOPS BOOT CAMP
Learn DevOps from the Experts, Classroom Training, experiential learning through hands-on labs, projects, and case studies. Get ready for the real world.
DevOps Boot Camp
Setup CI/CD environment with GIT SVN Jenkins Maven Ansible Docker Kubernetes Terraform – 8 Days
8 Day Program
Duration - 8 Days, Delivery mode – Classroom, Instructor Led, Bootcamp
This course will enable you to design Scalable, Elastic, Secure and Highly available applications on AWS. In this course, we cover architecture patterns for common solutions running on AWS, including Web Applications, Batch Processing and Hosting Internal IT Applications.
Overview: DevOps describes a culture and set of processes that enables development and operations teams to rapidly complete software development projects. It helps organizations to develop and improve products quickly and efficiently than what they can with legacy software development models. Learn and Master the DevOps by setting up CI/CD pipelines using SVN Git, Jenkins, Maven, Ansible, Docker, Terraform and Kubernetes on AWS in real time.
Prerequisite
Knowledge of Linux, Cloud technologies
Understanding of networking and operating systems
Basic understanding of programming languages
Who should attend: Targeted for Cloud Engineers, Solution Architects, Centre of Excellence Team, Microsoft Windows Server Administrators, Unix/Linux Administrators, Storage Administrators & Network Administrators.
What you will learn
Overview and detailed understanding of DevOps
Complete understanding of DevOps Principles
Infrastructure Setup
Software Version Control using GIT Hub
Setup continuous Deployment with Docker
Configuration Management using Ansible
Continuous Testing using Selenium
Install and Configure Maven
Continuous Integration using Jenkins
Continuous Orchestration using Kubernetes
Install and configure Terraform
Setup Continuous Monitoring
What's more?
Two hands-on Projects
Four Case studies
Detailed Course Content
Overview and detailed understanding of DevOps
What is DevOps and why DevOps is needed?
How is DevOps different from traditional IT
The DevOps culture and Lifecycle and detailed DevOps Work Flow
How is DevOps different from Agile? DevOps Vs Agile
Complete understanding of DevOps Principles
The DevOps Principles
Roles, Responsibilities, and Skills of a DevOps Engineer/Architect
Dev ops in Software Development Life Cycle (SDLC)
DevOps Automation Tools and the future of DevOps
Infrastructure Setup
EC2 Walkthrough
Installation of DevOps Tools on cloud
Git, SVN, Docker
Maven
Jenkins/Jira
Ansible, Kubernetes and Terraform
Software Version Control using GIT Hub
What is Version Control
Types of Version Control System
Introduction to SVN
Introduction to Git and Git Lifecycle
Common Git Commands
Working with Branches in Git
Merging Branches
Resolving Merge Conflicts and Git Workflow
Hands on Labs
Git Life cycle Commands
Pushing Code to GitHub
Stashing Code in git
Creating, Deleting Git Branches
Reverting a Push to GitHub
Merging branches using git merge
Merging branches using git rebase
Resolving merge conflicts using git merge tool
Setup
Containerization with Docker
Introduction to Docker
Understanding Docker Lifecycle
Components of Docker Ecosystem
Common Docker Operations
Creating a Docker Hub Account
Committing changes in a Container
Pushing a Container Image to DockerHub
Creating Custom Docker Images using Docker file
Hands on Labs
Common Docker Operations
Creating a DockerHub Account
Committing Changes to a Container
Pushing container to DockerHub
Creating Local Image Repository
Building an Image using Docker file
Containerization with Docker
Ecosystem and Networking
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
Hands on Labs
Creating Docker Volumes
Using Docker Compose to deploy multiple containers
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
Hands on Labs
Installing Ansible on AWS
Creating a Playbook using YAML
Creating an Ansible Role
Using Roles in Playbook
Ansible Best Practices Approach
Installing Ansible on AWS
Discuss about the ansible best practices approach for the delivery excellence
How to Use source control
Ansible file and directory structures
How to use Dynamic Inventory sources
Manage variable inventory management
How to tune ansible for your environment
Continuous Testing using Selenium
What is Continuous Testing?
Introduction to Selenium
Install and Configure Maven
What is Maven?
Using Maven with Selenium
Creating Test Cases with Selenium
Running Test Cases on Chromium Web Driver
What is Headless Mode?
Hands on Labs
Using Maven to import dependencies in Eclipse
Create Sample Test Case for a website using Selenium
Implementing a headless test in selenium using Chrome WebDriver
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
Hands on Labs
Creating a Jenkins Master Slave on AWS
Installing Plug-ins in Jenkins
Creating Jenkins Builds
Creating Scheduled Builds
Triggering Jobs using Git Web Hooks and using the Pipeline Plugin
Continuous Orchestration using Kubernetes
Introduction to Kubernetes
Docker Swarm vs Kubernetes
Understand Kubernetes Architecture
What are Kubernetes objects?
What are YAML files?
Name, Namespaces, Labels & selectors, Annotations
Deploying Kubernetes using Kubeadms
Alternate ways of deploying Kubernetes
Creating a Deployment in Kubernetes using YAML
Services in Kubernetes
Ingress, Dashboard and Kubernetes best security practices
What is Ingress and
What is a Kubernetes Dashboard?
Setting up Kubernetes Dashboard
Security practices for Kubernetes
Hands on Labs
Setting up Kubernetes using kubeadm
Creating a Deployment
Demonstrating the use of Ingress, services and deployments together
Creating ingress with name hosting, setting up and working with Kubernetes Dashboards
Introduction to Pods/Volumes and Services in Kubernetes
What are Pods and Replication Controllers?
What is a Deployment?
Introduction to Kube Services and its types
Stateful and Demon sets and Jobs
What are volumes?
Types of volumes
Persistent volumes
Hands on Labs
Creating Pods, Replication Controller, Deployments, Services and Jobs
Creating volumes, Creating Persistent Volumes, Creating and working with secrets, Taints and Tolerations
Terraform
Introduction to terraform
Infrastructure Automation
Install Terraform
Providers
Resources
Basic Syntax
Hands on Labs
Making your First script main.tf
Getting started with Terraform
Terraform Plan, show, Apply, Destroy
Exploring Terraform Registry
Interpolation
Tainting and Updating Resources
Terraform Console and Output
Terraform Variables
Breaking Out Our Variables and Outputs
Hands on Labs – Modules
Breaking down main.tf into variables.tf, output.tf
Introduction to Terraform Modules
Module repositories
First Basic Module
The Module codes
Main Terraform Code
Using git repositories to save modules
Terraform with AWS: lab Part 1
Setting up the system for AWS
AWS Storage: The S3 Bucket and Random ID
AWS Storage: The Root Module
AWS Compute: AMI Data, Key Pair, and the File Function
AWS Compute: The EC2 Instance
AWS Compute: User Data and Template Files
AWS Compute: The Root Module
Terraform Integration
Adding S3 backend
Integration with Git
Packer introduction
Terraform with Packer
Terraform with Jenkins
Terraform Formatting and Remote State
Terraform RandomID and S3 Buckets
Terraform Best Practices
Best practices in writing terraform scripts
Terraform Workflow
Terraform projects
New features of Terraform
Terraform with AWS: Lab part 2
AWS Networking: VPC, IGW, and Route Tables
AWS Networking: Subnets, Security, and the Count Attribute
AWS Networking: The Root Module
Terraform Troubleshooting and Testing
Terraform Plan revisited
Debugging the script
Terraform Testing
Lab: Writing test scripts for Terraform.
Lab: Testing with Docker
Continuous Monitoring
What is Continuous Monitoring
Introduction to Federation
Kubernetes Monitoring
Setting up Prometheus
Hands on Labs
Controlling cluster from the outside
Setting up and working with Prometheus
Projects
What projects you will be working on during this DevOps certification training?
In this DevOps project you will be introduced to the DevOps pipeline demo in various industry domains like media, finance, medical projects and more. You will get hands-on experience in Docker containerization by deploying Jenkins, working with integration tests in DevOps, Project Reports and finance app configuration.
Project 1: Creating CI/CD Pipeline to build and test a Website
Problem Statement: How to create a CI/CD Pipeline for building and testing a website
Topics: Git, Docker, Jenkins, Selenium, Ansible
Highlights
Setting Ansible and Jenkins in Master Slave Architecture
Integrating Git and Jenkins for automated pipelines
Using Ansible for Configuration Management
Containerizing a Websit
Project 2: Deploying an app on Kubernetes using CI/CD Pipelines
Topics : Git, Docker, Jenkins, Selenium, Kubernetes
Highlights:
Connecting Jenkins, Git and Kubernetes
Containerizing code using Docker file
Deploying Docker file to container, and then to Docker hub
Deploying from Docker hub to Kubernetes using Jenkins
Case Study 1: Implementing Git Workflow
Problem Statement: To analyze and use a specific Git Workflow scenario
Topics: Git branches, Git workflows, merging, rebasing
Highlights:
Using Industry standard architectures for implementing Git
Merging branches
Simulating a networking architecture in git
Case Study 2: Resolving Merge Conflicts
Problem Statement: Understanding how to resolve merge conflicts in different scenarios
Topics: Git branches, merging, rebasing
Highlights:
Understanding the difference between merging and rebasing
Resolving Merge conflicts based on different scenarios
Case Study 3: Creating custom containers in Docker
Problem Statement: Creating a custom container from base Ubuntu container
Topics: Dockerfile, Dockerhub
Highlights:
Creating a Dockerfile
Pushing container to Dockerhub
Creating custom Docker images
Case Study 4: Using Bind Mounts, Docker Compose
Problem Statement: Deploy an application using Docker compose, Bind Mounts
Topics: Docker storage, Docker Compose, Docker Networks
Highlights:
Creating and using Bind Mounts in Docker
Deploying Multiple Docker applications using Docker compose