Course Title : DevOps
Course Code: CSEN4122
Contact hrs per week: L T P Total Credit points
3 0 0 3 3
Course Outcomes: After completing the course, students will be able to:
CSEN4122.1. Understand the fundamentals of DevOps and its relevance in modern software
development and delivery.
CSEN4122.2. Recognize the importance and application of different DevOps stages.
CSEN4122.3. Implement virtualization or configuration management for DevOps-based
software development.
CSEN4122.4. Analyze the performance of each stage of DevOps life cycle.
CSEN4122.5. Evaluate the development and delivery process across all DevOps stages.
CSEN4122.6. Establish a Continuous Integration (CI) / Continuous Delivery (CD) pipeline for
automated, integration and delivery of cohesive software releases that are fast, reliable, and
scalable.
Detailed Syllabus
Module 1 [8L]
Introduction to DevOps: [4L]
Waterfall Model∙Agile Model∙Lean Model∙Waterfall vs Agile vs Lean∙Why DevOps∙What
is DevOps, DevOps Lifecycle∙DevOps tools∙DevOps Technical Challenges.
Version Control with Git: [4L]
What is Version Control∙Types of Version Control System∙Introduction to Git∙Git
Lifecycle∙Common Git Commands∙Recording Changes to the Repository∙Working
with Remotes∙Branching and Merging in Git∙Resolving Merge Conflicts∙Git
Workflow.
Module 2 [8L]
CI/CD with Jenkins: [8L]
Essentials of Continuous Integration∙An example scenario where CI is used ∙ Jenkins and
its architecture ∙ Jenkins tool Management ∙ User management in Jenkins ∙ Authentication∙
Authorization∙ Overview of Maven∙ Creating jobs and automatic build settings∙ Adding a
slave node to Jenkins ∙ Building Delivery Pipeline ∙ Notification settings in Jenkins ∙ Plugin
management in Jenkins.
Module 3 [12L]
Containerization Using Docker: [6L]
What is Virtualization∙What is Containerization∙Containerization Tools∙Components of
Docker∙Installing Docker∙Common Docker Commands∙Introduction to Docker
Networking∙Creating a Docker HubAccount∙Docker Swarm.
Kubernetes: [6L]
Introduction to Kubernetes ∙ Kubernetes Cluster Architecture — An overview ∙
Understanding concepts of Pods, Replica sets, deployments and namespaces ∙ Understanding
the concepts of services and networking ∙ Persistent volumes and persistent volume claims
—an overview ∙ Design of Pods ∙ Understanding labels, selectors, jobs, and schedulers.
Module 4 [8L]
Ansible: [8L]
Introducing Ansible – A configuration management tool∙Inventory∙Ansible
modules∙Adhoc commands, Introduction to YAML script∙Playbook∙Including and
Importing∙Setting up Master Slave∙Ansible Playbooks∙Ansible Roles.
Text Books:
1. Emily Freeman, “DevOps For Dummies”, Oreilly
2. Gene Kim, Jez Humble, Patrick Debois, John Willis, “The DevOps Handbook”, Oreilly
References:
http://git-scm.com/downloads
http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-
guide#323764
git-cheat-sheet-education (github.com)
https://res.cloudinary.com/practicaldev/image/fetch/s--ut1NyPMr--
/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-
uploads.s3.amazonaws.com/i/dg2s8w9xeyih3recxfpq.JPG
Access permissions on GitHub - GitHub Docs
https://github.com/
https://youtu.be/akD-DpolilE
https://www.youtube.com/results?search_query=how+to+install+jenkins+in+ubuntu+ec2+in
stance
https://www.youtube.com/watch?v=w8PAcNFIYDg
How To Install Apache Tomcat 10 on Ubuntu 20.04 | DigitalOcean
https://www.jenkins.io/
https://www.youtube.com/watch?v=3c-iBn73dDE
https://www.youtube.com/watch?v=cqbh-RneBlk
Advantages and Disadvantages of Docker - Learn Docker - DataFlair (data-flair.training)
Docker overview | Docker Docs
Get Docker | Docker Docs
Docker Vs. Virtual Machines (devtechnosys.com)
Docker Networking - GeeksforGeeks
https://docs.docker.com/?_gl=1*18hcqtl*_ga*MTI5NTI0NDY1MS4xNzA0MjE0Mzg1*_ga
_XJWPQMJYHQ*MTcwNDcxODU0Ny45LjEuMTcwNDcxODU2NS40Mi4wLjA
Docker daemon configuration overview | Docker Docs
https://www.youtube.com/watch?v=02Yx8pISQSQ
https://www.youtube.com/watch?v=tatPFzitHa0
Pods | Kubernetes
ReplicaSet | Kubernetes
Deployments | Kubernetes
Namespaces | Kubernetes
Service | Kubernetes
Worker Node Components - IBM Documentation
kubernetes - What does "within the cluster" mean in the context of ClusterIP service? - Stack
Overflow
Demystifying Kubernetes Service Types: ClusterIP, NodePort, and LoadBalancer | by
Prateek Bansal | Medium
website/content/en/docs/concepts/services-networking/service.md at main ·
kubernetes/website · GitHub
Cluster Networking | Kubernetes
How to explicitely define an Endpoint of an Kubernetes Service - Stack Overflow
Communication between Pods in Kubernetes. Service object or Cluster Networking? - Stack
Overflow
ReplicaSet | Kubernetes
Volumes | Kubernetes
linux - Persistent volume and claims in kubernetes workspace - Stack Overflow
Veritas NetBackup Kubernetes protection Architectu... - VOX
K8s: Volumes & Claims — Part2. Continuing from our Part1 of the… | by Sandeep Baldawa
| The Startup | Medium
kubernetes - Why does a match Persistent Volume not bind to a match Persistent Volume
Claim (using k3s)? - Stack Overflow
Setting up persistent storage in Civo Kubernetes with Civo Block Storage | Pulumi AI
Answers
Persistent Volumes | Kubernetes
Labels and Selectors | Kubernetes
devops - What is the difference between Label and Selector in kubernetes? - Stack Overflow
submit_job - Boto3 1.34.32 documentation (amazonaws.com)
How to Run Kubernetes Jobs Programmatically? | by Gokhan Gorali | Medium
Using kubernetes batch with spv.no | Pulumi AI Answers
Jobs and Deployment Strategies on Google Kubernetes Engine (GKE) | by Udesh
Udayakumar | Google Cloud - Community | Medium
Jobs | Kubernetes
kube-scheduler | Kubernetes
https://www.youtube.com/watch?v=ew6Jtrn5rLo
How to build your inventory — Ansible Documentation
Ansible: Automating Infrastructure Management and Configuration | by Nahidul Islam |
DevOps.dev
Using Ansible modules and plugins — Ansible Documentation
What is an Ansible Playbook? (redhat.com)
import_tasks vs include_tasks - Red Hat Learning Community
---