Devops

Program Eligibility

Eligibility Criteria

For admission to this Masterclass Program in DevOps: A bachelor’s degree is in any discipline is recommended but not a requirement. Knowledge of programming is recommended but not required. Prior work experience is recommended but not       required.

Who Should Enroll in this Program?

This program caters to those who are hoping to enter the world of DevOps or want to update their skills, as it is designed and structured to accommodate various professional backgrounds. Although there are no prerequisites for taking this training program, individuals in the following roles and disciplines are ideal for this course: Fresh graduates who intend to take the plunge into the DevOps job market Professionals with less than two years of experience who are working in either technical or non-technical job roles and wish to build successful careers in the DevOps world People working in the following roles will benefit the most from the Masterclass Program in DevOps: IT team leaders Software developers Systems administrators and IT managers  Cloud engineers Developers  Engineers

DevOps Training

Prerequisites

Fundamentals of Linux and Java

Module Overview:

RondusTech’s DevOps Practitioner course is designed to prepare you to succeed in forthcoming software development projects. This training has been designed to follow best practices for software development and to make the most efficient use of the latest software tools in the field. The course follows the entire software development lifecycle from requirements analysis through coding, production, and support.

Module Curriculum:

Lesson 1. Introduction to DevOps

Software Development Life Cycles (SDLC) 

Waterfall Model

Agile Methodology Scrum Model 

What is DevOps?

Why DevOps? Automation

DevOps Importance

DevOps Model

DevOps Life cycle

Market Trend and Career Scope for DevOps

DevOps Tools

Lesson 2. Intro to AWS/Linux

Installing Pre-requisite software’s (SSH Tools and FTP Tools) in Desktop/Laptop.

Create an account in AWS.

Create EC2 Instance in AWS.

Understand Linux Command Line. Linux File/Directory structure.

Linux Commands

Shell Scripting 

What is Shell?

Types of Shell

What is Shell Scripting?

First Shell Script program

File Naming Conventions

Comments Variables

Command line Arguments

Escape Characters

String

Arithmetic Operations

User Interaction using read command

Input and Output Redirection

Control commands – if

Control commands – for

Control commands – while loop

Control commands – Switch case

Functions Pipe

 

Lesson 3. Version Control System

What is Git?

What is the VCS – Version Control System?

What is SCM – Source Code Managment?

What is Branch?

What is Tag?

Git Administration.

Git commands Working with git – a Developer perspective

SSH Key generation

PAT creation Cloning Repositories

Merging Branches

Branching strategy

Best practices for Releases/Code commits in any VCS

Lesson 4. Continuous Integration and Build Automation

1.SonarQube 

  • Introduction
  • Pre-Requisites
  • Architecture
  • Installation
  • Change the Port Number
  • Execution
  • Administration
  • Users Creation (Normal User and Administrator)
  • Project Creation
  • Project deletion
  • Token Generation
  • Create Quality Profiles
  • Create Quality Gates

     2.Maven

  • Introduction
  • Features & Benefits of Maven
  • Installation (Maven Environment Setup)
  • Directory Structure
  • Content of pom.xml
  • Maven Repositories
  • Maven Life Cycles
  • Executing some Examples
  • Maven Multi Modules
  • Parent pom
  • Child pom
  • Maven Profiles

     3.Nexus

  • Introduction
  • Installation
  • Port Number Change
  • Context root change
  • Nexus Directory structure
  • Create the Repositories
  • Integrate the Maven with Nexus

Lesson 5. App-Server & Webservers

1.Tomcat

  • Introduction
  • Difference between App server and Web server
  • Understating of Web Servers, App Servers and DataBase Servers
  • Installation (In Windows – Extraction, In Linux Installation)
  • Directory structure Start the Tomcat server
  • Users creation Stop the server
  • Roles
  • Port number change
  • Application Deployment
  • Through Admin Console
  • Copy artifact into webapps folder
  • Tomcat Tuning

2.Apache HTTP Server/NGINX

  • Introduction
  • Installation
  • Directory Structure
  • Start the HTTP server
  • Deploy the web static application.

Lesson 6. : CI/CD Pipeline

