Starting A Devops Transformation: Breaking Down Walls Between People, Process, and Products
Starting A Devops Transformation: Breaking Down Walls Between People, Process, and Products
com
Starting a DevOps
Transformation
Containers: Learn the lingo and get the basics in this quick and
easy containers primer.
Go: Find out about many uses of the go executable and the most
important packages in the Go standard library.
About Opensource.com
What is Opensource.com?
Willy-Peter Schaub
Website: https://willys-cave.ghost.io
https://www.agents-of-chaos.org
Twitter: https://twitter.com/wpschaub
Introduction
Chapters
if you want a highly cohesive team, keep your team size with others, while the vertical bar represents the depth of
smaller than 12. a single expertise. Assume we have a three-person team
Amazon CTO Werner Vogels’ famous quote “You build it, comprised of experts in development, testing, and user ex-
you run it” [5] is reminiscent of the great thematic quote from perience. Each has his or her own T-shaped skills. When
Spider-Man: “With great power comes great responsibility.” we combine the three experts’ genetic material, we get a
We need to foster ownership, accountability, and responsi- joint T-shaped team with specialization and broad exper-
bility. Everyone in the team must be empowered, trained to tise that can design, develop, test, and support features
run the business, responsible, and on call. When there is a as a cross-functional team. The culture of learning not only
live site incident, all designated response individuals, which ensures that the team’s combined broad and specialized
expertise is aligned with business needs, but it also em-
powers and motivates the team and its members. Infor-
EPIPHANY: The 2am wakeup call is the mation sharing and brown bag events are two excellent
team-building tools.
best motivation for a production-ready Shortage of testers? No problem; with the support of the
mindset. Pull any engineer test expert, the development and user experience experts
can temporarily blend into a test role. When testers auto-
into an early morning mate testing, learn and share good coding practices, help
live site incident a few improve feedback loops, and help the team broaden their
skills beyond unit and regression testing, the line between
times, and the quality bar developers and testers begins to blur. The developer and
magically shall improve. tester roles evolve and merge into the engineer role.
This raises the question: “What if team members refuse to
includes members from the associated feature team, must be cross-functional?” There is no place for heroes or knights
join the 2am call to gather evidence, investigate, and reme- in shining armor in an effective cross-functional team—find
diate at the root-cause level. them another home.
The 2am wakeup call is the best motivation for a produc- Inspire and celebrate success as a team and an orga-
tion-ready mindset. Pull any engineer into an early morning nization whenever achieving a goal. It motivates the team,
live site incident a few times, and the quality bar magically fuels team spirit, and acts as a major source of inspiration
shall improve. for others to excel. Your team can enjoy a round of nachos
Cross-functional is another key part of genetic informa- to confirm a job well done, play and learn with a game of
tion for an effective team blueprint. Contrary to common GetKanban, encourage team members to celebrate with
belief, it does not imply that everyone in the team can their family after a hectic sprint, or review and celebrate fast
do everything. Instead, as shown in the graph below, the feedback as part of your regular standups. The options are
cross-functional team is based on the concept of T-shaped endless—just ensure you spend time together as a team.
skills or T-shaped persons. The horizontal bar of the T For example, our scrum master always reflects on our
stands for broad expertise and the ability to collaborate achievements whether we pass or fail a sprint. It eventually
dawned on me that it not only bonds us as a team, but others So, let’s get back to the greatest anti-pattern I mentioned.
aspire to be like our team. Effective teams, who are autonomous, empowered, self-or-
Finally, remember to keep it simple to reduce risk, cost of ganizing, and self-managed are based on trust, inspiration,
training, process, and products. Enable the just barely good and support of their leadership. If any of these important pil-
enough (JBGE) approach. Simplicity positively affects main- lars is missing, toxicity rises, passion declines, and you are
tainability and enables cross-functional teams to collaborate an eyewitness to the most destructive anti-pattern that will
and fill in for each other more effectively. doom any diverse, collaborative, and effective team.
You might be wondering why none of the above feels
like a new revelation. As discussed in Analyzing the DNA Links
of DevOps [6], we believe DevOps has inherited from de- [1] https://github.com/wpschaub/DevOps-mindset-essentials
cades of practices and learning, including waterfall, lean [2] https://en.wikipedia.org/wiki/Sati_(practice)
thinking, agile, and “real-world” 2am live site incident [3] https://en.wikipedia.org/wiki/Robin_Dunbar
calls. We are not inventing anything new; instead, we con- [4] http://www.uvm.edu/~pdodds/files/papers/others/1993/
tinue to reflect, learn, and streamline our blueprint. The dunbar1993a.pdf
DevOps mindset is based on a few matured foundations, [5] https://queue.acm.org/detail.cfm?id=1142065
and DevOps lights up when the team is razor-focused on [6] https://opensource.com/article/18/11/analyzing-devops-
delivery, telemetry, support in production, and (most im- dna-traces-waterfall-and-other-frameworks
portantly) bonding together as a team. A team that doesn’t
Adapted from “Blueprint for a team with a DevOps mindset” on Opensource.com,
enjoy being together is not a team; they are a group of published under a Creative Commons Attribution Share-Alike 4.0 International
individuals told to work together. License at https://opensource.com/article/18/12/blueprint-team-devops-mindset.
DevOps transformation:
Key differences in small, midsize,
and large organizations
When embracing a DevOps mindset, does an organization’s size matter?
Midsize organizations
Midsize organizations’
rising resources and bud-
get often create an envi-
ronment where politics,
DevOps patterns in organizations by size policies, and technical
governance raise their
of the community said in a poll about how size affects the ugly heads. You are likely to find a focused IT operations
ease of transforming. team, one or a few engineering teams, and the dreaded
divide between development and operations. These are si-
Small and emerging organizations loed environments where development builds the solutions
In small organizations, management and engineering lines and IT ops supports the infrastructure and solutions.
of responsibility tend to blur, which naturally creates a lean Midsize organizations must focus on breaking down the si-
environment. Similarly, because resources are scarce, en- los, creating a common language, and establishing technical
gineering typically wears multiple technical and operation- governance that will unite the business, development, and
al hats, which organically creates cross-functional teams operations leadership and engineering. Talking about mani-
that are accountable for their solutions. Also, there is usu- festos (instead of governance) will reduce the angst and re-
ally an abundance of passion and appetite for new prod- sistance from engineering.
ucts and processes in small and emerging organizations, Consider the Temporary DevOps Team Skelton de-
which makes them ideal candidates for a transformation to scribes in the “team structure” article linked above. It is
a DevOps mindset. In addition, the DevOps transformation a good, albeit temporary strategy to bring dev and ops
is becoming a necessity to compete with larger competitors. closer together.
As management and engineering in small organizations
are lean, it is important to ensure there is a clear vision, engi- Large and established organizations
neering is empowered and accountable, the line of autonomy Few of us have the luxurious resources and budgets of
is respected, and the feedback and fail-fast processes are large organizations such as Amazon, Facebook, Google,
active. There also needs to be a clear “2 AM call” process or Microsoft. Large organizations have the diversity, ex-
for when a live site incident impacts the user experience— perience, and ability to divide their operations and devel-
in many cases, even the
CEO of a small organi-
zation must be on the
standby roster. Engineers
who are unwilling to ful-
fill a cross-functional role
are a risk for these orga-
nizations. Engineers must
have the right attitude, and
some may need to find an-
other home (within the or-
ganization or without). DevOps anti-patterns in organizations by size
Analyzing the
DNA of DevOps
How have waterfall, agile, and other development frameworks
shaped the evolution of DevOps? Here’s what we discovered.
If you were
to analyze the DNA of
ways. The software devel-
opment lifecycle is becom-
ing an increasingly complex
DevOps, what would you system of services and mi-
find in its ancestry report? croservices, both intercon-
This chapter is not a meth- nected and instrumented.
odology bake-off, so if you As DevOps is pushed fur-
are looking for advice or a ther and faster than ever,
debate on the best approach the speed of change is wip-
to software engineering, ing out slower traditional
you can stop reading here. methodologies like waterfall.
Rather, we are going to explore the genetic sequences We are not slamming the waterfall approach—many or-
that have brought DevOps to the forefront of today’s digital ganizations have valid reasons to continue using it. How-
transformations. ever, mature organizations should aim to move away from
Much of DevOps has evolved through trial and error, as wasteful processes, and indeed, many startups have a
companies have struggled to be responsive to custom- competitive edge over companies that use more tradition-
ers’ demands while improving quality and standing out in al approaches in their day-to-day operations.
an increasingly competitive marketplace. Adding to the Ironically, lean, Kanban [1], continuous, and agile prin-
challenge is the transition from a product-driven to a ser- ciples and processes trace back to the early 1940’s, so
vice-driven global economy that connects people in new DevOps cannot claim to be a completely new idea.
Continuous delivery
Kaizen inspired the development of processes and tools
to automate production. Companies were able to speed
up production and improve the quality, design, build, test,
and delivery phases by removing waste (including culture
and mindset) and automating as much as possible using
machines, software, and robotics. Much of the Kaizen
philosophy also applies to lean business and software
practices and continuous delivery deployment for DevOps
principles and goals.
Lean thinking
Although lean thinking dates to the Venetian Arsenal in the Agile
1450s, we start the clock when Toyota created the Toyota The Manifesto for Agile Software Development [5] appeared
Production System [3], developed by Japanese engineers in 2001, authored by Alistair Cockburn, Bob Martin, Jeff
between 1948 and 1972. Toyota published an official de- Sutherland, Jim Highsmith, Ken Schwaber, Kent Beck, Ward
scription of the system in 1992. Cunningham, and others.
Disciplined agile We are looking at history dating back 80, 48, 26, and 17
Since the Agile Manifesto has remained static for 20 years, years—an eternity in today’s fast-paced and often turbulent
many agile practitioners have looked for ways to add choice environment. By nature, we humans continuously exper-
and subjectivity to the approach. Additionally, the Agile Man- iment, learn, and adapt, inheriting strengths and resolving
ifesto focuses heavily on development, so a tweak toward weaknesses from our genetic strands.
solutions rather than code or software is especially needed Under the microscope, we will find traces of waterfall,
in today’s fast-paced development environment. Scott Ambler lean thinking, agile, scrum, Kanban, and other genetic ma-
and Mark Lines co-authored Disciplined Agile Delivery [8] and terial. For example, there are traces of waterfall for detailed
The Disciplined Agile Framework [9], based on their expe- and predictable scope, traces of lean for cutting waste, and
riences at Rational, IBM, and organizations in which teams traces of agile for promoting increments of shippable code.
needed more choice or were not mature enough to implement The genetic strands that define when and how to ship the
lean practices, or where context didn’t fit the lifecycle. code are where DevOps lights up in our DNA exploration.
The significance of DAD and DA is that it is a process-de-
cision framework [10] that enables simplified process de-
cisions around incremental and iterative solution delivery.
DAD builds on the many practices of agile software de-
velopment, including scrum, agile modeling, lean software
development, and others. The extensive use of agile mod-
eling and refactoring, including encouraging automation You use the telemetry you collect from watching your solu-
through test-driven development (TDD), lean thinking such tion in production to drive experiments, confirm hypothe-
as Kanban, XP [11], scrum [12], and RUP [13] through a ses, and prioritize your product backlog. In other words,
choice of five agile lifecycles, and the introduction of the DevOps inherits from a variety of proven and evolving
architect owner, gives agile practitioners added mindsets, frameworks and enables you to transform your culture,
processes, and tools to successfully implement DevOps. use products as enablers, and most importantly, delight
your customers.
DevOps If you are comfortable with lean thinking and agile, you will
As far as we can gather, DevOps emerged during a series enjoy the full benefits of DevOps. If you come from a water-
of DevOpsDays in Belgium in 2009, going on to become the fall environment, you will receive help from a DevOps mind-
foundation for numerous digital transformations. Microsoft set, but your lean and agile counterparts will outperform you.
Visualizing a
DevOps mindset
Use this graphical analysis to help develop a
DevOps strategy for your organization.
Practices
DevOps is not about magical unicorns and colorful Based on the DevOps Assessment [8], the first two posters
rainbows. It’s a journey of continuous learning and are intended to be used when reviewing the assessment
results with all stakeholders. The first one introduces five
improvement, with a destination you never quite
key practices:
get to. It’s the reason that
all of the images herein are
based on the infinity symbol:
minimal time to recover (MTTR), and remediation of issues actively listen to your users, progressively enable and dis-
at the root level. Lastly, technology, which is an enabler, is able features, perform continuous experiments, and mea-
the focus of the next poster. sure key performance indicators. Use all available feedback
to maximize learnings and influence value.
Technology Shift left encourages reviews, validations, and approv-
Here’s a companion of the practices poster, focused on als for both testing and security as early as possible in
technology: the feature delivery cycle to drive quality and a fail-fast
mindset. When technical debt exceeds a predefined limit
(for example, five bugs per engineer), encourage feature
teams to suspend feature work until the technical debt is
paid down.
Team autonomy and enterprise alignment are concerned
with what, how, and why we build. You need a common ca-
dence, or heartbeat, across your organization to enable all
leadership and feature teams to collaborate transparent-
Version control manages versions of your application, con- ly and effectively. The most effective feature teams own a
figuration, infrastructure, and other code. It enables team feature from idea to production, with autonomy on how they
collaboration and monitoring activities such as deployments. develop and support their features.
Top performers use topic branches for short-term isolation, Production-first is a mindset that does not differentiate
continuously merge changes into master, review, and audit how features and bugs are handled during development,
using Git pull requests, and version everything. testing, and operational support. Everything should be au-
Testing must be viewed as a continuous activity, embed- tomated, versioned, and fine-tuned in production. Lean on
ded into both the developer workflow and the continuous in- ring-based deployment and rings [10] to limit the blast radius
tegration (CI) and continuous delivery (CD) pipeline. of feature changes in production, remediate all issues at the
The cloud enables you to effectively provision your infra- root cause level, and remember to be transparent about is-
structure and move as fast as necessary. sues, root cause, and resolution (as a user, I’m much more
Lastly, monitoring enables you to form a hypothesis, val- understanding if I have an insight into issues).
idate or disprove experiments, proactively detect issues as Infrastructure as a flexible resource describes how solu-
they occur, and understand application health. tion architectures are adapted to the cloud, containerization,
The black bar on the right of the poster lists products and microservices. Adopt a pragmatic transformation that
to consider when you’re investigating technology for your makes sense for your organization, goals, products, and cul-
development, production, common engineering, and oth- ture. As with the previous habits, it’s important to favor au-
er environments. Provide feedback on the listed products tonomy over a descriptive architecture and not to transform
and regularly update this volatile and opinionated part of everything all at once.
the visual.
Getting started
Habits The last visualization combines all of the above and sug-
Based on the Moving 65,000 engineers to DevOps with gests five steps to getting started with DevOps:
VSTS [9] story, this poster focuses on the five key habits we
learned about during our transformation. The customer-fo-
cused, team autonomy and enterprise alignment, and shift-
left habits are evolutions of Agile, and the production-first
mindset and infrastructure as a flexible resource are particu-
lar to a DevOps mindset.
Customer-focused is part of our quest to delight customers I prefer to start with the assessment to help identify key ar-
and our obsession with delivering customer value. You must eas that can be improved.
that defines the flag, (2) a run-time query to figure out the a new release, then use feature flags to fine-tune each
value of the flag, and (3) an if-else programming construct, release in production.
as shown: I think of a when using the ring-based deployment
model to deploy a release and a when using feature
flags to fine-tune the release.
Happy ringing and flagging!
Comparing rings with flags within the context of our open
source extensions [8]:
But there’s more: Let’s add another simple ON|OFF fea- In the feature flag admin system, the feature has a friendly
ture flag for a new feature for which we would like to display name, Display Logs, and display-logs flag.
collect telemetry to examine a hypothesis. It again dou-
bles the feature code and test paths, incrementing the
paths that need to be validated to seven. More impor-
tantly, it introduces a dependency on a specific version
of the second feature. Do we wait for the dependency
to be enabled? Do we rely on an isolated and potentially
incomplete feature? Who ensures that a feature flag is
not inadvertently toggled to satisfy a dependency? Great
questions, which need to be answered as part of your
process transformation to encourage flexible schedul- At a glance, the relationship between activateFF and dis-
ing, iterative experiments, and close team collaboration play-logs is not obvious. As an engineer, I’m reluctant to
and to facilitate real-time ownership and management of make changes to the code without further investigation (cost).
these challenges.
Understanding of the implications of flipping a flag
There’s one more important cost you need to consider. Flip-
ping a feature flag is simple—the change ripples through
production quickly, and your users start using your new fea-
ture with excitement. You’re happy with the feature you just
enabled, but are you confident that you understand all the
side effects of flipping the flag?
We often share the following two experiences, which
demonstrate that even with the best process, we can have
bad days that result in bad customer experiences.
• A rough patch [9] —The team flipped a feature flag at a big
marketing event when corporate vice president Brian Harry
was on stage. As described in the blog post, it didn’t go
Imagine a product with hundreds of feature flags. How do well. The product experienced unexpected authentication
you identify stale feature flags and associated code and failures and eventually buckled under load.
test paths adding to our technical debt (cost)? How do you • How we learned about the 503 meltdown [10] —The team
convince your feature teams to change and remove code enabled feature flags in one of their most popular exten-
from a fully functional product? The feature teams need to sions. Users experienced 503 errors, followed by severe
own the feature from sunrise (idea) to sunset (deprecate), performance issues, and eventually the Azure Functions
use a common engineering process, and apply consistent handling feature flags failed under load.
code and naming conventions. Identifying and removing In both cases, there was a “failure under load.” It’s import-
stale feature flags and code must be simple. ant to flip a feature flag in a canary or early adopter envi-
Let’s have a quick look at an extract from the Roll-up ronment and simulate anticipated loads a few days before
Board [8] extension, which shows the ON and OFF code flipping the feature flag for all users. This is particularly true
paths for a feature flag that checks the value of activateFF. for big marketing events, where first impressions count.
Links
[1] https://ec.europa.eu/commission/priorities/justice-and-
fundamental-rights/data-protection/2018-reform-eu-data-
protection-rules_en
[2] https://github.com/jason-roberts/FeatureToggle
[3] https://github.com/benaston/NFeature
[4] https://github.com/mexx/FeatureSwitcher
It’s important to learn from these mistakes, explore po- [5] https://github.com/togglz/togglz
tential implications, have user empathy, and be transpar- [6] https://github.com/clun/ff4j
ent about issues, root cause, and resolution of bad days [7] https://www.launchdarkly.com/
[8] https://github.com/ALM-Rangers/Roll-Up-Board-Widget-
Extension
[9] https://aka.ms/bh-ff-sos
DevOps is a journey of continuous [10] https://aka.ms/vsar-ff-sos
learning and improvement, with a [11] https://aka.ms/bh-ff-sos
[12] https://www.continuousdelivery.com/
destination you never quite get to! [13] https://martinfowler.com/bliki/FeatureToggle.html
[14] https://aka.ms/vsar-ff-sos
like ours. Users with an insight are typically more toler- [15] https://aka.ms/devops
ant and supportive of your continuous journey of learning [16] https://docs.microsoft.com/en-us/vsts/articles/phase-
and innovation. features-with-feature-flags
Once you are cognizant of and manage the risks and [17] https://www.visualstudio.com/en-us/articles/phase-rollout-
costs, your feature teams will be able to progressively with-rings
expose releases using ring-based deployments and fine-
tune them using feature flags. Adapted from “What's the cost of feature flags?” on Opensource.com,
published under a Creative Commons Attribution Share-Alike 4.0 International
Enjoy observing your motivated feature teams—and more License at https://opensource.com/article/18/7/does-progressive-exposure-really-
importantly, your happy customers! come-costx.
Get Involved
If you find these articles useful, get involved! Your feedback helps improve the status
quo for all things DevOps.
Contribute to the Opensource.com DevOps resource collection, and join the team of
DevOps practitioners and enthusiasts who want to share the open source stories
happening in the world of IT.
The Open Source DevOps team is looking for writers, curators, and others who can help
us explore the intersection of open source and DevOps. We’re especially interested in
stories on the following topics:
• D
evOps practical how to’s
• D
evOps and open source
• D
evOps and talent
• D
evOps and culture
• D
evSecOps/rugged software
Additional Resources
Write for Us
Would you like to write for Opensource.com? Our editorial calendar includes upcoming themes,
community columns, and topic suggestions: https://opensource.com/calendar
Learn more about writing for Opensource.com at: https://opensource.com/writers
We're always looking for open source-related articles on the following topics:
Big data: Open source big data tools, stories, communities, and news.
Command-line tips: Tricks and tips for the Linux command-line.
Containers and Kubernetes: Getting started with containers, best practices,
security, news, projects, and case studies.
Education: Open source projects, tools, solutions, and resources for educators,
students, and the classroom.
Geek culture: Open source-related geek culture stories.
Hardware: Open source hardware projects, maker culture, new products, howtos,
and tutorials.
Machine learning and AI: Open source tools, programs, projects and howtos for
machine learning and artificial intelligence.
Programming: Share your favorite scripts, tips for getting started, tricks for
developers, tutorials, and tell us about your favorite programming languages and
communities.
Security: Tips and tricks for securing your systems, best practices, checklists,
tutorials and tools, case studies, and security-related project updates.
Keep in touch!
Sign up to receive roundups of our best articles,
giveaway alerts, and community announcements.
Visit opensource.com/email-newsletter to subscribe.