DevOps Learning Outcomes
DevOps Learning Outcomes
DevOps Track
The work in this document was facilitated by the International Consortium for
Agile (ICAgile) and done by the contribution of various Agile Experts and
Practitioners. These learning outcomes are intended to help the growing Agile
community worldwide and as such this work is licensed under the following
license.
https://creativecommons.org/licenses/by/4.0/legalcode
NOTICES:
No warranties are given. The license may not give you all of the permissions
necessary for your intended use. For example, other rights such as publicity,
privacy, or moral rights may limit how you use the material.
PAGE 2
LICENSING INFORMATION
SPECIAL THANKS
ICAgile would like to give
special thanks to the following Track Authors:
Colin Garlick • Dominica DeGrandis • Gene Gotimer • Tim Guay
PAGE 3
SPECIAL THANKS
HOW TO READ THIS DOCUMENT
This document outlines the learning outcomes that must be addressed by accredited
training organizations intending to offer ICAgile certifications for each step in the
DevOps Track.
Each LO follows a particular pattern, described below.
PAGE 4
HOW TO READ THIS DOCUMENT
CONTENTS
2 LICENSING INFORMATION
3 SPECIAL THANKS
4 HOW TO READ THIS DOCUMENT
5 TABLE OF CONTENTS
7 FOUNDATIONS OF DEVOPS LEARNING OUTCOMES
7 1. THE CASE FOR DEVOPS
7 1.1. History of DevOps
7 1.2. Mindset and Principles
9 1.3. Cultural Challenges
10 2. CONFIGURATION MANAGEMENT
10 2.1. Version Control
11 2.2. Managing Configuration
11 3. CONTINUOUS INTEGRATION
11 3.1. Principles of Continuous Integration
12 3.2. Practices of Continuous Integration
13 3.3. Quality Assurance
14 4. CONTINUOUS DELIVERY
14 4.1. Definition of Continuous Delivery
14 4.2. Principles of Continuous Delivery
16 4.3. Practices of Continuous Delivery
16 4.4. Deployment Pipeline
19 5. OPERATIONS
19 5.1. Managing Infrastructure
20 5.2. Managing Databases
PAGE 5
CONTENTS
22 1.2. Continuous Integration (CI) as a Prerequisite to DevOps
23 1.3. Design and Architect Applications for DevOps
23 1.4. Identifying the Stages of the Pipeline
PAGE 6
CONTENTS
FOUNDATIONS OF DEVOPS (ICP-FDO)
LEARNING OBJECTIVES
1. THE CASE FOR DEVOPS
PAGE 7
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
DevOps principles describe criteria that allow you to make intelligent decisions
about how your organization will approach software delivery. The scope and
breadth of DevOps is sometimes summed up as C.A.L.M.S. -- Culture,
Automation, Lean, Metrics, Sharing.
PAGE 8
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
1.2.6. Continuous Improvement (Kaizen)
Rapid delivery and release cycles provide natural break points where the team can
review its processes, plans and products to improve them. Making lots of small
changes avoids the shock and effort of having to make sweeping changes all at
once, not to mention reducing people’s natural reluctance to change.
Explain the importance of continuously incorporating change in the processes
and practices of a DevOps organization. Provides guidance on establishing
feedback loops and metrics against which to gauge success.
1.3.2. Teams
The makeup of the project teams can have a profound impact on the success of
DevOps. Permanent cross-functional teams made up entirely of jacks-of-all-trades
with a strong understanding of the business and project goals are optimal. But
most teams will have a mix of senior and junior people, each with areas of
knowledge. The team as a whole will overall strengths in some areas and
weaknesses in others. Team members will join and leave over time.
Explain the value of long-term, cross-functional teams and discuss how to handle
individual abilities and weaknesses of team members.
PAGE 9
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
automated testing, automated deployment and other automated processes. If
these automated processes begin to experience problems, confidence in the entire
process will suffer and the DevOps model may begin to falter.
Explain the confidence aspect of automation in a delivery pipeline.
2. CONFIGURATION MANAGEMENT
PAGE 10
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
2.2. MANAGING CONFIGURATION
2.2.1. Application Configuration
Proper management of configuration information is crucial to allowing
environments to be deployed quickly. When an environment needs to be manually
configured after deployment it takes time and introduces unnecessary risk. On the
other hand, when configuration information is built into binaries or packaged with
binaries, those binaries must be recompiled or repackaged for each environment.
By automatically configuring software at deploy time or at run time, the same
binaries can be deployed to each environment and the system is ready for use
when it comes up.
Explain proper configuration techniques to support automated deploys, building
binaries once and supporting multiple environments.
3. CONTINUOUS INTEGRATION
PAGE 11
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
Continuous Integration is core to the DevOps philosophy. The goal of continuous
integration is that software is in a working state at all times. Code changes from
the developers on the team are frequently integrated and automated tests are run
to demonstrate that the code still works after integration. Bugs and problems are
caught quickly and fixed immediately.
Explain the principles of continuous integration and why they are important. It
must strongly emphasize the importance of automated testing as part of the build.
If you do not have automated tests, you are not doing continuous integration.
PAGE 12
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
to see that a build worked, the tests ran successfully, the static analysis did not
find any critical errors or too many less critical ones, etc. And on top of that, you
need to act on the feedback. When a build breaks, you need find out and to fix it
right away. Getting the software back to a working state is the team’s priority.
Explain the value and purpose of continuous feedback.
PAGE 13
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
team will find that some bugs inevitably creep through to later stages, even into
production. And teams that are supporting legacy software may have defect
backlogs from the beginning. There are a number of approaches to dealing with
the defect backlog, from dropping everything immediately to fix the bug, to treating
it like a feature and prioritizing it similarly, to accepting the risk and consequences
and living with the defect as-is.
Explain some of the approaches for dealing with defects that are found late in or
after the development cycle, and how to handle that in a continuous delivery
model.
4. CONTINUOUS DELIVERY
PAGE 14
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
that does not require a human decision to be made is a good candidate for
automation.
Explain the value of automating processes and the approach to bring automation
into an environment.
PAGE 15
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
4.2.7. Everybody is Responsible for the Delivery Process
Core to DevOps is the concept of shared responsibility. Delivery issues can’t be
”their problem,” the entire team must be working to fix them. Work can’t be thrown
over the wall from one team to another, the whole team must be working together
from the beginning. Everyone needs to help remove the barriers between the
groups involved in development and operations and work together towards the
common goal of delivering software. That means everyone will need to collaborate
and to be able to see the status of the software at all times.
Explain this central concept of collaboration and shared responsibility.
PAGE 16
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
running and that basic functions work. External services that the application
depends on, such as a database or authentication service, could also be checked.
Explain what a server validation smoke test is and why it should be used.
PAGE 17
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
in the deployment pipeline that team members are not wasting their time testing
software that will ultimately be rejected as a viable production candidate through
automated checks.
Explain that manual testing is a valid stage in the deployment pipeline and to
discuss when to perform it.
PAGE 18
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
Even simple software projects often involve dependencies between systems.
Orchestration is the term given to coordinating the different dependencies, whether
the pieces have to be deployed in a certain order, or information from one system
is needed in order to deploy the other one, or just that information that is needed
for the deploy but not known until after the deploy is underway. It could even be
that deploying one system will affect but cannot be allowed to disrupt other
systems.
Explain methods for orchestrating deployments and when orchestration might be
needed.
5. OPERATIONS
5.1.3. Containers
Lightweight container technologies are growing in popularity for enabling DevOps
processes. They are generally smaller and faster than their virtual machine
counterparts, better enabling rapid feedback cycles and allowing for better
standardization across development, test and deployment environments.
Describe the concept of containers and discuss how they differ from virtual
machines.
PAGE 19
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
management are also among the activities that must be considered when creating
dynamic environments, and they are often hard to define in terms of a single
system.
Explain how the concept of infrastructure as code extends beyond individual
systems, and how automation can be used to manage and provision
infrastructure.
5.1.5. Scaling
Scaling systems includes adding systems in clusters to increase throughput and
performance, as well as being able to handle periodic spikes in load. It can include
separating concerns logically, such as offloading a database server to a separate
system. Your automated DevOps pipeline needs to be able to work across various
scaling architectures to deploy your software into the various environments. As
those environments are expanded and scaled up, the automation needs to be able
to support that.
Explain how different scaling architectures may impact the automation and
deployment pipeline. This includes discussing how to make flexible choices early
to allow for future scaling needs.
5.1.6. Monitoring
Feedback is critical throughout the deployment pipeline, but it can’t stop there.
Even once the software is deployed to production, it must be monitored and
feedback presented to the team so that everyone can determine the health and
status of the software in a given environment at any time. System health must be
monitored (e.g., is the system alive, how much hard drive space is available) as
well as application health (e.g., is the application running, are users using it, is a
particular feature generating errors). Proper monitoring and dashboarding the
results are important for both proactive and reactive planning and decisions.
Explain the role of monitoring in different environments and the types of tools and
techniques that can be used.
PAGE 20
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
To run meaningful tests involving a data, some sort of test data is usually
necessary. Good tests are fast, independent of order and other tests failing or
succeeding and can be run multiple times with repeatable results. Different types
of tests may, in fact, need different sets of data. There are several good techniques
for achieving each of these requirements.
Explain techniques for dealing with database tests and test data.
PAGE 21
FOUNDATIONS OF DEVOPS LEARNING OBJECTIVES
IMPLEMENTING DEVOPS (ICP-IDO)
LEARNING OBJECTIVES
1. PLANNING THE PIPELINE
PAGE 22
IMPLEMENTING DEVOPS LEARNING OBJECTIVES
expanding the definition of done to running in production environments, or as
close to production as possible.
1.3.3. Security
Design for security from day one.
Explain how security needs to be designed in at the beginning, rather than tested
at the end. Plan how this will be verified in the pipeline.
PAGE 23
IMPLEMENTING DEVOPS LEARNING OBJECTIVES
Explain the importance of equal involvement of both Development and Operations
in the design of the pipeline, and that both groups' concerns carry equal weight.
Explore how to ensure that both groups have equal say, and how to encourage
cooperation and address conflicting requirements.
PAGE 24
IMPLEMENTING DEVOPS LEARNING OBJECTIVES
Review various patterns for releasing systems, such as blue-green deployment,
discussing the benefits and challenges of each. Explain the impact of each on the
database, including schema migrations and transactions in-flight.
2.2.3. Orchestration
Managing the complete workflow, not just the individual parts.
Show how coordinating and automating the overall process is just as important as
automating the individual steps. Describe how exception conditions, including
rollbacks, can and should be included in the process.
PAGE 25
IMPLEMENTING DEVOPS LEARNING OBJECTIVES
Show the various log types and explain which log type and level are used for each
phase of the pipeline.
3.3. TELEMETRY
3.3.1. Types of Telemetry
Different types of telemetry and instrumentation apply to different phases of the
pipeline.
Show what types of telemetry are available for each phase of the pipeline as well
as how to implement them. Show how to integrate telemetry with logging.
PAGE 26
IMPLEMENTING DEVOPS LEARNING OBJECTIVES
Show the importance of shared development and operations as foundational to
implementing DevOps. Explore best practices for sharing that responsibility.
PAGE 27
IMPLEMENTING DEVOPS LEARNING OBJECTIVES
4. MATURING THE PIPELINE
PAGE 28
IMPLEMENTING DEVOPS LEARNING OBJECTIVES