DevOps on Cloud Syllabus
Unit 1:An introduction to DevOps, Gain insights of the DevOps environment,
DevOps Vs Agile, DevOps Ecosystem.
What Is DevOps?
DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate the
processes between software development and IT teams. It emphasizes team empowerment,
cross-team communication and collaboration, and technology automation.
The DevOps movement began around 2007 when the software development and IT operations
communities raised concerns about the traditional software development model, where
developers who wrote code worked apart from operations who deployed and supported the code.
The term DevOps, a combination of the words development and operations, reflects the
process of integrating these disciplines into one, continuous process.
How does DevOps work?
A DevOps team includes developers and IT operations working collaboratively throughout the
product lifecycle, in order to increase the speed and quality of software deployment. It’s a new
way of working, a cultural shift, that has significant implications for teams and the organizations
they work for.
Under a DevOps model, development and operations teams are no longer “siloed.” Sometimes,
these two teams merge into a single team where the engineers work across the entire application
lifecycle — from development and test to deployment and operations — and have a range of
multidisciplinary skills.
DevOps teams use tools to automate and accelerate processes, which helps to increase reliability.
A DevOps toolchain helps teams tackle important DevOps fundamentals including continuous
integration, continuous delivery, automation, and collaboration.
DevOps values are sometimes applied to teams other than development. When security teams
adopt a DevOps approach, security is an active and integrated part of the development process.
This is called DevSecOps.
The DevOps lifecycle
Because of the continuous nature of DevOps, practitioners use the infinity loop to show how the
phases of the DevOps lifecycle relate to each other. Despite appearing to flow sequentially, the
loop symbolizes the need for constant collaboration and iterative improvement throughout the
entire lifecycle.
The DevOps lifecycle consists of eight phases representing the processes, capabilities, and tools
needed for development (on the left side of the loop) and operations (on the right side of the
loop). Throughout each phase, teams collaborate and communicate to maintain alignment,
velocity, and quality.
Discover
Building software is a team sport. In preparation for the upcoming sprint, teams must workshop to
explore, organize, and prioritize ideas. Ideas must align to strategic goals and deliver customer
impact. Agile can help guide DevOps teams.
Plan
DevOps teams should adopt agile practices to improve speed and quality. Agile is an iterative
approach to project management and software development that helps teams break work into smaller
pieces to deliver incremental value.
Build
Git is a free and open source version control system. It offers excellent support for branching,
merging, and rewriting repository history, which has led to many innovative and powerful workflows
and tools for the development build process.
Test
Continuous integration (CI) allows multiple developers to contribute to a single shared repository.
When code changes are merged, automated tests are run to ensure correctness before integration.
Merging and testing code often help development teams gain reassurance in the quality and
predictability of code once deployed.
Deploy
Continuous deployment (CD) allows teams to release features frequently into production in an
automated fashion. Teams also have the option to deploy with feature flags, delivering new code to
users steadily and methodically rather than all at once. This approach improves velocity, productivity,
and sustainability of software development teams.
Operate
Manage the end-to-end delivery of IT services to customers. This includes the practices involved in
design, implementation, configuration, deployment, and maintenance of all IT infrastructure that
supports an organization’s services.
Observe
Quickly identify and resolve issues that impact product uptime, speed, and functionality.
Automatically notify your team of changes, high-risk actions, or failures, so you can keep services on.
Continuous feedback
DevOps teams should evaluate each release and generate reports to improve future releases. By
gathering continuous feedback, teams can improve their processes and incorporate customer feedback
to improve the next release.
What are the benefits of DevOps?
In Atlassian’s 2020 DevOps Trends survey, 99 percent of respondents said that DevOps had a
positive impact on their organization. The benefits of DevOps include faster and easier releases,
team efficiency, increased security, higher quality products, and consequently happier teams and
customers.
Speed
Teams that practice DevOps release deliverables more frequently, with higher quality and stability. In
fact, the DORA 2019 State of DevOps report found that elite teams deploy 208 times more frequently
and 106 times faster than low-performing teams. Continuous delivery allows teams to build, test, and
deliver software with automated tools.
Improved collaboration
The foundation of DevOps is a culture of collaboration between developers and operations teams,
who share responsibilities and combine work. This makes teams more efficient and saves time related
to work handoffs and creating code that is designed for the environment where it runs.
Rapid deployment
By increasing the frequency and velocity of releases, DevOps teams improve products rapidly. A
competitive advantage can be gained by quickly releasing new features and repairing bugs.
Quality and reliability
Practices like continuous integration and continuous delivery ensure changes are functional and safe,
which improves the quality of a software product. Monitoring helps teams keep informed of
performance in real-time.
Security
By integrating security into a continuous integration, continuous delivery, and continuous deployment
pipeline, DevSecOps is an active, integrated part of the development process. Security is built into the
product by integrating active security audits and security testing into agile development and DevOps
workflows.
What are the challenges of adopting DevOps?
Habits are hard to break. Teams entrenched in siloed ways of working can struggle with, or even
be resistant to, overhauling team structures to embrace DevOps practices. Some teams may
mistakenly believe new tools are sufficient to adopt DevOps. Yet, DevOps is a combination of
people, tools, and culture. Everyone on a DevOps team must understand the entire value stream
— from ideation, to development, to the end user experience. It requires breaking down silos in
order to collaborate throughout the product lifecycle.
DevOps practices
Continuous integration
Continuous integration is the practice of automating the integration of code changes into a
software project. It allows developers to frequently merge code changes into a central
repository where builds and tests are executed. This helps DevOps teams address bugs
quicker, improve software quality, and reduce the time it takes to validate and release new
software updates.
Learn about continuous integration
Continuous delivery
Continuous delivery expands upon continuous integration by automatically deploying code
changes to a testing/production environment. It follows a continuous delivery pipeline,
where automated builds, tests, and deployments are orchestrated as one release workflow.
Learn about continuous delivery
Situational awareness
It is vital for every member of the organization to have access to the data they need to do
their job as effectively and quickly as possible. Team members need to be alerted of failures
in the deployment pipeline — whether systemic or due to failed tests — and receive timely
updates on the health and performance of applications running in production. Metrics, logs,
traces, monitoring, and alerts are all essential sources of feedback teams need to inform
their work.
Learn about DevOps metrics
Automation
Automation is one of the most important DevOps practices because it enables teams to
move much more quickly through the process of developing and deploying high-quality
software. With automation the simple act of pushing code changes to a source code
repository can trigger a build, test, and deployment process that significantly reduces the
time these steps take.
Learn about DevOps automation best practices
Infrastructure as Code
Whether your organization has an on-premise data center or is completely in the cloud,
having the ability to quickly and consistently provision, configure, and manage
infrastructure is key to successful DevOps adoption. Infrastructure as Code (IaC) goes
beyond simply scripting infrastructure configuration to treating your infrastructure
definitions as actual code: using source control, code reviews, tests, etc.
Learn about Infrastructure as Code
Microservices
Microservices is an architectural technique where an application is built as a collection of
smaller services that can be deployed and operated independently from each other. Each
service has its own processes and communicates with other services through an interface.
This separation of concerns and decoupled independent function allows for DevOps
practices like continuous delivery and continuous integration.
Monitoring
DevOps teams monitor the entire development lifecycle — from planning, development,
integration and testing, deployment, and operations. This allows teams to respond to any
degradation in the customer experience, quickly and automatically. More importantly, it
allows teams to “shift left” to earlier stages in development and minimize broken
production changes.
5 Key DevOps principles
To realize the full potential of DevOps, teams should follow key DevOps principles
DevOps is more than just development and operations teams working together. It’s more than
tools and practices. DevOps is a mindset, a cultural shift, where teams adopt new ways of
working.
A DevOps culture means developers get closer to the user by gaining a better understanding of
user requirements and needs. Operations teams get involved in the development process and add
maintenance requirements and customer needs. It means adhering to the following key principles
that help DevOps teams deliver applications and services at a faster pace and higher quality than
organizations using the traditional software development model.
Collaboration
The key premise behind DevOps is collaboration. Development and operations teams
coalesce into a functional team that communicates, shares feedback, and collaborates
throughout the entire development and deployment cycle. Often, this means development
and operations teams merge into a single team that works across the entire application
lifecycle.
The members of a DevOps team are responsible for ensuring quality deliverables across
each facet of the product. This leads to more ‘full stack’ development, where teams own the
complete backend-to-frontend responsibilities of a feature or product. Teams will own a
feature or project throughout the complete lifecycle from idea to delivery. This enhanced
level of investment and attachment from the team leads to higher quality output.
Automation
An essential practice of DevOps is to automate as much of the software development
lifecycle as possible. This gives developers more time to write code and develop new
features. Automation is a key element of a CI/CD pipeline and helps to reduce human errors
and increase team productivity. With automated processes, teams achieve continuous
improvement with short iteration times, which allows them to quickly respond to customer
feedback.
Continuous Improvement
Continuous improvement was established as a staple of agile practices, as well as lean
manufacturing and Improvement Kata. It’s the practice of focusing on experimentation,
minimizing waste, and optimizing for speed, cost, and ease of delivery. Continuous
improvement is also tied to continuous delivery, allowing DevOps teams to continuously
push updates that improve the efficiency of software systems. The constant pipeline of new
releases means teams consistently push code changes that eliminate waste, improve
development efficiency, and bring more customer value.
Customer-centric action
DevOps teams use short feedback loops with customers and end users to develop products
and services centered around user needs. DevOps practices enable rapid collection and
response to user feedback through use of real-time live monitoring and rapid deployment.
Teams get immediate visibility into how live users interact with a software system and use
that insight to develop further improvements.
Create with the end in mind
This principle involves understanding the needs of customers and creating products or
services that solve real problems. Teams shouldn’t ‘build in a bubble’, or create software
based on assumptions about how consumers will use the software. Rather, DevOps teams
should have a holistic understanding of the product, from creation to implementation.
Devops Vs Agile : Please do refer the link below
https://www.atlassian.com/devops/what-is-devops/agile-vs-devops
DevOps Ecosystem: A Comprehensive Overview
The DevOps ecosystem consists of a broad range of tools, practices, and methodologies that
help automate and streamline software development, deployment, and infrastructure
management. Here’s a structured breakdown:
1️⃣ Core Components of DevOps
The DevOps ecosystem is built on several fundamental principles:
● Continuous Integration (CI): Developers frequently merge code changes into a shared
repository.
● Continuous Deployment (CD): Automates code release to production.
● Infrastructure as Code (IaC): Manages infrastructure using configuration files and
scripts.
● Monitoring & Observability: Real-time tracking of applications and infrastructure.
● Security & Compliance: Ensures secure coding practices, vulnerability scanning, and
compliance.
2️⃣ DevOps Tools & Technologies
Different tools power the DevOps ecosystem, categorized as follows:
🔹 Version Control Systems (For Source Code Management)
● Git – Widely used distributed version control system.
● GitHub – Cloud-based Git repository with CI/CD integration.
● GitLab – Git repository with built-in CI/CD and DevSecOps features.
● Bitbucket – Git repository service with Jira integration.
🔹 CI/CD Pipelines (For Automation & Deployment)
● Jenkins – Open-source automation tool for building CI/CD pipelines.
● GitHub Actions – CI/CD automation directly within GitHub.
● GitLab CI/CD – Integrated with GitLab repositories for seamless automation.
● CircleCI – Cloud-based CI/CD service with fast deployment capabilities.
● Azure DevOps – Microsoft’s DevOps suite for CI/CD and project management.
🔹 Configuration Management (For Automating Infrastructure)
● Ansible – Agentless configuration management tool.
● Puppet – Declarative configuration management.
● Chef – Uses recipes and cookbooks for managing infrastructure.
🔹 Containerization & Orchestration (For Scaling & Deployment)
● Docker – Containerization platform for creating lightweight, portable applications.
● Kubernetes – Orchestrates containerized applications at scale.
● OpenShift – Red Hat’s Kubernetes distribution with enhanced security.
🔹 Monitoring & Logging (For Observability & Issue Resolution)
● Prometheus – Open-source monitoring for metrics collection.
● Grafana – Visualizes monitoring data from multiple sources.
● ELK Stack (Elasticsearch, Logstash, Kibana) – Logging and analytics stack.
● Datadog – Cloud monitoring and security platform.
🔹 Cloud Platforms (For Hosting & Scaling)
● Amazon Web Services (AWS) – Broad range of cloud computing services.
● Microsoft Azure – Enterprise-grade cloud platform.
● Google Cloud Platform (GCP) – Cloud infrastructure with AI/ML integrations.
3️⃣ DevOps Best Practices
✔️ Shift Left Testing – Test early and often to catch bugs sooner.
✔️ Microservices Architecture – Break applications into smaller, independent services.
✔️ IaC (Infrastructure as Code) – Automate infrastructure provisioning.
✔️ Immutable Infrastructure – Deploy applications on fixed, unchangeable environments.
✔️ Observability & Incident Response – Implement real-time monitoring and alerts.
4️⃣ Challenges in DevOps Adoption
⚡ Cultural Resistance – Teams may be resistant to change.
⚡ Security Risks – Automated deployments need security controls.
⚡ Legacy System Integration – Modernizing legacy applications is complex.
⚡ Tool Sprawl – Managing multiple DevOps tools can be overwhelming.