Professional Documents
Culture Documents
Achieving Devops: A Novel About Delivering The Best of Agile, Devops, and Microservices 1St Edition Dave Harrison
Achieving Devops: A Novel About Delivering The Best of Agile, Devops, and Microservices 1St Edition Dave Harrison
https://textbookfull.com/product/biota-grow-2c-gather-2c-cook-
loucas/
https://textbookfull.com/product/the-phoenix-project-a-novel-
about-it-devops-and-helping-your-business-win-kim/
https://textbookfull.com/product/agile-project-management-with-
azure-devops-concepts-templates-and-metrics-1st-edition-joachim-
rossberg/
https://textbookfull.com/product/devops-for-digital-leaders-
reignite-business-with-a-modern-devops-enabled-software-
factory-1st-edition-aruna-ravichandran/
The Linux DevOps Handbook: Customize and scale your
Linux distributions to accelerate your DevOps workflow
Wojs■aw
https://textbookfull.com/product/the-linux-devops-handbook-
customize-and-scale-your-linux-distributions-to-accelerate-your-
devops-workflow-wojslaw/
https://textbookfull.com/product/reinventing-itil-in-the-age-of-
devops-innovative-techniques-to-make-processes-agile-and-
relevant-1st-edition-abhinav-krishna-kaiser/
https://textbookfull.com/product/devops-for-networking-boost-
your-organizations-growth-by-incorporating-networking-in-the-
devops-culture-armstrong/
https://textbookfull.com/product/devops-with-openshift-1st-
edition-mike-hepburn/
https://textbookfull.com/product/azure-devops-for-web-developers-
streamlined-application-development-using-azure-devops-features-
ambily-k-k/
Achieving
DevOps
A Novel About Delivering
the Best of Agile, DevOps,
and Microservices
—
Dave Harrison
Knox Lively
With contributions by Ron Vincent
Foreword by Abel Wang
ACHIEVING DEVOPS
Dave Harrison
Knox Lively
Index�������������������������������������������������������������������������������������������������������������485
About the Authors
Dave Harrison is a Senior Consultant at
Microsoft Premier specializing in DevOps and
Agile. As a development lead, architect and
project manager, he has spearheaded cultural
revolutions in several large enterprises making
the leap to agile development and continuous
delivery. Dave is an enthusiastic promoter of
release management using tools such as Chef,
Puppet, Ansible, and Docker. He believes very
firmly that, as with agile development, the exact
tool selected is less important than having the
people and processes in place and ready.
He’s the proud father of two beautiful girls, has been married to his lovely
wife Jennifer for 24 years, and is based out of Central Oregon in the United
States. He enjoys fly fishing, reading history books, and in his spare time often
wonders if he should be doing more around the house instead of goofing off.
His blog can be found at https://driftboatdave.com.
The key here is continuously delivering value. That is the ultimate end goal.
We have always said that companies who adopt DevOps best practices and
continuously deliver value to their end users out-innovate and outperform
their competitors. And this is no longer theory. DevOps has now been in
existence long enough that we have solid empirical numbers to back this
statement up:
x Foreword
I’ve been a DevOps practitioner for the past 7 years, helping customers achieve
their DevOps goals. Unfortunately, in the enterprise space, most customers
are still behind the curve and haven’t quite started on their DevOps journey.
They know they need “DevOps,” but aren’t quite sure how to proceed.
The first thing they want to know is, “How can we buy DevOps? What tools
do we need to get?” And unfortunately, DevOps is not a magic product. You
can’t just buy DevOps. Sure, you can buy all the best tools and products, but
that’s not going to magically fix your organization. You must address all three
pillars. That’s people, process, and the products you use.
First, you must address the people in your organization. This is the hardest
pillar to change because here, you are talking about the culture of your orga-
nization. Everybody, from the top, all the way down, must be 100% aligned in
continuously delivering value to the end users in whatever way possible.
All too often when I talk to our customers, I ask them why they are doing
something the way they are currently doing it. And they respond with,
“Because that’s how we’ve always done it.” That’s not an acceptable answer!
If how we used to do things did not let us continuously deliver value to our
end users, then we must change how we do things.
As we all know, culture shifts in an organization are extremely difficult to
implement. It doesn’t have to start from the top down, but it sure is easier
when it does start from the top down. Also, plan for some attrition to hap-
pen. Not all people in an organization are ready or willing to be part of that
cultural shift. And if they aren’t, they need to be part of another organization.
Next, the process. Enterprises need to make sure they have a process that will
let them iterate fast enough, yet still deliver high enough quality code. Luckily,
processes that accomplish this have already been clearly defined. Processes
like Agile and Scrum are just some examples.
And finally, the products that help you enable all of this. I’m partial to Azure
DevOps (of course), but there are many good DevOps tools out there that
can help enterprises be successful.
Once my customers are all onboard with this, the next thing they want to
know is, “Where should we start making changes? Should we try to accom-
plish everything at once?” And my answer is: Let’s address one problem at a
time.
First, what hurts the most? Depending on what that is, let’s fix that one thing.
If the answer is, “We don’t even use source control. We just have our code on
a shared drive,” then let’s start by adding in a source control system.
If the answer is, “We can’t deliver our work on time and we need 10 months
of coding before we can deploy anything,” let’s adopt a process like Agile and
start working in sprints and having deployable goals at the end of each sprint.
Foreword xi
If the answer is, “We can’t deploy our finished code fast enough,” then let’s
start building out automated build and deploy pipelines.
If the answer is, “We can’t QA our finished code fast enough and it’s become
a bottleneck,” then let’s start shifting left, moving away from functional testing
to automated unit testing.
If the answer is, “We are moving so fast that we don’t have time to do our
security reviews,” then let’s shift left, implement security reviews earlier in
the process (think each pull request) and start adding security checks into
our pipelines.
Find what hurts the most and just fix that. And once that problem has been
fixed, find what hurts the most next and then fix that.
The thing to remember is the DevOps journey is exactly that. A journey. It is
not a one and done thing. In fact, it is never “done.” It is a journey of constant
iterative improvements. The only constant is that teams that adopt DevOps
best practices out-innovate teams that don’t, and quickly render those teams
obsolete.
Good luck on your DevOps Journey!
Abel Wang, Principal Cloud Developer Advocate, Microsoft
December 20, 2018
Introduction by
Dave Harrison
This book comes from two of my greatest failures, one personal and the
other professional.
The first came in fall of 2013, as I was being unceremoniously cut by a sporting
apparel company after a disastrous stint as a project manager. It was a miser-
able trip out to my car, with rivulets of rain streaming off my jacket onto my
soggy box of belongings. I felt like I’d been hit on the back of the head with a
2x4. What happened?
Just a year earlier, working at a great company in the same market just down
the street, I had managed a team of developers and had enjoyed some great
wins in adopting Agile. I had expected this assignment to be the next rung on
the ladder and build on this success; after all, I had so much more to work
with at this new company. I had a bigger team, which meant more firepower.
And the team looked like the perfect group to build on; they were bright,
experienced developers with very deep-level expertise in modern web devel-
opment. My new manager understood Agile and backed my vision 100%. I
felt confident, fully expecting a glorious victory; instead, ignominiously, I was
having to start over.
The fact remained that though I had been successful with Agile at one com-
pany, the same recipe and approach had not gained any traction at another.
I remember gripping the wheel in frustration as I drove home that evening,
thinking; Dave, you missed your off-ramp.
The off-ramp I had missed wasn’t made of concrete. Looking back, I had
missed opportunities to really drive a better vision for the team that would
have been less risky, incorporated quality as a first-class citizen and built incre-
mentally on success. I had engaged with the testing community and even –
halfheartedly – tried to inject some quality initiatives within our team. But the
two teams still remained very separate; QA was always lagging by a significant
margin behind development, our manual testing took days to complete and
leaked like a colander. We had missed several very embarrassing issues that
required all-out efforts to mitigate, costing me points in rep that I now real-
ized I couldn’t afford to lose. Our poor reliability and lengthening technical
debt hurt team morale and was nakedly exposed to the end user community.
xiv Introduction by Dave Harrison
Worse, we were dropping stones into a pool with our releases. Operations
was also siloed from development. We had no idea what features were work-
ing as expected and were often the last to know when key services went
down. Our releases were joined at the hip with an older web site that was
in even worse shape. We had the capability to roll out multiple times a day,
but as we were chained to this old manually tested system, we were forced
into a torpid multi-month release timetable. Our weekend releases became
crucibles of forced overtime with bad catered food, terrible cat picture slide-
shows, and short tempers as we had to choose between forcing a humiliating
rollback or trying to patch things together in place.
As personally painful as the experience had been for me, one experience
stood out that started some wheels turning. I inherited on the team an IT/
infrastructure liaison whose main assignment was to write Chef recipes so
infrastructure could be rolled out alongside code releases. This was the first
experience I had had with Chef and automated infrastructure – and it was a
real eye-opener. I remember watching templated environments get rolled out
with a single command and being absolutely floored by the repeatability and
reliability of that one pocket of our release lifecycle.
This same infrastructure person pulled me aside once and told me – “Dave,
sometimes you have to go slow to go fast.” In the mad chaos of day-to-day
project management, I brushed that aside. Now, thinking back, I realized that
I had missed something.
Years went by; I found a great job that was incredibly challenging technically,
writing a shop floor application as part of a small three-man team supporting
a manufacturing process of large-screen touch sensitive monitors. The days
of big battalions and 20-person teams were behind me; here I worked as part
of a very tight, close-knit group. Everyone contributed to design and imple-
mentation, and we proudly watched our little code baby grow in strength and
capability.
But even on this tiny team, the same problems with coordinating releases
remained. Most of our releases failed, as the big batches of code that we
checked in every few days or so failed to integrate. As a result, several critical
demonstrations to our customers abended, and we were forced to scramble
to patch together a working fallback. In the end the project succeeded, but
only with a lot of unnecessary friction and waste.
Then, I moved into Microsoft as a senior consultant and began working with
customers throughout the western United States on their development chal-
lenges. However, I never forgot my earlier experiences and kept thinking
about better ways of making software releases safer and more predictable.
Introduction by Dave Harrison xv
Increasingly, I could see that the problems I had faced trying to scale Agile in
the real world was not an anomaly.
Then, in December of 2017, just as I was beginning to think about what this
book would look like, my second great life failure happened. My new doctor
required an in-person checkup, so I made a routine visit, had some blood
drawn, and left. Two days later I got a call – I needed to come in, as soon as
possible. My blood sugar level was through the roof, as was my bad choles-
terol levels and blood pressure. In short, I had Type 2 diabetes and would
need to change my diet, exercise, and be on medication, for the rest of my life.
I was hit with waves of guilt. Type 2 diabetes is a lifestyle disease; the hectic
and stress-filled pace I had set in my life – and the food and drink I used as fuel
in coping with it – had finally caught up with me.
This was a different and very personal crisis, but I felt the same reaction
– what happened? I thought I was healthy; I had tons of energy, a great gig
without too much stress, and a wonderful family life. But as my colleague
Aaron Bjork has pointed out – “Just because you’re not sick, doesn’t mean
you’re healthy.” I had ignored several critical warning signs with my health and
now was saddled with a life limiting condition to manage – the physiological
equivalent to a disabling car crash.
Looking back, I’m grateful for my failures most of all. I’ve learned so much
from them. My professional failure as a project manager got me thinking about
better ways of writing software and coordinating releases, which led directly
to discovering DevOps and a brilliant and selfless community of profession-
als with a powerful mission. Failing at managing my health made me reset
the pace of my life and the way I was using and abusing food and drink. I’m
calmer now, more empathetic, less focused on “getting stuff done” – more
concerned with safety and a sustainable pace.
Giving away the ending of our novel here – but our hero Ben ends the story
with a talk about humility, patience, and trust. I’ve had a great opportunity
to share time with some great leaders in our community; they were across
the spectrum in terms of their personality types, their favorite choices with
technology, and the resources at their command. But those three qualities
kept appearing in our conversations, a common thread.
There is no single roadmap to success in DevOps. But, if you get only one
thing from this book, remember this – if you make it about learning, and dem-
onstrate humility, patience and trust in your personal behavior, you won’t be
far off from success.
Introduction by
Knox Lively
We live in a time of instant, or at least near-instant gratification with informa-
tion at out fingertips within 200 milliseconds or less. After reading a book
such as this one, or any book for that matter, the reader often assumes that
the tightly woven narrative that is portrayed has always been such. It couldn’t
be further from the truth. A book, as with a career, or anything worthwhile
doing is the culmination of many months, and even years of concentrated
effort, often by multiple parties. This book was such. Dave and I worked
countless hours while managing relationships, families and our day jobs to
follow a goal that we thought worthwhile of sacrificing the better part of a
year to.
My career, just as with this book, was the product of daily effort multiplied by
time. It didn’t appear overnight, there were no fireworks, nor did I even real-
ize I had a career until years down the road.
As I suspect how many of the readers careers began did, mine began in the
trenches of IT. Helpdesk Tier 1 to be exact. It was my first salaried position
right out of college, and I couldn’t have been happier. “I made it!” I thought to
myself. I couldn’t believe they were going to pay me $35,000 no matter how
many hours I worked! Let’s just say it didn’t take long until I began to strive
for more.
From helpdesk I began to teach myself programming and worked my way into
more of a Junior Sysadmin-type role at the same company. After learning a
couple of programming languages and seeing the power it had to transform
my career, I was hooked. From there, I continued to work my way up to
my first traditional Systems Administrator position. In my career path, and
my limited understanding of the field, Senior Systems Administrator was the
culmination and ceiling for my career path. After a couple of more years I’d
landed at just that, a Senior Systems Administrator role. “This is it, I made it.”
Once again, I thought. But the truth was it didn’t really feel any different from
my first position working on the Helpdesk. Instead solving one-off problems
with people and their desktops, I’d simply migrated to solving one-off prob-
lems with servers. My workflow was still entirely push-based. Work came to
xviii Introduction by Knox Lively
me, and typically at the worst time possible. I was a technical firefighter for
all tense and purposes.
Enter my “there’s got to be a better way” moment. Sick and tired of legacy
systems, legacy thinking, and legacy people I pulled up my stakes and set my
sight on new career horizons. I spent months of looking for and researching
my next career move.
Luckily, not too long into my research I stumbled my way into a DevOps role
in Los Angeles. I’d barely heard of the term DevOps, what did it mean? Was
it the beta-max of development methodologies, or was there some staying
power to this new concept? I wasn’t sure, but I sure as hell wasn’t about to
complain. The money was good enough that I figured I could make myself
excited about it for the foreseeable future.
My second stroke of luck was being able to work under a brilliant DevOps
engineer. The company was small, so it was just us two. I had landed basically
what seemed a paid mentorship. A mentorship is something not easy to find
anywhere these days, much less getting paid for it. I learned the ins and outs
of configuration management tools, proactive monitoring suites, as well as
deploying infrastructure as code. This was everything my career had been
missing up to this point, a way for me to proactively design my way around
future potential problems. Problems that all legacy systems were plagued
by. Problems like, snow-flake systems, or rather systems that needed spe-
cial hands on maintenance due to drifts in configuration practices across the
environment. Other problems like only finding out systems were down only
because customers called, or simply trying to keep up with all of the systems
we owned seemed to be a thing of the past.
It seemed too good to be true; there had to be a catch. And there was a
catch. It required a shift in mindset, specifically the mindset of an engineer
or an architect to properly implement and build such systems. The cowboy
coder and the typical grump legacy systems administrator mindset was 100%
incompatible with this new methodology. I fell into those camps. I hacked my
way through every cookbook, recipe, task, you name it. I did so with, not
surprisingly, limited success.
I wish I could say I read a couple of books and BAM! I saw the DevOps light,
and everything was happily ever after. That couldn’t have been further from
the truth. It took me the better part of my DevOps career to shift my per-
spective. Only through diligently reading, educating myself, and working with
greater engineers on a daily basis was I able to reshape the way I thought
about IT, DevOps, and Software engineering as a whole.
My education and understanding of DevOps is now quite simple. Ask me
a few years ago if you came to me looking for a definition of DevOps and
what it is I do I would have told you to “google it.” Not because I’m a jerk,
well maybe, but rather because the concept was so elusive to me. It means
Introduction by Knox Lively xix
something different to each person you ask. So, I’ll give you my definition of
DevOps.
Firstly, and foremost, DevOps is a mindset. It’s not some new-fangled tool
made by some trendy software company of which everyone sports their
t-shirt. It’s a way in which you approach a problem. The tools are, well just
that, tools. Pick whichever ones suit you and your organization best. The
mindset, however, is the real asset. DevOps, when applied correctly, will help
you and your organization architecturally plan around problems before they
happen. DevOps, its accompanying methodologies, and tools should help you
architect infrastructure that is iterable, scalable, and version-able. No differ-
ent than software development methodologies such as Agile. Agile for infra-
structure if you will.
Secondly, DevOps should empower you and your organization to take on
any project no matter how large through the process of breaking large tasks
into smaller tasks, delegation, automation, and lastly by using the multiplier
of time. Any successful company, no matter the sector, will tell you that this
above all is how you build empires.
Thirdly, and perhaps the most important concept DevOps has to offer, is the
idea of closing or integrating feedback loops within a tech department, or
even across an organization. For far too long departments have been siloed,
forced into throwing work over the fence to another, each operating in inde-
pendence. Even within the tech department processes and technologies are
siloed in a way that didn’t offer an easy way to see the whole picture. DevOps
offers a way of integrating all the various systems and closing the feedback
loop for rapid learning, iterating, and re-integration of knew knowledge to
systems and processes. DevOps is an organic approach to systems design that
has been missing in the tech landscape until now.
My hopes and wishes for the reader are that they understand that DevOps
is not only a set of tools and practices, but rather a mindset. A mindset
that informs each and every decision for their work and the direction of the
organization as a whole. However, in reality, we are dealing with concepts
larger than DevOps itself. On a more global scale, whether it be creating a
family, growing a garden, or writing a book, each can be achieved by using the
same fundamental principles. The principle that through small, incremental,
yet measurable changes applied daily can create long and lasting change.
My other greatest wish for the reader is that this book, although loaded
with information, quells their fears of mobilizes them to take action on what
seems an Everest of tech debt. We all have stared down this mountain and
wondered “How can I ever hope to achieve half of what is being asked of me?”
Not enough resources, not enough time, lack of knowledge, etc. The excuses
are endless. However, they are not unique to any one individual or organiza-
xx Introduction by Knox Lively
Rattenfalle.
Auch das Thema Dunkelkammer ist wenig erbaulich. Die
deutsche Regierung ist fürsorglich; sie baut, um Hungersnöten unter
den Eingeborenen vorzubeugen, wohl mehr aber noch, um in einem
etwaigen neuen Aufstande von der Landesbevölkerung unabhängig
zu sein, in der Boma von Massassi augenblicklich ein stolzes Haus.
Es ist der einzige Steinbau im ganzen Lande und bis zur Küste hin,
nur einstöckig zwar, aber mit starken, nur von engen,
schießschartenartigen Löchern durchbrochenen Mauern und festem,
flachem Lehmdach. In diesem Architekturwunder lagern schon jetzt
ungezählte Säcke mit Hirse neuer Ernte und Berge roher
Baumwolle. Ich habe mir beides zunutze gemacht: mit der
Baumwolle habe ich die Luftlöcher verstopft, auf den Säcken aber
sitze ich; auf ihnen ruht gleichzeitig mein Dunkelkammer-
Arbeitstisch. Dieser war bis jetzt der wesentliche Bestandteil einer
Baumwollpresse, die draußen auf dem Hofe einsam über ein
verfehltes Dasein dahintrauert. Den Türverschluß endlich habe ich
durch eine Kombination dicker, von meinen Trägern gefertigter
Strohwände und einiger meiner Schlafdecken hergestellt. Dergestalt
kann ich zur Not sogar am Tage entwickeln, nur herrscht schon jetzt,
nach so kurzer Tätigkeit, eine erstickende Atmosphäre in dem auch
sonst wenig anheimelnden Raum. Gerne entrinne ich ihm daher, um
mich neuen Taten zuzuwenden.
Diese sind denn auch wirklich von viel ansprechenderer Natur.
Bei einem meiner ersten Bummel bin ich inmitten einer Schambe auf
ein zierliches Etwas gestoßen, das mir als Tego ya ngunda, als
Taubenfalle bezeichnet wird; ein System von Stäbchen, Bügeln und
feinen Schnüren, von denen einer mit einem kräftigen,
starkgekrümmten Bügel verbunden ist. Mich interessiert von Jugend
auf alles Technische, um wieviel mehr hier, wo wir in frühere
Entwicklungsphasen des menschlichen Intellekts tiefe Einblicke zu
tun die beste Gelegenheit haben. Also daheim Appell aller meiner
Leute und möglichst zahlreicher Eingeborener, und Ansprache an
alles versammelte Volk des Inhalts, daß der Msungu ein großes
Gewicht darauf legt, alle Arten von Fallen für alle Arten von Tieren zu
sehen und zu besitzen. Versprechen recht annehmbarer Preise bei
Lieferung authentischer, guter Stücke und zum Schluß die höfliche,
aber bestimmte Aufforderung: „Nendeni na tengeneseni sasa, nun
geht los und baut eure Dinger zusammen.“
Wie sind sie geeilt an jenem Tage, und wie eifrig sind alle meine
Mannen seitdem Tag für Tag an der Arbeit! Ich habe meine Träger
bisher für lauter Wanyamwesi gehalten; jetzt ersehe ich an der Hand
der Kommentare, die mir jeder einzelne zu seinem Kunstwerk geben
muß, daß sich unter meinen 30 Mann eine ganze Reihe von
Völkerschaften verbirgt. Zwar das Gros sind Wanyamwesi, doch
daneben gibt es Wassukuma und Manyema und sogar einen echten
Mgoni von Runssewe, also einen Vertreter jenes tapfern
Kaffernvolkes, das vor einigen Jahrzehnten vom fernen Südafrika bis
ins heutige Deutsch-Ostafrika vorgedrungen ist und dabei eine
seiner Gruppen, eben diese Runssewe-Wangoni, bis weit oben an
die Südwestecke des Viktoria-Nyansa vorgeschickt hat. Und nun
meine Askari erst! Es sind zwar nur 13 Mann, aber sie gehören nicht
weniger als einem Dutzend verschiedener Völkerschaften an, vom
fernen Darfor im ägyptischen Sudan bis zu den Yao in Portugiesisch-
Ostafrika. Und alle diese Getreuen zermartern ihr Gehirn und üben
in Busch und Feld von neuem die Künste ihres Knaben- und
Jünglingsalters, und dann kommen sie heran und errichten auf dem
weiten, sonnigen Platz neben meinem Palais die Früchte ihrer
schweren Geistesarbeit.
Antilopenfalle.