0% found this document useful (0 votes)
159 views2 pages

DevOps Course Overview for B.Tech Students

heelo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
159 views2 pages

DevOps Course Overview for B.Tech Students

heelo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

21AM4111: DEVOPS

[Link]. IV Year I Sem. LTPC

3 1 - 4
Course Objectives: The objective of this course is to:

1. Describe the agile relationship between development and IT operations.


2. Understand the skill sets and high-functioning teams involved in DevOps and
related methods to reach a continuous delivery capability.
3. Implement automated system update and DevOps lifecycle.
4. Illustrate the types of version control systems, continuous integration tools, and
continuous monitoring tools.
5. Analyze the concepts of test automation and deployment automation.

Course Outcomes: At the end of the course, student will be able to:

1. Identify components of Devops environment.


2. Describe Software development models and architectures of DevOps.
3. Apply different project management, integration and testing tools.
4. Apply different code deployment tools.
5. Assemble and adopt Devops in real-time projects.

UNIT - I
Introduction: Introduction, Agile development model, DevOps, and ITIL. DevOps process and
Continuous Delivery, Release management, Scrum, Kanban, delivery pipeline, bottlenecks,
examples

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, Microservices, and the data tier, DevOps,
architecture, and resilience.

UNIT-III
Introduction to project management: The needfor 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 buildserver, 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 automation: 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
theclient, Puppet master and agents, Ansible, Deployment tools: Chef, Salt Stack and Docker

TEXT BOOKS:
1. JoakimVerona. Practical Devops, Second Edition. Ingram short title; 2 nd edition
(2018). ISBN- 10: 1788392574
2. Deepak Gaikwad, Viral Thakkar. DevOps Tools from Practitioner's
Viewpoint. Wiley publications. ISBN: 9788126579952

REFERENCE BOOKS:
1. LenBass, Ingo Weber, Liming Zhu. DevOps: A Software Architect's Perspective. Addison
Wesley; ISBN-10
2. The Devops Handbook: How to Create World-Class Agility, Reliability, & Security in
Technology Organizations; by GeneKim (Author), Patrick Debois (Author), Professor
JohnWillis (Author), Jez Humble (Author), John Allspaw

Common questions

Powered by AI

Automation tools such as Chef, Salt Stack, and Docker streamline the DevOps deployment pipeline by automating configuration management, environment creation, and application deployment. Chef and Salt Stack use declarative programming to manage infrastructure as code, ensuring environments are consistent and repeatable. Docker allows for containerization, which simplifies the deployment of applications across different platforms, enhancing flexibility and reducing deployment times .

Virtualization stacks in deployment systems enable the encapsulation of applications and their dependencies into isolated containers, thereby enhancing the consistency and reliability of deployments. They allow for rapid provisioning and efficient resource utilization, essential for dynamic and scalable DevOps environments. Virtualization supports the seamless movement of applications across different environments, reducing deployment times and errors .

DevOps influences software architecture by promoting modular design principles that support scalability and resilience. In monolithic scenarios, it challenges the traditional architecture by introducing the need for decoupling and separation of concerns. DevOps encourages the transition to microservices architecture, where individual services can be developed, deployed, and scaled independently, thus enhancing agility and fault tolerance .

Test-driven development (TDD) within a DevOps framework offers benefits such as early bug detection, improved code quality, and better collaboration between developers and testers. However, it also poses drawbacks like potentially higher initial development time and the requirement for significant upfront effort in writing extensive test cases. Balancing TDD with other agile practices can mitigate these drawbacks while leveraging its benefits .

In DevOps, source code management evolves to support collaborative development, continuous integration, and rapid iterations. Key differences between hosted Git servers and traditional version control systems include the decentralization and distributed nature of Git, enhancing flexibility and scalability. Hosted Git servers provide additional features such as shared authentication, integration with CI/CD tools, and improved access control, which are crucial for modern DevOps environments .

Continuous delivery significantly impacts release management by promoting frequent, reliable software updates. It streamlines the release process, enabling teams to deploy changes efficiently with minimal manual intervention. This iterative approach reduces the risk associated with large release cycles, increases customer feedback opportunities, and leads to higher quality end-products. Continuous delivery requires robust automation frameworks and cultural shifts towards agile practices .

To enhance the resilience of DevOps architectures, strategies such as implementing microservices that isolate failures, using redundancy and failover mechanisms, and automating recovery processes can be employed. Continuous monitoring and proactive testing, including chaos engineering practices, help identify potential weaknesses. Additionally, adopting best practices such as 'design for scale' and 'design for fault tolerance' are essential elements of resilient architectures .

Jenkins plays a pivotal role in the build process of a DevOps pipeline by automating the building, testing, and deploying of applications. Its extensibility through a wide array of plugins allows it to integrate with various tools and manage build dependencies effectively. Plugins enhance functionality by offering features such as job chaining, build triggers, and quality measure collation, crucial for maintaining robust and flexible build pipelines .

Database migrations in a DevOps environment are challenging due to the need for maintaining data integrity and consistency while updates occur. Effective strategies to address these challenges include adopting the concept of 'separation of concerns,' ensuring that microservices and the data tier are handled independently. Automation tools and scripts can further streamline migration processes, reducing errors and downtime .

The Agile development model emphasizes iterative, incremental development with constant feedback loops, aligning well with the DevOps process which focuses on integrating development and IT operations to enhance efficiency and reliability. Key components that facilitate their integration include continuous delivery, Scrum, Kanban, and the delivery pipeline which help in managing bottlenecks and streamlining releases .

You might also like