Jenkins

  • Introduction
  • Continuous Integration (CI)
  • Continuous Delivery (CD)
  • Continuous Deployment (CD)
  • Installation
  • In Linux Server
  • Create the Maven Project using Freestyle Project type  Integrate Maven software if not done.
  • Integrate Nexus with Jenkins
  • Integrate SonarQube with Jenkins
  • Deploy the App into Tomcat
  • Through “Deploy to container” plugin
  • Through Script – SSH Agent Plugin
  • Configure Email Functionality
  • Poll SCM
  • Build Periodically
  • Git Web Hooks
  • Discard Old Build
  • Disable this project 
  • Delete workspace before build starts
  • Add timestamps to the Console Output 
  • JACOCO plugin
  • Jenkins Directory structure
  • Create the Maven Project using Maven Project type
  • Plugin Management
  • Safe Restart
  • Next Build Number

Lesson 7. Containerization

Docker

  • Docker Introduction
  • Containerization Vs Virtualization
  • Docker Vs Virtual Machine
  • Docker Installation
  • Dockerfile
  • Dcoker Image
  • Docker Container
  • Docker Adhoc Commands
  • Docker Networks
  • Docker Volumes
  • Docker Keywords
  • Dockerfile Creation
  • Docker Images creation
  • Docker Images save to Dockerhub
  • Docker Private Repo
  • Docker Compose
  • Docker Swarm

Lesson 8. Orchestration

Kubernetes

  1. Kubernetes Introduction
    1. Architecture
    2. Kubernetes Cluster (Self-Managed) Setup Using Kubeadm.
    3. Kubernetes Namespace
    4. Kubernetes Objects
    5. POD
    6. Replication Controller
      1. Replica Set
      2. Daemon Set
      3. Deployment
      4. Rolling Update
      5. Recreate
      6. Blue Green
      7. Stateful Set
    7. Service
      1. ClusterIP
      2. NodePort ❖
      3. Load Balance

c) Volumes

  1. Persistent Volume
  2. Persistent Volume Claim
  3. Dynamic Volumes
  1. Config Maps & Secrets

e) HPA & Metrics 

  1. EKS Kubernetes Cluster Setup Using Terraform
  2. Network LB
  3. Application LB
  4. HAProxy Ingress Controller & Resource
  5. Liveness & Readiness probes
  6. Kubernetes RBAC
  7. Kubernetes & Jenkins Integration
  8. Kubernetes Dashboard Setup
  9. Helm
  10. Monitor Kubernetes Using Prometheus and Grafana.

Lesson 9. Cloud Infrastructure - AWS

AWS

  • Cloud & AWS – Cloud Infrastructure Engineer
  • Managed and Self-Managed Infrastructures
  • IaaS
  • PaaS
  • SaaS
  • Elastic Compute Cloud (EC2)
  • Introduction to Amazon EC2
  • Launch Our First EC2 Instance – Part 1
  • Launch Our First EC2 Instance – Part 2
  • How to use Putty (Windows Users Only)
  • Security Groups
  • EC2 Instance User Data.
  • Summary of EC2 Section
  • Amazon Machine Instance (AMI)
  • Elastic IP (EIP)
  • EBS
  • Volumes
  • Snapshots
  • EFS
  • Simple Storage Service (S3) 
  • S3 Essentials
  • Creating S3 Buckets Using the Console and CLI
  • S3 Storage Options and Types
  • Create an S3 Website
  • S3 Version Control
  • Cross Region Replication
  • S3 Lifecycle Management & Glacier
  • S3 – Security, Snowball & S3 Summary
  • Elastic Block Store (ELB)
  • What is ELB and it’s uses
  • ELB Policies and it’s benefits
  • How to launch ELB with N nodes and other concepts on ELB
  • Auto Scaling
  • Launch Configurations
  • Scaling Poicies
  • Demo with Dynamic Scaling
  • Integrate Autoscaling with ELB
  • Virtual Private Cloud (VPC)
  • VPC Overview
  • Building our own custom VPC
  • Build a custom VPC – Part2
  • Network Address Translation (NAT)
  • Access Control Llist (ACLs)
  • Custom VPC’s
  • VPC Clean up
  • VPC Summary
  • Identity Access Management (IAM)
  • Introduction of IAM
  • Users
  • Groups
  • Roles
  • Policies
  • Permissions
  • AWS CLI Setup

Lesson 10: Infrastructure as Code – Terraform

