Devops

Training

This DevOps training is designed to make you a certified practitioner by providing you hands-on training on DevOps tools and sharing DevOps best practices about Continuous Development, Continuous Testing, Configuration Management, including Continuous Integration and Continuous Deployment and finally Continuous Monitoring of the software throughout its development life cycle.

LINUX Basics:

  • Unix and linux difference
    • Linux File system structure
    • Basic linux/unix commands
    • Changing file permissions and ownership
    • Types of links soft and hard link
    • Filter commands
    • Simple filter and advance filter commands
    • Start and stop services
    • Find and kill the process with id and name
    • Package installation using RPM and YUM

Introduction to DevOps

  • Define Devops
    • What is Devops
    • SDLC models,Lean,ITIL,Agile
    • Why Devops?
    • History of Devops
    • Devops Stakeholders
    • Devops Goals
    • Important terminology
    • Devops perspective
    • Devops and Agile
    • Devops Tools
    • Configuration management
    • Continuous Integration and Deployment

Introduction to Cloud computing

  • What is cloud computing
    • Characteristics of cloud computing
    • Cloud implementation models
    • Cloud service models
    • Advantages of cloud computing
    • Concerns of cloud computing

GIT: Version Control

  • Introduction
    What is Git
    About Version Control System and Types o Difference between CVCS and DVCS
    A short history of GIT o GIT Basics
    GIT Command Line
  • Installing Git
    Installing on Linux
    Installing on Windows
    Initial setup
  • Git Essentials
    Creating repository
    Cloning, check-in and committing o Fetch pull and remoteBranching
    Creating the Branches, switching the branches, merging the branches.

Chef for configuration management

  • Overview of Chef
    Common Chef Terminology (Server,
    Workstation, Client, Repository etc.)
    Servers and Nodes
    Chef Configuration Concepts
  • Workstation Setup
    How to configure knife
    Execute some commands to test connection between knife and workstation
  • Organization Setup
    Create organization
    Add yourself and node to organization
  • Test Node Setup
    Create a server and add to organization
    Check node details using knife
  • Node Objects and Search
    How to Add Run list to Node
    Check node Details
  • Environments
    How to create Environments
    Add servers to environments
  • Roles
    Create roles
    Add Roles to organization
  • Attributes
    Understanding of Attributes
    Creating Custom Attributes
    Defining in Cookbooks
  • Data bags
    Understanding the data bags
    Creating and managing the data bags
    Creating the data bags using CLI and Chef Console Sample data bags for Creating Users.

AWS

Creating AWS account
Free tier Eligible services
Understanding AWS Regions and availability zones

  • EC2 ( Elastic Cloud Comput)
    About EC2 and types , Pricing
    EIP ( Elastic IP address), Allocating, associating , releasing
    Launch windows and Linux Instances in AWS
    Connecting windows and Linux instances from windows desktop and Linux machines
  • S3 ( Simple Storage Service)
    About AWS Storage services, EBS and S3
    Creating S3 Buckets and putting objects in bucket
    Discussion about Bucket Properties
    S3 Pricing
    About S3 glecier
  • EBS( Elastic Block Storage)
    Types of EBS Volumes
    Creation, attaching and Detaching volumes
  • ELB ( Elastic Load Balancer)
    Understanding the load balancing
    Configuring ELB and adding the webservers under ELB
  • Auto Scaling
    Types of Scaling ( Horizontal and Vertical)
    Configuring Launch Configuration
    Creating and defining the auto scaling group policy
  • IAM ( Identity Access Management)
    Understanding of AWS Security using IAM
    Definition of Roles, policies and Groups
    Creating IAM Users and managing password policies
  • RDS ( Relational Database server)
    About RDS and available RDS Engines in AWS
    Configuring MYSQL RDS service
    Connecting EC2 Instance to RDS Instance

