Devops Course Content
Devops Course Content
Course Content
INTRODUCTION TO DEVOPS
Ø 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
Ø 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.
CLOUD: PART 2
Ø 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
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
BUILD TOOLS – MAVEN
Ø 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
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.
CLOUD: PART 3
Ø 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