INTRODUCTION TO DEVOPS DevOps Course Content Ø What is DevOps? Ø History of DevOps Ø Different Teams Involved Ø DevOps definitions Ø DevOps and Software Development Life Cycle o Waterfall Model o Agile Model Ø DevOps main objectives Ø Prerequisites for DevOps Ø Continuous Testing and Integration Ø Continuous Release and Deployment Ø Continuous Application Monitoring Ø Configuration Management Ø What is Cloud? Ø History and evolution of cloud Ø Cloud Computing Concepts Ø Public, Private, Hybrid Clouds Ø IAAS, SAAS, PAAS Cloud Models Ø Public Clouds o Amazon Web Services, Azure, Oracle Cloud, IBM Cloud Ø DevOps with Cloud BEFORE DEVOPS: LINUX: BASICS & ADMIN Ø Linux OS Introduction Ø Importance of Linux in DevOps Ø Fetching OS and Hardware information Ø Linux Basic Command Utilities Ø File and Directory Management. Ø Linux File Editors (VIM) Ø Utilities to download software into Linux from Internet Ø User Administration Ø File permission management Ø Package Management Ø Service Management
LINUX: NETWORKING Ø Introduction to network. Ø Introduction to network in Cloud. Ø Firewall Ø Load Balancer Ø Port Ø Protocol Ø IP Address Ø DNS Ø DHCP Ø Static IP CLOUD: PART 1 Ø Introduction to AWS Ø AWS EC2 Ø EC2 Essentials Ø Build Ec2 Instances Ø Security Groups Ø Key Pairs Ø AMI WEB APPLICATION ARCHITECTURE CLOUD: PART 2 Ø Enterprise 3-tier Application layout Ø Apache Web Server Ø Apache Tomcat Server Ø MariaDB Server Ø MOD_JK Module Ø Integration of Web Server with Application Server. Ø Integration of Application Server with DB Server. Ø Haproxy Load balancer. Ø Elastic Load Balancer Ø RDS MariaDB / MySQL DB Ø Create our own AMI Ø Auto Scaling Groups DEVOPS TOOLS: VERSION CONTROL GIT Ø Version Control System Ø Centralized & Distributed Version Control System Ø Advantages of Git Ø GIT o Anatomy of GIT
BUILD TOOLS MAVEN o GIT Features o 3-Tree Architecture o GITHUB Projects o GITHUB Management o GIT Clone / Commit / Push / Merge o GITLAB Installation & Configuration o GITLAB Management o Introduction to GITLAB-CI Ø Java Compiler Ø Maven Life Cycle Ø Maven Installation Ø Maven build requirements Ø Maven POM XML File Ø Maven G A V explained Ø Add a custom life cycle in Maven Ø Integrate Artifact manager to Maven REPOSITORY TOOLS SONATYPE NEXUS Ø What is Aritifact manager Ø Artifact manager tools Ø Sonatype Nexus Installation Ø Nexus with Maven Integration Ø Using default repositories Ø Create Roles in Nexus Ø Create Users to Nexus Ø Assign Roles to Nexus Users CONTINUOUS INTEGRATION JENKINS Ø INTRODUCTION TO JENKINS-CI o Continuous Integration with Jenkins Overview o Installation of Jenkins Master and Jenkins Slave. o Configure Jenkins o Jenkins management o Support for the Git version control systems o Different types of Jenkins Jobs o Setting up a Jenkins job o Scheduling build Jobs o Maven Build Scripts
o Securing Jenkins Authentication Authorization Confidentiality Creating users o Jenkins Plugin Installing Jenkins Plugins SCM plugin Build and test Analyzers o Distributed builds with Jenkins o Best Practices for Jenkins o Jenkins Pipeline Projects. o Groovy Scripting Basics. o Jenkins Blue Ocean Projects. CONFIGURATION MANAGEMENT - ANSIBLE Ø Introduction Ø Ansible and Infrastructure Management Ø Ansible Inventory o Ungrouped Hosts o Grouped Hosts o Groups of Groups Ø Ansible Server Installation. o Ansible Server Configuration file - Update Username - Update Keys - Update SSH Parameters - Update Roles - Update Inventory - Update MISC parameters o How Ansible picks the configuration Ø Setting up SSH KEYS to and checking connection to remote nodes. Ø Ansible Facts. o Default facts from nodes o Create custom facts on nodes. o How to print facts Ø Ansible Playbooks o Define and use of 'hosts' parameter o Define and use of 'become' parameter o Define and use of 'gather_facts' parameter o Define and use of 'tasks' parameter o Define and use of 'vars' parameter o Define and use of 'vars_files' parameter o Define and use of 'vars_prompt' parameter
o Define and use of 'handlers' parameter o Define and use of 'roles' o List of Modules to be discussed: setup, ping, yum, yum_repository, service, copy, get_url, shell, command, set_fact, authorized_key, user, debug, file, find, fetch, hostname, include, include_vars, mail, package, stat, unarchive, gce, ec2, wait_for, wait_for_connection o Conditions when o Loops with_items o How to store output of one task and use it in another task. o Variables From: - vars - vars_files - vars_prompt - vars from inventory hosts - vars from inventory groups - Roles Ø Roles - Create Role - Define Role - Write roles - Role Dependencies - Variables from Roles - Variable Precedence. Ø MISC - Ansible Vault - Ansible Pull - Ansible Galaxy Ø Ansible in Real Time Ø Ansible Tower - Role-based access control - Job scheduling - Portal mode - Fully documented REST API - Tower Dashboard - Cloud integration CONFIGURATION MANAGEMENT CHEF Ø Chef fundamentals Chef Syntax and Examples Working with Knife
Writing First Chef Recipe Chef and Its Terminology Attributes Metadata Recipes Resources Templates Definitions Recipes Writing recipes Cookbook Dependencies Controlling Impotency Notifications Template Variables Chef-Solo Chef-Server Ø Cookbooks Developing Your First Cookbook Writing a Recipe Creating the Index File Changing the Metadata Uploading the Cookbook Running the Cookbook Add an Attribute Add a Resource t the Default Recipe Add the Template File Uploading and Running the Cookbook Using Environments Ø Modeling your infrastructure Roles Implementing a role Determining which recipes you need Applying recipes to roles Mapping your roles to nodes Environments. Organizing your configuration data CONFIGURATION MANAGEMENT TERRAFORM with AWS o Terraform syntax, internals, and patterns o Creating and accessing compute instances o Provisioning resources with Terraform o Working with remote state o Authoring and using Terraform modules
CONTAINERS DOCKERS CLOUD: PART 3 o What are containers. o Difference between VM s and Containers o Hypervisor Vs Docker Engine o Docker Introduction o Docker Installation o Docker Images o Docker Commands and different options o Creating own Docker images using commit. o Creating own images using Dockerfile o Automating Image creation with DockerHub and Jenkins o Docker UCP Docker UCP Installation Docker UCP Configuration Creating a Service in UCP o Docker Compose. Usage of Docker Compose. Create Stack with Docker Compose. Setup a stack service in Docker Compose. Ø S3 Ø VPC Ø AWS CodeCommit Ø AWS CodeBuild Ø AWS CodeDeploy Ø AWS CodePipeline Ø Elastic BeanStalk Ø IAM ADDITIONAL OVERVIEW v Shell Scripting v SonarQube Ø Installation and Configuration of SonarQube. Ø Integration of SonarQube with Jenkins v VAGRANT v Google Cloud v GitLab-CI v JIRA v Nagios Real Time Projects