Puppet for configuration management

  • What is Puppet?
    How puppet works o Puppet Architecture Master and Agents
    Puppet terminology and about Manifests
  • Installation and Configuration
    Installing Puppet
    Configuring Puppet Master and Agent
    Connecting Agents
  • Puppet Master
    Puppet configuration files
  • Puppet Language Basics
    The declarative language
    Resources
    Using Basic resources like file,exec,package service
    Resource Collectors
    Virtual Resources
    Exported Resources
    Manifests
    Modules and Classes
    Class Parameters
    Defined Type
  • Templates
    Static Contents Explosion
    Using Dynamic Content with Templates
    Templates Overview
    ERB
  • Example Code Manifests/Modules
    NTP Module
    Users Module
    SSH
    Sudo
  • Puppet Forge
    Understanding the Puppet Forge
    Module structure
    Install LAMP with preexisting modules
    Installing Apache Tomcat with Puppet Modules

Jenkins – Continuous Integration

  • Introduction.
    Understanding continuous integration
    Introduction about Jenkins
    Build Cycle
    Jenkins Architecture
  • Installation
    Obtaining and installing Jenkins
    Installing and configuring Jenkins using WAR and RPM o Java installation and configuration
    Maven Installation
    Exploring Jenkins Dashboard.

 

  • Jobs
    Creating Jobs
    Running the Jobs
    Setting up the global environments for Jobs
    Adding and updating Plugins
    Disabling and deleting jobs

 

  • Build Deployments
    Understanding Deployment.
    Tomcat installation and configuration
  • Securing Jenkins
    Authentication

Jenkins Plugin Authorization Confidentiality Creating users
Best Practices for Jenkins

Docker– Containers

  • Introduction
    What is a Docker
    Use case of Docker
    Platforms for Docker
    Dockers vs. Virtualization
  • Architecture
    Docker Architecture.
    Understanding the Docker components
  • Installation
    Installing Docker on Linux.
    Understanding Installation of Docker on windows.
    Some Docker commands.
    Provisioning
  • Docker Hub.
    Downloading Docker images.
    Uploading the images in Docker Registry and AWS ECS
    Understanding the containers
    Running commands in container.
    Running multiple containers.
  • Custom images
    Creating a custom image.
    Running a container from the custom image.
    Publishing the custom image.
  • Docker Networking
    Accessing containers
    Linking containers

Exposing container ports
Container Routing

  • Docker Compose
    Installing The Docker compose
    Terminology in Docker compose
    Build word press site using Docker compose

 

VAGRANT

  • Introduction
    Why and what is Vagrant
    Uses of Vagrant in an environment
    Alternatives of Vagrant
    Vagrant versions
  • Installation and Configuration
    Installing Virtual box
    How to install Vagrant on Windows and Linux
    Configuring Vagrant
  • Provisioning with Vagrant
    Creating first VM with Vagrant
    Operations on the VM o Connecting to the VM
    Add required Images to Vagrant
    Creating network and port forwarding using Vagrant

NEW RELIC

  • Introduction
    About Monitoring tools o About New Relic
    Installing and Configuring New Relic
    Application Monitoring using New Relic o Server Monitoring using New Relic
    Alerts policies

ELK

  • Introduction
    • What is ELK?
    • ELK Installation
    • ElasticSearch
    • Logstash
    • Configuring Logstashand Kiban

 

 

Type 2:-

What is DevOps DevOps is a process to deliver software quickly and effectively by fostering collaboration between different departments like developers and Ops team. This is supported by automation, and by analyzing organization-wide metrics to see what’s going right and what’s going wrong.

Who can learn

  • People who is having B.E/B.Tech/MCA/B.Sc/M.Sc/M.Sc  degree
  • Developers/Testers/Middleware/Ops/Systems admins
  • Anyone who is looking for IT prospects

Do I need experience

  • Absolutely not

Course Objective 
            Course content is designed as per latest requirements, tools used in most of the IT organizations  and prepared to balance job descriptions for interviews and infrastructure.

Devops Tools Covered

  • Docker
  • Chef
  • Puppet
  • Ansible
  • Jenkins
  • Linux
  • Vagrant
  • Maven
  • SVN
  • ANT
  • GIT
  • Kibana
  • Logstash
  • Nagios
  • Git
  • ITIL Process

Fundamentals

Devops Overview

  • Why Devops
  • Organizational view
  • Stakeholders view
  • Developers/ Testers view
  • Operations view
  • DevOps definition

 Agile and SDLC

  • Introduction
  • Phases
  • Roles