Terraform

  • What is Terraform
  • Importance of Terraform over other IaaC tools
  • Terraform installation on Windows and Linux
  • Infrastructure automation using Terraform

Lesson 11: Infrastructure as Code – Ansible

Ansible

  • Introduction
  • Architecture
  • ssh-key generation
  • Copy SSH Key
  • Ansible adhoc Commands
  • Ansible Playbooks
  • Execution of Ansible Playbooks
  • Ansible Modules
  • Ansible Variables, Group/Host Variables
  • Loops & Conditions
  • Roles  
  • Ansible Vault
  • Ansible Galaxy
  • Dynamic Inventory

Lesson 12: Grafana – Configuration

  • Install Grafana
  • Create Data Source
  • Install Promtail
  • Install Prometheus Service and Data Source
  • Install Prometheus Node Exporter/Dashboard
  • Setup Prometheus Dashboard
  • Install InfluxDB Data Source
  • Install Telegraf and Configure InfluxDB
  • Install SNMP Agent and Configure Telegraf SNMP Input
  • Zabbix Data Source
  • Elasticsearch Data Source
  • Elasticsearch Filebeat
  • Elasticsearch Filebeat
  • Create Email Alert
  • Intro to Grafana Cloud

Lesson 13: GitLab CI

  • Introduction
  • Basic CI/CD workflow with Gitlab CI
  • Gitlab CI Fundamentals
  • YAML basics
  • Using Gitlab CI to build and deploy Java application to AWS Elastic Beanstalk

Lesson 14: DevSecOps

  • Introduction
  • DevOps Pipeline
  • DevSecOps Pipeline
  • Git Hooks & Talisman Intro
  • Mutation Test
  • Sonarqube – SAST
  • Vulnerability Basics
  • Dependency Check Basic
  • Trivy Basic
  • Kubesec Basic
  • DAST Basic
  • OWASP-ZAP

Lesson 15: Projects

Projects

Jenkins integration with GitHub, Maven, SonarQube, Nexus and Tomcat for an e-commerce client

Jenkins integration with GitHub, Maven, SonarQube, Nexus and Docker for an e-commerce client

Jenkins integration with Maven, SonarQube, Ansible and Docker

Jenkins integration with Maven, SonarQube, Docker and Docker Swarm

Jenkins integration with Maven, SonarQube, Docker and Kubernetes

 

Projects:

Lesson-end Project: Create a New Branch and Merge the Branch in Git

Lesson-end Project: Building a Maven Project with Jenkins

  Lesson-end Project: Provision EC2 using Terraform

  Lesson-end Project: Containerizing Legacy Docker Application   Lesson-end Project: Deploy an App to the Kubernetes Cluster  Course-End Project 1: Automating Infrastructure using Terraform  Course-End Project 2: Deploy a Application to a

Kubernetes Cluster

 

Lesson 16: Demos

Assisted Practice: Execute Basic Linux Commands

 Assisted Practice: Create and Clone a GitHub Repository  Assisted Practice: Create a Pull Request in Git

Assisted Practice: Push File to GitHub Repository

  Assisted Practice: Create a Branch in Git

 Assisted Practice: Switching Branches in Git  

Assisted Practice: Merging Branches in Git  

Assisted Practice: Integrate Git with Jenkins

Assisted Practice: Creating a Freestyle Build Job  

Assisted Practice: Integrate Maven with Jenkins

 Assisted Practice: Remote Triggering of a Parameterized Build

 Assisted Practice: Testing the Automation Script  

Assisted Practice: Demonstrate YAML Scripting

 Assisted Practice: Set Up Apache Server using

Ansible  Assisted Practice: Ansible Modules

 Assisted Practice: Creating and Working with Ansible Roles

Assisted Practice: Set up Terraform

 Assisted Practice: Create an S3 Bucket Using Terraform

 Assisted Practice: Performing CRUD Operations on Containers

Assisted Practice: Creating a Docker Image  

Assisted Practice: Docker Compose Setup  

Assisted Practice: Docker Registry

 Assisted Practice: Docker Networking with SSH

Assisted Practice: Continuous Monitoring on Docker with ELK Stack

Assisted Practice: Kubernetes Installation and Cluster Setup

Assisted Practice: Pod Creation in Kubernetes

Unassisted Practice: Install Git on Linux

Unassisted Practice: Setting up Jenkins

Unassisted Practice: Setting up Ansible