DevOps
DevOps
Lecture Practical
Sno. Subject
(L) Lab (P)
1 DevOps Overview 3 1
3 DevOps Automation 3 1
4 Application Containerization 3 1
Total Credits: 28
Subject 1 Lecture: 3 Credits
Total Credits: 4 Lab: 1 Credit
DEVOPS OVERVIEW
Software, History of Software Engineering and Software, Development Methodologies, Traditional Software
Development Models, Waterfall Model, Classical Waterfall Model, Traditional IT Organizations, Developers
vs IT Operations Conflict, Birth of Agile, Four Values of the Agile Manifesto, Agile and Lean
Introduction to DevOps
Definition of DevOps: Challenges of traditional IT systems & processes, History and emergence of DevOps,
DevOps definition and principles governing DevOps, DevOps and Agile, The need for building a business
use case for DevOps
Purpose of DevOps
Purpose of DevOps, Minimum Viable Product (MVP), Benefits of MVP, Application Deployment, Automated
Application Deployment, Application Release Automation (ARA), Components of Application Release
Automation (ARA), Continuous Integration, Best Practices of CI, Benefits of CI, Continuous Delivery, Process
CAMS – Culture, Cultural aspects of DevOps, Continuous Improvement and Problem Solving, encourage,
Experimentation and Learning, CAMS – Automation, Delivering high value - DevOps way, Continuous
Delivery Automation: CAMS – Measurement, Metrics used for tracking , Performance Predictors, Continuous
Monitoring, CAMS – Sharing, Test-driven development, Configuration Management, Infrastructure
Automation, Root Cause Analysis, Blamelessness, Organizational Learning, Test Driven Development, TDD
– Categories of Tests, Configuration Management, Source Code Management - Version Control,
Infrastructure Automation Tools, Root Cause Analysis.
Agile Methodology
Software, History of Software Engineering and Software, Development Methodologies, Traditional Software
Development Models, Waterfall Model, Classical Waterfall Model, Traditional IT Organizations, Developers
vs IT Operations Conflict, Birth of Agile, Four Values of the Agile Manifesto, Agile and Lean
Subject 2 Lecture: 3 Credits
Total Credits: 4 Lab: 1 Credit
DevOps: An Overview, Achieving DevOps, Continuous Practices, how does CI Work? Continuous Integration
Practices, Commit Code Frequently, Maintain a Single Source Repository, Don’t commit code, Keep the
Build Fast, Every Commit Should Build the Mainline, Fix Broken Builds Immediately, Write Automated
Developer Tests, Automated deployment helps, Benefits of Continuous Integration, Continuous Delivery,
Continuous Delivery Process, Benefits of continuous delivery practices
Continuous Deployment
Continuous Deployment, Continuous Deployment Process, Benefits of Continuous Deployment, Version
Control System (VCS), Repository and Working Copy, Types of version control systems, Benefits of Version
Control Systems
Version Control System
Brief History of Version Control Systems, Basic Operations in a VCS, Examples of Version Control Systems,
Concurrent Versions System (CVS), Subversion (SVN), Mercurial, Git, The Making - History of Linux and
Git, Advantages of Git
Local Repository, Centralized Version Control System (CVCS), Distributed Version Control System (DVCS),
Advantages of Distributed Version Control System , Private Workspace, Easier Merging, Easy to Scale
Horizontally , Disadvantages of Distributed Version Control System , vs Distributed Version Control Systems,
Comparison of CVCS and DVCS, Multiple Repositories Model, Multiple Repositories for Different Services,
Resetting the Local Environment, Revert - Canceling out the Changes
Source Code Repository, Different Types of Source Code Repositories, How to Install GitHub, First Time Git
Setup, How to Create an Organization in GitHub, How to Create a Repository in GitHub, How to Create a
Branch in Github, How to Check-in Code to Github
Subject 3 Lecture: 3 Credits
Total Credits: 4 Lab: 1 Credit
DEVOPS AUTOMATION
Introduction to Automation
The Software Delivery Pipeline, Overview of the Continuous Delivery Pipeline, Fully Automated Software
Delivery Process, The Build Process, Automated build, Automated Test, Automated Deployment, Benefits
of Automated Deployment, Automated Deployment and DevOps Adoption, Automated Deployment and
DevOps Adoption, Overview of Rapid Application Development (RAD), Phases in RAD, Essential Aspects
of RAD, Code generation, Categories of Code Generators, Common
Advantages of Automation
Advantages of Automation, Automation Scenarios, Archiving Logs, Auto-Discard Old Archives, MySQL
(RDBMS) Backups, Email Web Server Summary, Ensure Web Server is Running, User Command Validation,
Disk Usage Alarm, Sending Files to Recycle Bin, Restoring Files from Recycle Bin, Logging Delete Actions,
File Formatter, Decrypting Files, Bulk File Downloader, System Information, Install LAMP Stack, Get NIC’s
IP, Scenarios Where Automation Prevents Errors
The Linux System, Linux File System, Partitions, Common System Directories, Shell, User Groups and
Permissions, User Accounts, The passwd File, Creating User Accounts, File Ownership, File Permissions,
Working with Bash, Shell Features
Writing Automation Scripts, Task Scheduling Using Cron, Basic Linux Commands, Best Practices for
Scripting, Make use of Shell’s Built-In Options, Naming Conventions, Annotations Make the Logic Clean,
Command Substitution, Always Begin with a Shebang, Variable Substitution, Conditionals, Regular
Expressions,
Why “Make”? Why not Others?, Why not use “Bash Script” instead of “Makefile”?, features of “Make”, Various
versions and Variants of “Make”, Structure of a “Makefile”, What is a Rule?, Structure of a “Makefile” Rule,
Targets, Some Special Built-in Target Names,Automatic Variables, Suffix Rules, Pattern Rules, The “Make”
command, “Make” arguments, recu, rsive makefile, Building Binary from Source Code, Conditionals in
“Makefile”, Best Practices in writing “Makefiles”
Subject 4 Lecture: 3 Credits
Total Credits: 4 Lab: 1 Credit
APPLICATION CONTAINERIZATION
Understanding Containers: Transporting Goods Analogy, Problems in Shipping Industry before Containers,
Shipping Industry Challenges, Container: The Savior, Solution by Containers in the Shipping Industry, How
software function, and are deployed? Challenges in the Software Industry, Problems in Software Industry
Before Containers, Put that in Container! Solution by containers in the Software Industry. Benefits and use
cases.
Virtualization
Introduction, Hypervisor, Scope of Virtualization, Virtual Machines and its configurations, Applications of
Virtualization, Choosing VM configuration for different use cases, Understanding Containers, Benefits and
use cases of containerization, Containerization Platform, Runtime and Images, Container Platform,
Container Runtime, Containers vs Virtual Machines, The Chroot System, FreeBSD Jails, Linux Containers
(LXC), Docker,
Docker
Docker architecture, Docker Daemon (Container Platform), Docker Rest API, Understanding Different
environments: (Dev, QA and Prod). Installing Docker and basic docker commands, Dockerfile fundamentals,
Docker Networking models, Exposing ports and container communication, Managing data persistence,
Docker compose, writing compose files for multi container applications. Advance docker components,
container security with docker, Best practices for containerization with docker.
What is orchestration? Need of orchestration, Case study: Need of Orchestration, Need of Orchestration:
Container and Microservices, Docker Swarm and Kubernetes, Kubernetes architecture and components,
Working with Kubernetes pods, Rolling updates and rollbacks. Kubernetes service types, network policies,
secure communication, Persistent storage in Kubernetes, Kubernetes configmaps and secrets, advance
Kubernetes features.
Application Deployment
End to End Application deployment with containers, monitoring containerized applications, logging and log
management. Using tools (Prometheus/Grafana) for container monitoring, Integrating containers into the
CI/CD pipeline, AWS (ECS,EKS), AWS Elastic Container Services Architecture, Azure Kubernetes Services,
OpenShift, KUBERNETES ON CLOUD
Subject 5 Lecture: 3 Credits
Total Credits: 4 Lab: 1 Credit
Build, Introduction—Build and Release Management, Build Management, Build Reporting – Sample
Sonarqube Report, Build Reporting – Build status, Release Planning, Packaging, Authorization,
Redeployment, Declarative Dependency Management
Dependency Management
Build Tools – Ant, Maven, Gradle, Using Repositories, Maven Repository – Local, Central, Remote, Maven
Dependency Search Sequence, Dependency Management, Example of Dependency Management: Parent
POM, Example of Dependency Management: Child POM-a, Example of Dependency Management: Child
POM-b, Dependency Identification, Dependency Scope, Transitive Dependencies, Features of Transitive
Dependencies
Documentation Overview, Different types of documentation, Reporting, Maven Site Plugin, Maven Site
Lifecycle, Maven site Configuration in pom.xml, Advanced Site Reports, Unit Testing, Unit Testing
Techniques, Unit Testing Framework – Java, Junit, Code Coverage, How is Code Coverage Calculated,
Code Coverage Tools, Comparison of Code Coverage Tools, Sample Code Coverage Report, Code
Coverage – Pros and Cons
Project Release Lifecycle, Different Stages of a Release Cycle, How to Install GitLab, First-Time Git Setup
in GitLab, How to Create a Group in GitLab, How to Create a Repository in GitLab, How to Create a Branch
in GitLab, How to Commit and Push Code to GitLab, Introduction to GitOps, Core GitOps Principles, GitOps
vs Traditional CI/CD, Setting Up GitOps with GitHub/GitLab, Deploying Build to Production, Maven Prepare
Goal, Perform Goal, Clean Goal, Maven Rollback Goal
Subject 6 Lecture: 3 Credits
Total Credits: 4 Lab: 1 Credit
Overview
Introduction to CI, Continuous Integration Workflow, Benefits of Continuous Integration, How CI Benefits
Distributed Teams, Continuous Delivery, Steps Involved in CICD, Pipelines, Prerequisites, Checklist,
Business Drivers for Continuous Deployment, Benefits of Continuous Deployment, CD – The HP Laserjet
Case Study
Core CI Process, VCS, Merging Local Changes to Integration Branch, Fork & Pull, Code Review, Automated
code builds – Key metrics, Static Code Analysis, Snapshot, Sample Bug Report, Automated Unit Testing-
JUNIT, Test Frameworks, Automated Unit Testing Process, Code Coverage analysis, Code Coverage
Methods, Condition Coverage, Line Coverage, Publishing Code Coverage reports to Jenkins, Uploading
build artifact to a repository, Advanced CI process, Automated Functional Testing, Publish Report to the
Development Team, Google Canary release Case study
Jenkins-CICD
Jenkins Installation, Jenkins Dashboard & UI understanding, Jenkins Job, Jenkins Triggers, Jenkins Plugins,
Multi Node cluster setup with architecture, Installing/Configuring Nexus, Use Jenkins as a Continuous
Integration server, Deploying the application to staging/prod environment, Docker integration with Jenkins,
Static Pipeline
GitHub Actions and its benefits, Setting up GitHub Actions in a repository, GitHub Actions workflows, Building
and testing applications with GitHub Actions, Artifacts and caching in GitHub Actions, Implementing code
quality and security checks in Jenkins and GitHub Actions, Complete CI process with GitHub Actions,
Automated deployments with Jenkins, Using Jenkins and GitHub Actions for deployments to various
environments, Managing secrets and environment variables in CI/CD, ArgoCD introduction, ArgoCD
features, implementing CICD pipeline with Git and ArgoCD
Simple Delivery Pipeline, Continuous Deployment Pipeline, Releasing an application to Production, Zero-
Downtime Releases, Rolling back deployments, Blue-Green Deployments, Canary Releasing, Google
Canary release Case study, A/B testing and monitoring during deployments, Blue/Green and Canary
deployments with Jenkins and GitHub Actions, Rolling updates and feature flags in CI/CD pipelines,
Emergency Fixes, Continuous Delivery engineering practices, Continuous Development/Integration,
Deploying and Promoting your Application, Modeling Your Release Process and Promoting Builds,
Continuous Deployment to successive environments until before Production, Continuous monitoring for the
delivery pipeline, Nagios sampler report, Continuous Feedback rules
Subject 7 Lecture: 3 Credits
Total Credits: 4 Lab: 1 Credit
Introduction to Provisioning
What is Provisioning – Basic Definition, Software Definition, Concepts of Provisioning, Why Provisioning
Should be Exclusive, Configuration Management, Configuration Management Tools, Why Provisioning is not
Configuration Management, Provisioning Tools, Test Machines for Provisioning, Deployment, Relationship
between Deployment and Provisioning
Sonarqube
Features of Sonarqube, Code Scanner, Application of Code Scanner, Organizational Improvement Using
Code Scanner, Organizational Improvement Using Code Scanner Application of Code Scanner, On Premise
to Cloud Migration Strategies, What is Cloud Migration? Types of Cloud Migration Strategies, Benefits of
Cloud Migration, Network Security Enablement from On-Premises to Cloud, What are Microservices?, Azure
Kubernetes Service (AKS), Benefits of AKS, Benefits of EKS
State of Various Tools in Provisioning and Configuration, Infrastructure as Code, Codifying infrastructure,
Terraform, AWS CloudFormation, Creating and managing infrastructure as code, Continuous
Integration/Continuous Deployment, Configuration Management, Configuration Management in DevOps,
inventories dynamically with Ansible, Monitoring, Reasons for Using Provisioning and Configuration Tools,
Automation, Preventing Errors and Tracking of Changes, Tools and their Capabilities
Describe Selenium 4.x advantages and implementation, understanding selenium 4.x grid architecture,
selenium commands, actions, asserts, assessors, developing test cases and test suites, Webdriver API,
cross browser testing – Firefox, IE, Chrome, Edge, UI elements locator, identifying webElements, XPath,
CssSelector, TegName, handling web Elements using webDriver, handling dynamic events, validation
commands, synchronization commands, Framework Implementation – Selenium, Automation frameworks,
introduction to selenium and TestNg, selenium components, selenium architecture, TestNg, features,
comparison with Junit, configuring TestNg with Eclipse, writing selenium scripts from scratch, test runs and
reports, TestNG annotations, creating and running test suits, Hard Assertion, Soft Assertion, prioritizing of
execution for test cases, TestNG Reports, configuring ANT, XSLT report generation using TestNg and ANT