DevOps and Agile

  • Overview
  • Roles of Dev team
  • Roles Ops team

How effective DevOps is!

Roles and responsibilities

  • Who is a DevOps engineer
  • what he does
  • Other teams to communicate
  • Automate

Overview of DevOps Automation

  • Introduction
  • Build  tools
  • Source code management/version control tools
  • Configuration tools
  • Monitoring tools
  • Continuous Integration
  • Continuous Testing
  • Continuous Deployment
  • Planning
  • Issue Tracking
  • Types of environments

Cloud Computing

  • Cloud Computing Models
  1. Software As A Service (SAAS)
  2. Platform As A Service(PAAS)
  3. Infrastructure As A Service(IAAS)
  • Understanding Public, Private and Hybrid clouds
  • Cloud Computing Benefits
  • Cloud Computing Challenges
  • DevOps in Cloud

Linux

  • Commands
  • Files and hierarchy
  • Remote server access using ssh
  • Bash Scripting

DevOps Tools

Build Tools

ANT   

  • Ant Introduction
  • Ant tasks
  • Ant properties and command line calls
  • Advanced ant tasks and external tasks

Maven

  • Environment Setup and configuration
  • Build life cycle
  • Build profiles
  • Repositories
  • Plug-ins
  • Creating, Building and testing projects
  • Project templates
  • Snapshots
  • Build automation
  • Manage dependencies
  • Web application

Source Code Management Tools

SVN (Subversion)

  • SVN introduction
  • SVN and Apache installation and configurations
  • User Administration
  • Directory structure
  • SVN Commands
  • Branching and merging strategies
  • Configuration management

Git  

  • Installation
  • Various levels of configuration
  • Staging and Committing
  • Tracking

Continuous Integration

Jenkins

Jenkins Introduction

Installation and configuration

  • Prerequisites
  • Download & installation
  • Configuration tour

Managing Jenkins

  • Managing Jenkins
  • Managing Credentials
  • Plugin Management
  • Jenkins Backup
  • Create a Build Slave

Creating Application Builds

  • Anatomy of the build
  • Cloning sample project
  • Manual compilation with Maven
  • Manually Testing, Packaging and Running the App
  • Creating a Jenkins Job and configuring a Git Repo
  • Compiling in Jenkins
  • Browsing the workspace in Jenkins
  • App Packaging in Jenkins
  • Archiving artifacts
  • Cleaning up Past Builds
  • Build time trend
  • The jenkins Dashboard
  • Troubleshooting build failures
  • Importing Job config.xml
  • Anatomy of the job
  • Build linking upstream and downstream

Plugins

  • Introduction
  • Plugin Architecture
  • Extension Points
  • Getting Plugins
  • Plugin Wiki
  • Useful Plugins Overview
  • Source Code Plugins
  • Trigger Plugins
  • Build Tool Plugins
  • Wrapper Plugins
  • Notifier Plugins
  • Reporting Plugins
  • Artifact & UI Plugins
  • Installing a plugin
  • Plugin configuration
  • Security Overview

Continuous Testing and Continuous Integration and Testing

  • Adding steps to Freestyle Project
  • Creating a Pipeline job to execute Maven
  • Archiving in a Pipeline
  • Checking out git repository in pipeline
  • The Master Agent Model
  • Allocating a node and workspace in Pipeline
  • High level progress with Pipeline stages
  • Triggering Automated Builds
  • Configuring an Email Server
  • Notifications when a build fails
  • Duplicating a job
  • Executing unit tests
  • Executing selenium tests
  • Visualizing Test Results

Finding and Managing Plugins

  • The need for plugins
  • Integrated Code Coverage
  • Assessing a plugin
  • Installing the HTML Publisher plugin
  • Publishing HTML Reports
  • Testing Plugins and Plugin Types
  • BlueOcean UI Plugin

Building Continuous Delivery Pipeline

  • Continuous Delivery
  • Backup and Restore
  • Starting point and Pipeline stashing
  • Browsing Workspaces in Pipeline Jobs
  • A Second Node Allocation
  • Adding an Agent Node
  • Setup parallel integration testing in a pipeline
  • Executing and Monitoring Parallel pipelines
  • Manual Approval for Deployments
  • Setup Deployment to staging
  • Executing a Deployment pipeline
  • Checking pipeline script to Git

