devops-syllabus
devops-syllabus
Devops Syllabus
CS503PC: DEVOPS
B.Tech. III Year I Sem. L T P C
3 0 0 3
Pre-Requisites:
1. Software Engineering
2. Software Project Management
Course Objectives:
Understand the skill sets and high-functioning teams involved in Agile, DevOps and related
methods to reach a continuous delivery capability.
Implement automated system update and DevOps lifecycle.
Course Outcomes:
Understand the various components of DevOps environment.
Identify Software development models and architectures of DevOps
Use different project management and integration tools.
Select an appropriate testing tool and deployment model for project.
UNIT-I
Introduction to DevOps:
Introduction, Agile development model, DevOps and ITIL. DevOps process and Continuous Delivery,
Release management, Scrum, Kanban, delivery pipeline, identifying bottlenecks.
UNIT-II
Software development models and DevOps:
DevOps Lifecycle for Business Agility, DevOps, and Continuous Testing. DevOps influence on
Architecture: Introducing software architecture, The monolithic scenario, Architecture rules of thumb,
The separation of concerns, Handling database migrations, Micro services and the data tier, DevOps,
architecture, and resilience.
UNIT-III
Introduction to project management:
The need for source code control, the history of source code management, Roles and code, source
code management system and migrations, shared authentication, Hosted Git servers, Different Git
server implementations, Docker intermission, Gerrit, The pull request model, GitLab.
UNIT-IV
Integrating the system:
Build systems, Jenkins build server, Managing build dependencies, Jenkins plugins, and file system
layout, The host server, Build slaves, Software on the host, Triggers, Job chaining and build pipelines,
Build servers and infrastructure as code, Building by dependency order, Build phases, Alternative build
servers, Collating quality measures.
UNIT-V
Testing Tools and Deployment:
Various types of testing, Automation of testing Pros and cons, Selenium - Introduction, Selenium
features, JavaScript testing, Testing backend integration points, Test-driven development, REPL-driven
development. Deployment of the system: Deployment systems, Virtualization stacks, code execution at
the client, Puppet master and agents, Ansible, Deployment tools: Chef, Salt Stack and Docker.
TEXT BOOKS:
1. Joakim Verona., Practical DevOps, Packt Publishing, 2016.
REFERENCE BOOKS:
1. Deepak Gaikwad, Viral Thakkar. DevOps Tools from Practitioner's Viewpoint. Wiley
publications.
2. Len Bass, Ingo Weber, Liming Zhu. DevOps: A Software Architect's Perspective. Addison
Wesley
Page 69 of 154
Course Outcomes:
1. Understand the need of DevOps tools
2. Understand the environment for a software application development
3. Apply different project management, integration and development tools
4. Use Selenium tool for automated testing of application
List of Experiments:
1. Write code for a simple user registration form for an event.
2. Explore Git and GitHub commands.
3. Practice Source code management on GitHub. Experiment with the source code in exercise 1.
4. Jenkins installation and setup, explore the environment.
5. Demonstrate continuous integration and development using Jenkins.
6. Explore Docker commands for content management.
7. Develop a simple containerized application using Docker.
8. Integrate Kubernetes and Docker
9. Automate the process of running containerized application for exercise 7 using Kubernetes.
10. Install and Explore Selenium for automated testing.
11. Write a simple program in JavaScript and perform testing using Selenium.
12. Develop test cases for the above containerized application using selenium.
TEXT BOOKS:
1. Joakim Verona., Practical DevOps, Packt Publishing, 2016.
REFERENCE BOOKS:
1. Deepak Gaikwad, Viral Thakkar. DevOps Tools from Practitioner's Viewpoint. Wiley
publications.
2. Len Bass, Ingo Weber, Liming Zhu. DevOps: A Software Architect's Perspective. Addison
Wesley.
Page 84 of 154