3957 - Module 1 - Foundations of DevOps I
3957 - Module 1 - Foundations of DevOps I
3957 - Module 1 - Foundations of DevOps I
1
Course Plan
Module Titles
Current Focus: Module 1 – DevOps Introduction: Core Values and Principles
Module 2 – The Building Blocks of DevOps
Module 3 – Organizational Culture and Operating Model
Module 4 – DevOps Life Cycle of Software Development (Phase 1 To 4)
Module 5 – DevOps Life Cycle of Software Development (Phase 5 To 8)
Module 6 – DevOps Transformation Journey, Change Management and Metrics
2
Learning Outcomes for this Course
3
Course Evaluation
Note: Your Instructor will place you into groups in Quercus. You will work in
your designated group for the entire duration of this class to complete your
weekly assignment and final paper.
4
Learning Outcomes for this Module
• Define DevOps and its benefits to the software development life cycle
• Identify and describe the core values of DevOps (CALMS)
• Explain the principles of DevOps from the “Three Ways” perspective
• Describe how the core values and principles of DevOps benefit
organizations
5
Topics for this Module
• Introduction to DevOps and Its Benefits
• DevOps Core Values (CALMS)
• Principles of DevOps (Three Ways)
6
Required Readings
7
Recommended Readings
8
Module 1 - Section 1
Introduction to DevOps
and Its Benefits
9
What is DevOps?
• DevOps is a set of practices that combines software development and
IT operations. It aims to shorten the systems development life cycle
and provide continuous delivery with high software quality. DevOps is
complementary with Agile software development; several DevOps
aspects came from the Agile methodology.
• It is a software development philosophy where a culture of
collaboration, ownership, continuous learning and improvement is
encouraged in the software development lifecycle from ideation to
production.
• DevOps can enable you to reduce interpersonal friction, eliminate
bottlenecks, improve collaboration, increase job satisfaction and
enhance team productivity.
10
What is DevOps? (continued)
• The focus of DevOps is not on processes or tools. Those are important
to help organizations design and architect how they will operate and
run their software development business, but the main intent of
DevOps is to emphasize the importance of culture.
• The core values and principles discussed in subsequent slides are the
ingredients to creating the right culture and mindset which will allow
DevOps to be successful in organizations.
11
History of DevOps
• DevOps was developed when people and organizations realized that
they needed to innovate and automate processes on the technology
side. The DevOps movement started in the year 2001 with the debut of
Agile software development. Organizations increasingly felt the need
to improve their processes and deliver high quality software more
frequently.
• Although Agile revolutionized software development in many ways, it
failed to address the conflict between developers and operations staff.
A silo mentality existed between developers and operations staff: once
developers passed on their code to operations staff, they felt no
obligation to ensure what got deployed was supported, and there was
no ownership end to end of the delivery of the software.
12
History of DevOps (Continued)
• In 2008, Andrew Clay Shafer spoke with Patrick Debois about his
frustrations with the constant conflict between developers and
operations staff. Together, they launched the first DevOpsDays event
in Belgium to create a better and more Agile way of approaching
software development. This evolution of Agile took hold, and DevOps
has since enabled companies around the world to produce good
quality software faster and cheaper. DevOps is not a fad. It is a widely
accepted engineering philosophy.
• DevOps' rise in popularity grew with the publication of books like The
Phoenix Project by authors Gene Kim, George Spafford and Kevin
Behr. Published in 2013, the book is a narrative-style novel that follows
a fictional American company going through a digital transformation.
13
DevOps Benefits to Software Delivery
There are many benefits that DevOps can bring to the discipline of
software delivery. Some key benefits are listed below:
1. Achieving Agility – it is important for organizations to be Agile to
beat market competition and deliver software faster. Through
DevOps, organizations can become more Agile which will allow to
deliver software faster.
2. Removing Silos – DevOps practices fosters collaboration and
removes the silo mentality between development and operations
teams. There is more interaction between various teams and
increased collaboration to innovate and solve problems. This
increases trust, transparency and joint ownership of a technology
product.
14
DevOps Benefits to Software Delivery (continued)
3. Efficient and Faster Deployment – If you are using DevOps
approaches then you will be able to deploy applications and
systems more efficiently and quicker. You will continue to look for
ways to make your deployment processes better organized and
reduce waste. This makes it easier to deploy products and services
faster.
4. Savings – Through DevOps, a business can automate repetitive
tasks without worrying too much about any errors. For example,
performance and regression testing can quickly bring about small
changes. Frequent rollovers and backups in the development chain
will lead to a more stable and robust process. When you have such
automation in place, the organization can benefit by saving a large
chunk of its manual costs. This therefore directly translates to
saving money.
15
DevOps Benefits to Software Delivery (continued 2)
5. Continuous Delivery – Communication and collaboration are two
main attributes of DevOps. In organization where these two
attributes are improved, there is instant improvement in
development cycles. This means that after they go through a series
of tests, the codes are quickly released to the end users. There is
very little or no gap between gathering requirements and the
production cycle, which helps to create a massive shift in production
cycle. The organization can now synchronize IT mechanisms with
production cycles, thereby able to continuously deliver software
efficiently.
16
DevOps Benefits to Software Delivery (continued 3)
6. Reduce Defects – Defects are your worst enemy in the production
environment. Through iterative development, modular programming
and collaboration, teams can minimize any defects, thereby
developing a highly-effective method to handle or overcome
defects.
17
Case Study: DevOps Benefits
Read the case study below and consider the following questions:
1. Did you understand the benefits outlined in the case study?
2. Can you list any other benefits of DevOps?
Case Study: A DevOps case study at one of the world’s largest banks
18
Module 1 - Section 2
19
What are the DevOps Core Values?
As we begin to become more familiar with DevOps, we will need to
understand its core values as defined by CALMS. It stands for culture,
automation, lean, measurement and sharing. These core values will
help us to understand the principles of DevOps and help assess DevOps
success as we apply these values and principles in our organization.
20
What are the DevOps Core Values? (continued)
2. Automation – Software developers write codes that computers
understand and do the jobs that people don’t want to do. Automation of
code builds, testing, deployments and infrastructure provisioning add
value and bring efficiencies to how software developers work.
Automation is applied wherever possible to bring those efficiencies.
3. Lean – Lean does not only apply to manufacturing. It refers to how
developers and organizations are constantly looking for ways to
remove non-value added activities in the work they do. Another aspect
of lean is how it keeps to the goal of continuous improvement,
encouraging growth mindset and improvement in processes across the
organization.
21
What are the DevOps Core Values? (continued 2)
4. Measurement – There is a famous saying that if you can not measure,
you cannot manage. Data is critical to DevOps. Measuring progress
through data will inform all aspect of your organization’s activities. Here
data to measure refers to how you are performing in the current state
and what adjustments are needed, or what can be done differently to
improve in order to reach a future state. You are continuously trying to
improve your way of work and support improvements with data to help
individuals, teams, customers and organizations to be successful. You
are also celebrating success as you continue to measure and see
improvements in all facets of the organization, whether people, process
or technology.
22
What are the DevOps Core Values? (continued 3)
5. Sharing – DevOps came into existence because of the conflict and silo
mentality between development and operations teams. They lacked
common ground and were incentivized based on different goals and
objectives. They did not see things eye to eye and or bother
communicating with each other, making it difficult to solve problems.
DevOps encourages teams to break this silo mentality and work in
partnership with each other. It helps create an environment in which
both teams teach and learn from each other and feel empowered, thus
building a single team approach through which everyone contributes.
23
Case Study: DevOps Core Values
Read the article below. Choose 2 out of the 6 companies described and
consider the following questions:
1. What specific core values are most prevalent in the actions taken by
the company?
2. Where is there room for them to improve?
24
Module 1 - Section 3
Principles of DevOps
(Three Ways)
25
The Three Ways
• In addition to Core Values discussed, DevOps is also grounded in
several foundational principles. These are often referred to as the ‘The
Three Ways’
• The Three Ways principle has been introduced by Gene Kim in his
book, DevOps Handbook. The subsequent slides will discuss these in
greater detail.
26
First Way - Systems Thinking
• The First Way enables a fast, left to right flow of work from Development
to Operations to the customer. In order to maximize flow, we need to
make work visible, reduce batch sizes and intervals of work, build in
quality by preventing defects from being passed to downstream work
centres or teams, and constantly optimize for the global goals.
• By speeding up flow through the technology value stream, we reduce
the lead time required to fulfill internal or customer requests, especially
the time required to deploy code into the production environment. By
doing this, we increase the quality of work as well as our throughput,
and boost our ability to outperform the competition.
• The resulting practices include continuous build, integration, test, and
deployment processes; creating environments on demand; limiting work
in process (WIP); and building systems and organization that are safe to
change.
30
Week 1: Weekly Assignment (15%)
• In your designated group, assess an organization of your choice and
describe if CALMS core values and the Three Ways principles are
present.
• List and provide examples to support your assessment. If not, then
explain the current ways you are doing software delivery.
• No more than 3 pages.
Note: Group members are welcome to pick one of their current
organizations for the purpose of completing this assignment.
The group needs to use the same organization for all subsequent weekly
assignments and the final paper.
31
Any questions?
32
Thank You
Thank you for choosing the University of Toronto
School of Continuing Studies
33
Follow us on Social
facebook.com/uoftscs
@uoftscs
linkedin.com/company/university-of-toronto-school-of-continuing-studies
@uoftscs
34