Configuration Management Tools

Introduction

  • Introduction to puppet
  • Puppet Head First
  • Puppet Enterprise Stack And Core Concepts
  • Nodes

Puppet Components

  • Installing the puppet master & learning puppet master layout
  • Installing the puppet Enterprise layout
  • conf
  • Resource Abstraction Layer
  • Facter
  • Live Management
  • Catalog Compilation

Building Modules and Classes

  • Module Structure & Class Naming
  • Defining & Testing our first class
  • Declaring classes & creating node definitions
  • Auto loading

Puppet DSL

  • DSL Overview
  • Getting Started and Looking at arrays
  • Relationships & Dependencies
  • Adding SSH Class to Node Definition
  • Conditional Statements & Best Practices
  • Regular Expressions If statements
  • Adding Ubuntu Node & testing
  • Meta parameters
  • Files & Resource Defaults
  • Variables, parameterization& Scope
  • Inheritance
  • Rvalue Functions
  • Templates
  • Creating the NTP Class
  • Resource Collectors
  • Class Parameters & Scope

Roles & Profiles

  • Overview
  • Creating a profiles module
  • Creating a roles module

Hiera

  • Overview
  • Setting up configuration file & Data Sources
  • Use Hiera by example

Building an Apache Module

  • Building the Environment & Overview
  • Building the Apache Classes & Parameters
  • Building the Core Classes & Resource Type
  • Adding Directory Management
  • Adding defined Resource Type
  • Creating the required templates & testing
  • Adding multiple host files

Node Classification

  • pp and Node definition matching
  • External Node Classifiers
  • Classifying the Node with the Console
  • Using Site.pp with ENC

Puppet Management

  • Common Console Tasks
  • Troubleshooting
  • Reporting
  • Preparing Modules for puppet forge & downloading forge modules
  • Deactivating a puppet Enterprise node
  • Event Inspecto
  • External fact
  • Checking Values of Setting
  • Puppet Resource Command

Resource Type Practice

  • Host
  • Resource Type Titles
  • Mount

Chef

Introduction to chef

  • Defining chef
  • Common Chef Terminology
  • Chef Server
  • Chef Workstation
  • Chef-Repo
  • Chef-Client
  • Server and Nodes
  • Chef Configuration Concepts

Setting up the Environment

  • Intro to ChefDK
  • Chef Workstation Setup

Chef Server

  • Installing Chef Server
  • Chef-Repo, Setting Up the Work Station, and Bootstrapping
  • Chef Solo vs Chef Zero vs Chef Server
  • Chef Client, Nodes and Run Lists
  • Building A Quick Apache Cookbook
  • Managing Node Run_Lists
  • Chef-Client Configuration

Resources

  • Understanding Chef and Chef Convergence
  • Common Chef Resources
  • Default Resource Actions
  • Applying Chef Resources Hands On
  • Working with not_if and only_if Guards
  • Extending Chef with Custom Resources

Recipes and Cookbooks

  • Understanding Chef Recipes and Run Lists
  • Understanding Chef Cookbooks Generating
  • Cookbook
  • Cookbook Pro-Tips

Local Cookbook Development Basics

  • Generators
  • Test Driven Development
  • ChefSpec
  • Test Kitchen Configuration
  • Using Test Kitchen
  • InSpec
  • Static Code Analysis
  • Troubleshooting

Cookbook Components

  • Cookbook Structure
  • Metadata Anatomy
  • Versioning
  • Attributes
  • Common Resources
  • Templates
  • Libraries
  • Custom Resources

Design Patterns and Theory

  • Cookbook Disposition
  • Wrapper Cookbooks
  • Community Cookbooks
  • Managing Cookbook Dependencies
  • Data Bags
  • Vault
  • Search

Nodes and Search

  • Node Object
  • Working With Ohai and Node Attributes
  • Understanding Search
  • knife Search

