Topic outline

  • INFRASTRUCTURE SETUP

    • EC2 Walk through
    • Installation of Devops Tools on cloud
      • Git
      • Docker
      • Selenium
      • Maven
      • Jenkins
      • Puppet
      • Ansible
      • Kubernetes
      • Nagios

    • INTRODUCTION TO DEVOPS

      • What is Software Development
      • Software Development Life Cycle
      • Traditional Models for SDLC
      • Why Devops?
      • What is Devops?
      • Devops Lifecycle
      • Devops Tools

      • SOFTWARE VERSION CONTROL

        • What is Version Control
        • Types of Version Control System
        • Introduction to SVN
        • Introduction to Git
        • Git Lifecycle
        • Common Git Commands
        • Working with Branches in Git
        • Merging Branches
        • Resolving Merge Conflicts
        • Git Workflow

        HANDS-ON EXERCISE

        • 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


        • CONTAINERIZATION USING DOCKER - PART I

          • 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

          HANDS-ON EXERCISE

          • Common Docker Operations
          • Creating a DockerHub Account
          • Committing Changes to a Container
          • Pushing container to DockerHub
          • Creating Local Image Repository
          • Building an Image using Dockerfile



          • CONTAINERIZATION USING DOCKER - PART II

            • 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

            HANDS-ON EXERCISE

            • Creating Docker Volumes
            • Using Docker Compose to deploy multiple containers
            • Deploying a Multi Node Cluster using Docker Swarm
            • Deploying a multi-service app on Docker Swarm

            • CONFIGURATION MANAGEMENT USING PUPPET

              • Need of 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

               

              HANDS-ON EXERCISE

              • Setting up Master Slave on AWS
                Testing Connection of nodes with Puppet
              • Creating a Manifest
                Deploying Manifest on Node
              • Creating a Module
              • Deploying sample software on nodes using Puppet Modules and Manifests
              • Implementing a File Server Module on Puppet



              • 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 EXERCISE

                • Installing Ansible on AWS
                • Creating a Playbook using YAML
                • Creating an Ansible Role
                • Using Roles in Playbook



                • CONTINUOUS TESTING USING SELENIUM

                  • What is Continuous Testing?
                  • Introduction to Selenium
                  • 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 EXERCISE

                  • 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 EXERCISE

                    • Creating a Jenkins Master Slave on AWS
                    • Installing Plug-ins in Jenkins
                    • Creating Jenkins Builds
                    • Creating Scheduled Builds
                    • Triggering Jobs using Git Web Hooks
                    • Using the Pipeline Plugin In jenkins



                    • 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

                      HANDS-ON EXERCISE

                      • Setting up Kubernetes using kubeadm
                      • Installing Kubernetes using kops and GCK
                      • Creating a Deployment
                      • Creating Services
                      • Creating an Ingress
                      • Demonstrating the use of Ingress, services and deployments together

                       

                       



                      • 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

                        HANDS-ON EXERCISE – 

                        • Installing Nagios
                        • Monitoring of different servers using Nagios

                        • WHAT DEVOPS PROJECTS YOU WILL BE WORKING ON?

                          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: Containerizing various frameworks and NGINX Application using Docker.

                          Industry: General

                          Problem Statement: How to integrate the software projects deployed in diverse environments using Docker.

                          Topics: In this Docker project you will containerize the software running in different environment like Node.js, MongoDB, NGINX, and ASP.NET. You will first setup these frameworks and the NGINX application on Docker container and then run them on the individual containers.

                          Highlights

                          • Setup Node.js on Docker container
                          • Pull NGINX image from Docker hub
                          • Deploy PowerShell & Hyper-V.

                          Project 2: Using Git for version control and tracking of software.

                          Industry: Internet related

                          Problem Statement: How to ensure the changes on the website made by various developers is implemented.

                          Topics: In this project you will be working on coordinating the work of multiple developers making changes to the website of an online pet’s store. You will focus on source code management, creating a repository on Git for all the codes created by various developers, Next, we check the status of the code, bring it to staging, then commit it, and view its status in log all within the Git repository.

                          Highlights

                          • Create a repository on GitHub
                          • The various Git commands
                          • Push local repository into Git repository.

                          Project 3: Automating the IT infrastructure of a company

                          Industry: Information Technology

                          Problem statement: How to speed up the setting up and configuration of a software tool of an organization using Puppet

                          Topics: In this project you will be working on installing WordPress along with its dependencies like Apache, PHP, MySQL and others. You will deploy the Puppet configuration management tool, handle the infrastructure like it was code, and automate the entire workflow using Puppet to get the job done faster and better.

                          Highlights

                          • Configuration management
                          • Infrastructure as Code
                          • Deployment automation.

                          Project 4: Automating WordPress application using Kubernetes

                          Industry: General

                          Problem Statement: How to automate the deployment of WordPress with MySQL with increasing workloads

                          Topics: In this project you will handle the deployment of WordPress with MySQL which is quite challenging with increasing workloads. So, in order to automate the whole process, you will setup the Kubeadmn and Kubectl in your system and deploy the WordPress application along with MySQL using Kubernetes.

                          Highlights

                          • Installation of Docker containers
                          • Setting up Kubernetes environment
                          • Container orchestration with Kubernetes.

                           

                           

                          Project 5: Implementing a HAProxy server with Docker

                          Industry: Information Technology

                          Problem Statement: How to ensure the HAProxy server is run using a Docker container

                          Topics: In this DevOps project you will create containers using Docker. The Docker compose script will have a code for each container separately, various containers are connected to one another, scaling up and scaling down of the web containers is done. You will write codes for Redis, Load Balancer, and the web and join them later.

                          Highlights:

                          • Working with Docker-compose script
                          • Connecting multiple Docker containers
                          • Creating high performance TCP load balancer.

                          Project 6: DevOps Continuous Integration

                          Industry: General

                          Problem Statement: Maintaining a state of application using Playbook/Cookbook and using CI tool to run periodic jobs

                          Topics: In this DevOps project you will first write a Playbook/Cookbook/Module for maintaining an application and then using a Continuous Integration or orchestration tool to run jobs on them periodically. You will deploy continuous integration with Software Configuration Management. You can then have the advantage of any deployment tool/orchestration agent on server.

                          Highlights

                          • Pushing configuration code to CM
                          • Continuous Integration with SCM
                          • Playbook/Cookbook for DevOps

                          Project 7: Deployment of LAMP and WordPress using Ansible

                          Industry: Open Source Website

                          Problem Statement: How to get a WordPress website running by installing LAMP stack using Ansible

                          Description: You will automate the deployment of a LAMP stack and install WordPress. LAMP stands for Linux, Apache (a Web server), MySQL (a database) and PHP (server-side scripting). It is a technology stack on which you can deploy different Web applications. Also, configure the installation of WordPress, which is free and open source software for creating websites and blogs. Perform all these operations using Ansible.

                           

                          Highlights:

                          • Linux & Ansible Installation
                          • Issuing commands from Ansible
                          • Deploying LAMP Server.

                          Project 8: Provision EC2 Virtual Machine with Ansible

                          Industry: Cloud Computing

                          Problem Statement: How to launch a Virtual Machine with AWS EC2

                          Topics: In this Project you will provision your EC2 Virtual Machine using Ansible, install Ansible and run playbooks manually on your local machine to provision a Virtual Machine for more consistency and to put some logic into EC2 parameters.

                          Highlights:

                          • Preparing the AWS EC2 VM
                          • Preparing Ansible Playbook
                          • Running the Playbook.