Roles and Environments

  • Setting Up A New Node
  • Understanding Roles
  • Creating Roles
  • Understanding Environments
  • Bootstrapping The Staging Node
  • Creating And Using Environments

Desired State Configuration

  • Imperative Vs Declarative Approach To Configuration Management
  • Pull vs Push Approach
  • Windows DSC
  • Removing Resources From Recipes

Chef Supermarket

  • Chef Supermarket
  • Using A Private Supermarket

Building Web Server Cookbook

  • Getting Setup
  • Adding Platform Support to the Cookbook
  • Adding Local Chef-Repo to Github
  • Install and configure Chef Reporting

Chef Offerings

  • Chef Automate: Overview
  • Chef Automate: Workflow

Deploying Nodes In Production

Vagrant

Introduction

  • What is Vagrant
  • Virtualization Overview

Setting Up Vagrant

  • Virtual Box Installation
  • Vagrant Installation
  • Vagrant without Virtual Box

Using Vagrant

  • Vagrant Machine
  • Vagrant Files
  • Boxes
  • Running Vagrant Machines
  • SSH to Vagrant Machine
  • Synced Folders
  • Networking Basics

Automated Provisioning

  • Provisioning
  • Installing Apache /Shell Script
  • Installing Apache /Chef
  • Installing Apache/ Puppet

Networking

  • Private Networking
  • Public Networking

Multiple Machines with Vagrant

  • Managing Multiple Machines

Hands on multiple machine using vagrant

Boxes

  • Vagrant Boxes
  • Basic Box Management
  • Creating Boxes from existing environment
  • Creating custom boxes

Ansible

Introduction

  • Introduction to Ansible
  • Ansible vs. Other Tools Ansible vs. Other Tools
  • Ansible Documentation: Modules

Setup and Configuration

  • Test Environment Setup
  • Download and Installation
  • Ansible Configuration File
  • Ansible Python Dependencies
  • The HOSTS File
  • Overriding the Default HOSTS File
  • Overriding the Default System Ansible.Cfg File
  • Overriding the Default Roles Path
  • Understanding the core components of Ansible
  • Ad-hoc commands in Ansible

Use both static and dynamic inventories to define groups of hosts

  • Overview of static and dynamic inventories in Ansible
  • Static Inventories
  • Dynamic Inventories

Ansible Playbooks

  • Configuring Your ‘Ansible’ Account
  • Ansible Command Line
  • System Facts
  • System Facts: Common Values for Playbooks
  • Our First Playbook
  • Variables: Inclusion Types
  • Create a Playbook from Outline
  • Optimizing Playbook
  • Taking Playbook for a Dry Run
  • Simple Variable Substitution
  • Lookups
  • RunOnce
  • Local Actions
  • Loops
  • Conditionals
  • Until
  • Notify
  • Vault
  • Prompt – Interactive Playbook
  • Basic Include Statements Tags
  • Basic Error Handling
  • Jinja2 Templates
  • LocalAction
  • DelegateTo
  • Use a playbook to copy a program and customize it for the target host.

Ansible Modules

  • Commonly used Modules
  • Using modules in playbooks
  • The ‘Setup’ Module
  • The ‘File’ Module
  • The ‘Pause’ Module
  • The ‘WaitFor’ Module
  • The ‘Yum’ Module
  • The ‘Apt’ Module
  • The ‘Service’ Module
  • The ‘Copy’ Module
  • The ‘Command’ Module
  • The ‘Cron’ Module
  • The ‘Debug’ Module
  • The ‘Fetch’ Module
  • The ‘User’ Module
  • The ‘AT’ Module
  • The ‘DNF’ Module
  • The ‘Apache2_Module’ Module
  • The ‘SetFact’ Module
  • The ‘Stat’ Module
  • The ‘Script’ Module
  • The ‘Shell’ Module
  • The ‘SELinux’ Module
  • The ‘SEBoolean’ Module
  • The ‘Raw’ Module
  • The ‘Ping’ Module
  • The ‘Package’ Module
  • The ‘Unarchive’ Module
  • The ‘HTPasswd’ Module
  • The ‘GetURL’ Module
  • The ‘Group’ Module
  • The ‘Mail’ Module
  • The ‘Filesystem’ Module
  • The ‘Mount’ Module
  • The ‘Notify’ Module
  • The ‘AptRepo’ Module
  • The ‘ AptKey’ Module
  • The ‘ ACL’ Module
  • The ‘Git’ Module
  • Creating a Jinja2 Template File
  • The ‘Template’ Module
  • The ‘MySQL_DB’ Module
  • The ‘MySQL_User’ Module
  • The ‘Kernel_Blacklist’ Module

Create and use templates to create customized configuration files

  • Introduction
  • Templates

Working with Ansible facts and variables.

  • Let see how we get ansible facts and how we use facts.d
  • Using Ansible facts
  • Using variables to gather server info

Roles

  • Introduction to Roles
  • Roles – The Directory Structure
  • Role Based Tasks
  • Task Order – Pre and Post Tasks
  • Roles – Conditional Execution
  • Roles – Variable Substitution
  • Roles – Handlers
  • Roles – Using Notification
  • Roles – Configuring Alternate Roles Paths
  • Roles – Conditional Include Statements
  • Roles – Waiting For Events
  • Roles – Executing a Task Until
  • Roles – Using Tags
  • Roles – Breaking a Playbook Into a Role
  • Roles – Passing Variables from Command Line
  • Roles – Using Jinja2 Templates
  • Roles – DelegateTo
  • Roles – LocalAction
  • Roles – Lets create a role to install apache. Lets
  • use the previous role and add a new one. Lets
  • build on the previous roles

Download roles from Ansible Galaxy and use them

  • Ansible galaxy and how its used
  • Lets use multiple roles

Ansible Command Line Usage

  • Ansible Command Line – Installing Packages
  • Ansible Command Line – Services and Hosts
  • Ansible Command Line – Commands and Shells
  • Ansible Command Line – Managing Users
  • Ansible Command Line – Create and Manage Cron Jobs
  • Ansible Command Line – Running Arbitrary Commands
  • Ansible Command Line – Output Tree

Managing Parallelism

  • What is parallelism?
  • Parallelism in a playbook

Using ansible-vault in playbooks to protect sensitive data

  • Lets discuss ansible-vault and see an example
  • Options useable with ansible-vault

Install ansible tower and use it to manage systems

  • Installing a trial version of ansible tower
  • Log into our Ansible tower and run a sample task Lets
  • add to the inventory and run a task against them

Use cases

  • Creating a Web Server Deployment – Outline
  • Creating a Web Server Deployment – Playbook First Pass
  • Creating a Web Server Deployment – Playbook Optimization
  • Creating a Web Server Deployment – Breaking Into Role(s)
  • Creating an NFS Server Deployment – Outline
  • Creating an NFS Server Deployment – Playbook First Pass
  • Creating an NFS Server Deployment – Playbook Optimization
  • Creating an NFS Server Deployment – Breaking Into Role(s)
  • Creating a Database Server Deployment – Outline
  • Creating a Database Server Deployment – Playbook First Pass
  • Creating a Database Server Deployment – Playbook Optimization
  • Creating a Database Server Deployment – Breaking Into Role(s)

Containerization

Docker

Introduction

Installing Docker

  • Installing Docker on Windows
  • Installing Docker on Linux

Working with Containers

  • What is container
  • Docker run command
  • Theory of pulling and Running Containers
  • Working with images
  • Container Life cycle

Swarm Mode & Microservices

  • Swarm Mode Theory
  • Configuring Swarm Mode
  • Services
  • Scaling Services
  • Rolling Updates
  • Stacks & DABs

Introducing the App

  • The App
  • The Dockerfile
  • Pushing App to Github

Configuring Test Builds

  • Performing test Builds

Pushing App to Production

Monitoring

Nagios

  • Installation of Nagios
  • Configuring Nagios
  • Configuring Nagios
  • Triggering Alerts

Elasticsearch+logstash+Kibana

  • Installation of ELK stack
  • Configuring the ELK Stack
  • Monitoring logs with ELK

ITIL Process

  1. Release process
  2. Pre build and post build activities
  3. Incident management

Cloud Environment

  • Environment setup
  • Cloud deployment
  • CI and CD activities in Cloud