Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introducing
DevOps
eMag Issue 14 - June 2014
Damon Edwards:
DevOps is an Enterprise Concern
Damon argues DevOps is most needed in the enterprise world, and suggests starting
with self-service provisioning interfaces, service oriented mentality, designing tool
chains and meaningful metrics. All based on his own experience on the field as a DevOps
consultant. PAGE 4
DevOps, DevOps, DevOps. In 2014 DevOps hit the To quickly and efficiently deliver software and
top of the charts in IT lingo. A recurring question that services, enterprises need frictionless handoffs
tags along is: can DevOps be applied in traditional and clear pipelines of work moving through the
enterprise settings? lifecycle. This means not only moving towards
a DevOps mindset but also having an adequate
Detractors say traditional enterprises’ organizational software delivery strategy in place. Andrew Phillips
and technological complexity, along with strong shares some stories and pitfalls he found when
dependency on tool vendors, makes it hard to implementing continuous delivery in enterprise
engrain and stick to the ideals of DevOps. settings.
Supporters counter that organizational complexity Kamal Manglani & Gerald Bothello offer a hands
leads to silos and lack of collaboration between on check list of hurdles one must overcome and
dev, ops and other areas of work involved in the commitments one must make in the journey towards
application lifecycle. Thus DevOps is needed to break a successful DevOps transformation. They know
those silos and instill a collaboration culture. because they got it done at Walmart.
For this eMag we selected a set of articles that Introducing any kind of change in an organization is
dig deeper into this debate and contextualize the hard, and DevOps is no exception. John Clapham has
benefits and challenges of DevOps adoption in a been there and he offers a quick how to get started.
traditional enterprise. In his article you can find many good resources on
change management.
In our interview with Damon Edwards we hear
about his conviction that traditional enterprises Finally, in the closing virtual panel several leading
are the ones that need DevOps the most as they DevOps practitioners such as Gene Kim (author
face competition from upcoming smaller companies of “The Phoenix Project”), Jez Humble (author of
without the burden of legacy software and processes. “Continuous Delivery”), Patrick Debois (DevOps
“founder”), John Allspaw (author of “Web
Jeff Sussna talks about the focus shift from long Operations”) and Mitchell Hashimoto (creator of
product development cycles to fast-paced services Vagrant) come together and share their views on
running 24x7 and how that revolutionizes the the challenges of adopting DevOps in the enterprise
operational landscape along with the advent of cloud. world.
CONTENTS Page 3
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
Damon Edwards:
DevOps is an Enterprise Concern
InfoQ: There has been some debate over the stream working in an organization is to limit the
need for “big DevOps” for traditional enterprises. number of hand-offs that have to take place. But in a
What’s your take on that? large enterprise, you are just going to have different
teams, different groups, you are going to have
Damon: I find that a curious point of view. I mean, acquisitions, you are going to have various business
first of all look at what actually causes DevOps lines feeding the common operations group, you are
problems: if you get right down to it, it’s silos: going to have geopolitical issues at places where
silo thinking, silo tooling, silo processes. This idea people are placed in the world for cost factor and just
that any place there is a handoff, that is where the based on where you can find them. So, these hand-off
bottlenecks, that is where the misunderstandings, points are going to happen.
that is where the issues occur and who has more silos
but enterprises? I think if you look at what causes these silos and
these issues, it’s any place that you have a kind of
So, in many ways, DevOps is really an enterprise manual request queue. Think about what a terrible
concern. Large organizations, large enterprises thing a ticket system is: you got some requests, you
– they have the history of success, the legacy of put it in there, somebody gets the request off there,
success: they have legacy people, legacy processes, they read the request and they have to interpret your
legacy organizations, acquisitions they make and question, then they have to ask you some questions
these silos build up very quickly and they are the back and you go back and forth and they send you
ones that actually need the DevOps techniques more something which is not quite right, you have to send
than the higher-flying sort of young web startups it back. That whole time, all you are doing is putting
that are a single purpose organization that don’t have extra chances for mistakes and you are putting extra
to deal with that legacy history. cycle time and wait time into the process and these
bottlenecks start to form.
InfoQ: You are an advocate of Ops self-service Then on top that, you look at operations groups, they
platforms. What are the implications for large are hopelessly outnumbered. There is always going
enterprises and how would you address the fear to be far more developers, far more testers, far more
that a self service approach might lead to lack of product managers and business folks that play there,
necessary control? all trying to feed into their kingdom, all trying to get
into those operational capabilities. So, the idea for
Damon: If you think about the best way to remove the self service thing is to say they need to turn those
the silos, the best way to get an end-to-end value typical tasks, all those requests they normally would
CONTENTS Page 4
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
fill–turn them into self service capabilities that the of automation that would be used in a production
rest of the organization can pull as needed. environment in their development environment.
That’s a massive gain in efficiency and it’s a massive So we have to think about a running service from
gain for the throughput over the organization step one, we cannot wait for that to be an operational
because you’ve now allowed people to decouple, to concern that happens down the line. The high
solve their own problems and to move at their own performing companies that do that - the throughput
pace and you get operations out of the task of day- and the speed and the quality which they move – it’s
to-day doing, digging through the muck and doing a stark difference between that and what you see
the activity and focused on higher level goals, how to in these more traditional organizations where the
actually improve the reliability, the stability and the software developers write software, that is their job,
scale of the organization. and then it’s somebody else’s job to test it, somebody
else’s job to automate it. They are the ones that are
Operations are being squeezed between moving having the quality and throughput problems that you
faster and being more compliant. If you’re using hear about so much.
an automated system and you actually have the
request going through this self-service system,
you not only know who requested it, you have the InfoQ: Why is the design and thinking about tool
automation that knows exactly what ran and you are chains important for DevOps?
able to actually bake security and compliance and
governance into the platform. Damon: We teach organizations to think about a tool
chain approach, so that there is a design pattern that
everybody can agree on standardize on. Then the
InfoQ: Organizations today are shifting from individual points on that tool chain and the tools that
delivering software products to delivering running you use become a very simple to select depending on
services. What is the impact of this paradigm shift the tool meeting the design requirements.
in operational terms?
We look at very successful organizations - they take
Damon: The important thing to keep in mind is that this kind of loosely coupled tool chain approach. They
if we are developing running services, then we need say it’s more like a Unix style tool chain where you
to make sure that from day one we are actually basically take tools that are good at individual things,
developing a running service. that are the simplest, easiest way to accomplish
something and worry about integrating those tools
I believe software becomes a service when: number with each other.
one – it is running; and number two – it is fully
managed. Asking “What is the tool chain we need to tie our
application deployment to our infrastructure
So, we have the automation in place to deploy it provisioning? How can we manage those things
and configure it in the way that it is repeatable and in a consistent logical way?” allows you to have
anybody can do it. And we have all the standard conversations, or arguments if you will, about the
operative procedures automated, how to start it and design and the rest becomes a simple selection
how to stop it, restart it, reset it, reconfigure, check process to plug things in.
if it is healthy, that type of thing. And we have all the
monitoring and metrics and visibility in place to know If you are able to have a coherent and consistent tool
the health of that service and make it manageable. chain design throughout the organization, then it
becomes easy when you talk from group to group to
So, if all those things in totality equal the product, say: “For this particular function we use tool X and
they are equally important as the code itself. Do we have the same type of integration points with this
those things early in the process, make them part tool Y that’s the same as you use”.
of the developer’s deliverables. Have them use the
same tools, the same kind of tests, the same kind So, it is easy to understand how those parts are
swappable, it is easier to understand what the role
CONTENTS Page 5
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
of the tools is and the organization can worry about the organization. Secondly, they see the physical
getting the work done versus having these religious systems.
battles of “is it tool X or is it tool Y?”. That really
does not serve anybody; it doesn’t really help the They have a lot of technical metrics about the
company. machines they are now running, they have some code
metrics and information about their code and source
code and lines of code and the various tests and the
InfoQ: Traditional organizations often try to build telemetry they’ve got.
standardize on the same suite of tools and
everyone has to fit their way of working into the Then they have a bunch of financial data: we made
tool. Do you think that’s a good approach? so much money or we lost so much money. That
is it. What is actually missing there is the visibility
Damon: I think, first of all, what is the point here? into the activity and the flow of work through the
Is it the point to standardize for efficiency or to cut organization.
down on the number of vendors we have to deal with
or is it the point to improve the time of market and First and foremost, you need to get people
quality or your product and the effectiveness of your aligned towards what is the flow of work in their
organization? That is what actually matters to the organization, what is the end-to-end process, what is
business. the value stream. Looking at artifact flow: how do the
artifacts flow through the organization? And looking
So, if limiting choices helps you do those things, at information flow: what are our communication
then that’s good, but in many cases those choices lines? What documents need to be passed? What is
are constraining the organization on a tool basis the signaling that has to take place?
first, that does not help because you are actually
constraining the people doing their work and you are The second thing is to raise awareness of the actual
constraining the process that they are trying to get flow of activity through the organization. On the
things done. program/project management front, things like
Kanban – they are great for watching the flow of
If you solve the people problems, if you solve the work, understanding where things are and how
process problems, then the tooling problems should things are moving through the life cycle, where the
be straight forward engineering decisions. If you have bottlenecks are, which resources are overcommitted
the right kind of people and process ideas in place versus under-committed or they are at capacity.
and you have the right tool chain design in place, then
the organization will make the right selection when In low performing organizations nobody really has an
it comes to the tools and people will be effective and idea as to how work flows through the organization.
move forward. The high performing organizations have their
deployment pipelines, they have the value stream
maps, they have a lot of information about how
InfoQ: In your talks you say the first step to work is flowing through the organization and, not
improve the workflow in an organization is to surprisingly, people respond to it and self organize to
visualize the system. How do you achieve that improve that flow.
in large organizations with multiple, often non-
collocated, departments?
InfoQ: Meaningful metrics should provide visibility
Damon: First of all, I think there is no substitute for on how the overall system is doing. How can
human-to-human connection at this point. I think you get meaningful metrics from operational,
you need to get people on the same page as to what development and business point of views
is actually the process, the flow of work through the simultaneously?
organization. People see a couple of things in large
organizations. They see an organization chart, but Damon: I guess the point of any metric is what
that is just a collection of people and dotted lines and behavior are we trying to encourage? For getting
it does not actually tell you how work flows through an organization to improve how they are working, I
think you need to limit the number of metrics that
CONTENTS Page 6
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
you are asking people to look at to a few meaningful back. That’s scrap. Think in the manufacturing sense:
things that actually can move the organization. I made a bumper, I made ten bumpers, I gave them to
you, they do not fit on the car. That is scrap, we have
There is always some higher level business metric to throw them away or go back and rework them. So,
that needs to be accounted for. The Amazon guys that is one.
talk about their order rate. It should be on everyone’s
desktop. So everyone is going to have a business The second part of that is that when scrap does occur
metric that matters, that they need to talk about, or problems do occur – were they caught? How far
but if you want to look at improving the flow of work does a problem get down the life cycle, is it one, two,
through the organization, improving throughput and three degrees away from the source? The further it
improving quality, solving your DevOps problems, gets away from the source, the larger problem we
how do you know you are getting better? have, so we want to keep those numbers close to 1
or 0, to say that problems are caught through fast-
I noticed that there are these four metrics that really feedback, good testing at the source, before they
help organizations improve. The first one is obvious – move on the lifecycle.
cycle time. If you talk about the most minimal change
from a business person’s head to a running feature So those four things: cycle time, meantime to detect,
in a customer facing environment making me money, meantime to repair and quality at the source. If you
how long would that minimal change take to get track those things, then you are going to be able to
through their entire process? know whether you are improving as an organization.
CONTENTS Page 7
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
say: “they know how to move the organization to do different skill set and different day-to-day focus but
great things, we have to inject those ideas as well”. we are in this together and we need to build a better
future.
CONTENTS Page 8
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
CONTENTS Page 9
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
The Digital Innovation Economy Software as service is happening at all layers of the
What is the relationship between cloud computing IT stack. At the bottom, infrastructure-as-a-service
and DevOps? Is DevOps really just “IT for the delivers on-demand virtual machines, networks,
cloud”? Can you only do DevOps in the cloud? Can and storage. Platform-as-a-service delivers on-
you only do cloud using DevOps? The answer to demand databases, caches, workflow engines,
all three questions is “No.” Cloud and DevOps are and application containers. Software-as-a-service
independent but mutually reinforcing strategies for delivers on-demand business functionality. At
delivering business value through IT. every level, providers allow customers to consume
services based on demand, pay for them based on
To really understand the relationship between consumption, and offload responsibility for their
cloud and DevOps, it’s helpful to take a step management to the provider.
back and consider the larger context in which
both are happening. Cloud and DevOps have Second, the 21st-century business environment is
evolved in response to three fundamental societal forcing companies to shift their focus from stability
transformations. First, we are in the midst of a and efficiency to agility and innovation. The pace of
transition from a product economy to a service disruption is accelerating. Kodak lasted a hundred
economy. People are placing less emphasis on things years before having to face the erosion of its place
and more emphasis on experiences. While companies in the market. Microsoft, on the other hand, felt the
still produce products, they wrap them inside ground shift under its feet after only thirty. Apple has
services. BMW includes routine maintenance in the gone from the most valuable company in the world to
price of a new car. Cadillac integrates the OnStar a question mark in just a couple of years.
service into its vehicles. Much of the power of the
iPhone comes from its integration with iCloud and In order to present an adaptable face to the market,
iTunes. companies need to change their approach to work.
They need to shorten work cycles, increase delivery
The transition from products to services is impacting frequency, and adopt an attitude of continual
software delivery as well. Previously, development experimentation. Social media is shifting power from
companies built software products, and delivered producers to consumers. Marketing is changing from
them to customers who took responsibility for a process of driving behavior to one of responding
operations. With the advent of cloud, the majority to it. From the corporation as a whole down to the
of companies that build software also operate it on individual employee, companies need to empower
their customers’ behalf. creative responsiveness, and minimize any waste
that impedes the ability to act on it.
CONTENTS Page 10
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
Third, the digital dimension is completely infusing waste that impedes the ability to deliver continuous
the physical dimension. Is your car a vehicle made change and conduct continuous experiments.
of metal and plastic or is it a Pandora music-service Onerous, time-consuming, arms-length change
client device? Is your office building HVAC system a management procedures still generate resentment
marvel of fluid dynamics or a marvel of big data? Is and frustration, and lead users and developers alike
your local library a place to find books on the shelf to seek ways to get around IT altogether.
or a place to look them up online? The answer, of
course, is “Yes.” IT-ops organizations often get tagged with the
unfortunate moniker “the Department of No”.
Digital infusion dramatically raises the stakes for IT. Frustrated businesses used to tag development
We’re reaching the point where daily activities are with this same moniker. The agile development
becoming impossible without digital technology. movement has made great strides towards creating
Companies depend on IT for their very existence. IT mutually trusting relationships between business
can’t afford to fail at providing a compelling platform and development. Agile comes in many flavors and
for the adaptive business. has its own imperfections. At its root, though, agile
is about tuning development to be receptive rather
Enabling Agility than resistant to change.
What do these transformations have to do with cloud
or DevOps? Cloud is a direct response to the need The Inseparability of Functionality and
for agility. Initially, people saw cloud primarily as a Operability
way to save money and transfer capital expenditures From a DevOps perspective, the most important
to operating expenses. They’ve since come to realize implication of software-as-service is the way in
that its real value lies in reducing waste that impedes which it dissolves the separation between function
speed and defocuses effort. Very few companies and operation. Users experience them as seamless
would identify data-center operations as part of aspects of a unified whole. At the same time as they
their core-value proposition. Cloud services let IT expect high levels of functional and operational
departments shift their focus away from commodity quality, users also expect service providers to deliver
work, such as provisioning hardware or patching continuous change on top of that high-quality
operating systems, and spend it instead on adding platform.
business-specific value.
These expectations necessitate a fundamentally
The transformation from product to service different approach to delivering software. Separating
economy, along with digital infusion, means that development from operations clashes with the
companies need to become software service outside-in view of inseparability. “Function +
providers as well as consumers. I’ve reached the operations” maps more naturally to “development
point where 99% of my interaction with my bank + operations”. DevOps is exactly that. DevOps
takes place via their website or mobile app. I judge represents an effort to accomplish the same mutually
their brand by the quality of our digital interactions. trusting relationship for software-as-service as agile
I judge those interactions across the dimensions of has done for software-as-product. Agile has taught
functionality, operability, and deliverability. I expect development how to move at the same speed and
seamless quality across all three dimensions. with the same flexibility as business; DevOps tries
to teach operations to move at the same speed and
Cloud enables greater business agility by making with the same flexibility as development. Success in
IT infrastructure more pliable. It lets companies the 21st-century requires radical alignment of goals,
conduct digital service relationships with their viewpoints, language, and cadence from marketing
customers. Cloud is only part of the answer, all the way through to operations.
though, to the question of how IT enables adaptive
businesses. Whether an IT organization runs a Cloud and DevOps Aren’t Just for Web
company’s applications on data-center hardware Apps
or on a private or public cloud, it still needs to align What about IT organizations that work in regulated
itself with the business’s needs, rather than forcing industries? Can they not use cloud? What about IT
the business to align itself with IT’s. Silo-based organizations that primarily operate commercial
organizations and manual processes still create software instead of doing their own custom
CONTENTS Page 11
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
CONTENTS Page 12
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
No Time to Waste
Just like the business as a whole, IT needs to engage
in continuous experimentation. Public clouds like READ THIS ARTICLE
AWS, along with shadow IT, are pulling businesses ONLINE ON InfoQ
away from internal IT departments. The time for
fighting to retain control is past. Its urgently need to
change from being the Department of No to being
the Department of Look Over Here. Cloud and
DevOps are two enabling practices that can help IT
address the larger transformative shifts – the service
economy, continuous disruption, and digital infusion -
that are driving business in the 21stcentury.
CONTENTS Page 13
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
Virtualization, private cloud, and DevOps initiatives Before You Implement: Identifying
are ongoing in many organizations, providing the Potential Challenges
technical foundations for continuous delivery. As in any practice-oriented implementation, a
Combined with competitive pressure created by the clear picture of the current situation is important.
growing, successful adoption by industry leaders, Awareness of your baseline and resulting challenges
it is no surprise that surveys show that continuous- to the implementation are a prerequisite to
delivery implementation is one of the current key successfully implement continuous delivery.
initiatives for many enterprises.
Based on our experience helping enterprises both
Where to Start? large and small introduce continuous-delivery
As a concept, continuous delivery has been around automation, we can describe a number of factors
for a while, and has indeed been practiced by the that can impact the implementation of continuous
front-runners in this field for many years. As a result, delivery.
plenty of books and other references describe the
principles and practices of continuous delivery and Not all of these factors will be relevant to your
sketch out in detail what the goal state can look like. scenario. For those that you do recognize, an action
item to identify the scope of the challenge, its
CONTENTS Page 14
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
potential impact on your delivery goals, and possible Initially, environment-specific endpoints in the
mitigation steps should be part of your project plan. source code required the application to be built
separately for each environment, so that a build-
Enterprise Challenges functional test-integration test cycle required almost
four hours just to build the deliverables!
1a. Large, monolithic applications
A key aspect of continuous delivery is making small, As a first step, these environment-dependent values
incremental changes to your applications and were externalized, allowing (in accordance with
services. These are simpler to test and, since only a continuous-delivery principles) just one deliverable
small part of the application changes each time, make to be built. Weighing in at more than 1 GB, this
pinpointing and remedying the source of errors and artifact still took more than 20 minutes simply to
other problems such as slowdowns much easier. be copied to the next pipeline stage, with a further
30 minutes for the target middleware to deploy and
Since each change has a much smaller impact on your process it.
target environments than a typical “big bang” release,
it can usually be pushed through your pipeline more As a result, developers ended up committing changes
quickly, too. This leads to faster pipeline runs, shorter more quickly than the pipeline could handle. In order
dev-to-prod cycles, and, thus, steadier feature to deal with this, the pipeline was throttled to trigger
throughput. only once per day. This alleviated the bottleneck but
meant that failures in the pipeline could no longer be
Large, tightly-coupled applications in which many related to individual changes, making it harder to fix
components need to be compiled, tested, and errors quickly.
deployed together are hard to update incrementally,
leading to long development, test, and deploy cycles. In order to address this challenge, developers
Quality control and especially root-cause analysis initiated a work stream to incrementally break out
are harder, too, since many changes are being components of the application into separate modules
implemented at the same time. that could be built and deployed independently,
allowing for faster feedback cycles with smaller
The large number of changes and components that change sets.
need to be modified mean that, typically, each release
procedure needs to differ slightly from the previous 2. Low levels of automation
ones. This makes it hard to create a standardized If a review of the various activities that your
delivery pipeline and to benefit from the resulting environment currently requires to transition a new
increase in reliability. application version from development to production
identifies many manual steps, you may need to
As with any iterative process, improvement through consider ways of increasing the level of automation
fast feedback is a key part of a successful continuous- in your pipeline.
delivery setup. Drawing effective conclusions from
one enormous chunk of feedback after a monolithic It’s not that we should be automating for the sake of
release is hard as there are so many changes and automation: manual activities aren’t banned from a
factors unique to this release to consider. continuous-delivery pipeline on principle. Experience
simply shows that humans tend be both slower and
Smaller, faster, more standardized pipeline runs less accurate at the kind of repetitive tasks that make
greatly simplify the feedback and improvement cycle. up the bulk of a delivery pipeline.
1b. The story of the big app A high percentage of manual steps will thus
As part of moving to a more agile development likely prevent you from being able to scale your
methodology with shorter iterations, a large continuous-delivery implementation to the desired
insurance organization started building a delivery number of pipeline runs. In order to meet your
pipeline for a claims-processing platform. The throughput and consistency goals, you are usually
platform consisted of a single application based on required to either automate many currently manual
an internally developed framework and took over an steps in your delivery process or remove certain
hour for a full compile and unit-test run.
CONTENTS Page 15
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
steps from the process altogether if suitable environments that, due to a complex integration
alternatives are available. of the CMS, webservers, and a number of external
endpoints, had been complicated and expensive to
It is important to treat this automation effort as set up. In order to prevent environment conflicts,
seriously as any other development effort, applying a round-robin system had been implemented, with
appropriate design, coding, and testing practices in subsequent pipeline runs blocking until the next test
order to avoid ending up with a ball of mud that’s environment became available.
impossible to maintain. The infrastructure-as-code
movement has made significant steps in this area, With content changes arriving frequently, it quickly
for instance promoting test-driven development transpired that one suite of tests that verified long-
of provisioning and deployment automation and running buying sessions caused the pipelines to
providing supporting tooling. back up and eventually overload the orchestrator.
First, the retailer added a hard timeout that would
3a. Contended environments allow the pipeline to resume. Subsequently, tests
If your organization currently works with a limited started behaving erratically, failing in some runs then
pool of shared test environments, there is a risk succeeding immediately afterwards, without obvious
that you will quickly run into a bottleneck while cause.
implementing continuous delivery.
Investigation revealed that the hard timeout was
Firstly, the ability to block or reserve an environment disrupting the database cleanup procedure, leading
becomes necessary if your delivery pipelines trigger to corrupted environments. To prevent this, the long-
on code changes: two pipelines running side by side running test suite was simply disabled, lowering test
need to be prevented from attempting to deploy and coverage. After a high-profile glitch, the team bit the
test in the same environment. You also need to take bullet and set up automated provisioning for their
measures to prevent one pipeline from blocking an test environment, including development of mocked-
environment for too long or to keep one pipeline up versions for external endpoints.
from always just beating the other to the required
environment, leading to resource starvation for the Automated test-environment setup has since been a
lagging project. requirement for all test-automation projects at the
organization.
An interesting data point in the survey mentioned
in the introduction is that one of the leading 4. Release-management requirements
causes of deployment failures is a misconfigured or The canonical delivery-pipeline diagram, with
broken environment that has been unexpectedly its stages and feedback all the way through to
modified by previous teams or test runs. Even if your production, looks temptingly straightforward. In
environment pool is sufficiently large to avoid the practice, as soon as we approach QA or production in
starvation problem, regular pipeline failures due most enterprise environments, an increasing number
to misconfigured environments will also limit your of release-management requirements must be met:
ability to reliably deliver new features. creation of a change ticket; placing the change on the
agenda of the next change-board meeting; receiving
If you plan to run delivery pipelines at scale, change-board approval; confirming deployment
you need a dynamic pool of available, clean windows; etc.
target environments. Private, public, or hybrid
cloud platforms, coupled with provisioning and How to integrate such requirements into our delivery
configuration-management tools, allow you to grow pipelines is an important question that continuous-
and shrink this pool automatically and on demand. delivery implementations in enterprises need to
address. One option is to simply cap all delivery
3b. The story of the limited environments pipelines at the test stage, i.e. before we run into any
After a significant push to develop automated tests, release-management conditions. The goal is typically
a retailer implemented a publishing pipeline for a to take continuous delivery further than just test
large customer-facing website. Next to accelerated environments, though.
releases of new content, another anticipated
benefit was improved utilization of the three test
CONTENTS Page 16
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
Can the various release-management steps be per technology stack is often a useful starting point.
integrated into the pipeline, e.g. by manually and, Over time, you will hopefully eventually be able to
eventually, automatically creating and scheduling a consolidate towards just a handful of pipeline types.
change ticket or by automatically setting a start time
on the pipeline’s deployment phase from the change- 6a. Job ownership and security
management system? When everything is running smoothly, it is easy
to forget that automated delivery pipelines
Is it possibile to revisit the need for certain change- are processes that span many parts of the IT
management conditions in the first place? Most organization, from development through testing to
change-management practices come from providing production.
assurance that only changes of an approved level of
quality and stability make it to production – precisely When pipeline stages fail, though, it is essential
the level of quality and stability that prior stages of a that clear responsibilities are in place to fix things
delivery pipeline are intended to verify. and get the delivery stream running again. Every
pipeline stage should have an owner, champion, or
Experience from well-known examples of responsible person/team who is tasked not only with
organizations proficient in continuous delivery, fixing problems but also contributing to feedback-
such as Netflix, Etsy, and others, indicates that driven improvement of the pipeline as a whole.
quality, traceability, and reliability of releases can
be achieved using pipelines, without the need for Since visibility into the state of the entire pipeline is
heavyweight change-management processes. important for all stakeholders, not just the owners
of the individual stages, it is important that any
5. Scaling up jobs considered orchestration tool offers a suitable
A large organization with a diverse service portfolio security model. For example, developers will
has many pipelines to manage as it scales its probably need to examine the results of a functional
continuous-delivery implementation. Your service test to help identify the cause of test failures.
portfolio likely spans different technology platforms, They should not be able to disable or modify the
different departments, different internal and configuration of the functional-testing step, however.
external customers, different development and
support teams, etc. 6b. The story of the orphaned pipeline
Planning a greenfield project to develop a mobile
If each application defines its own custom pipeline, application and corresponding backend to allow
how will that affect management and measurement customers to customize their vehicles, a car
of your continuous-delivery implementation as a manufacturer decided to start with continuous
whole? If every pipeline ends at a different stage in delivery from the outset. It hired a couple of
the delivery process, how can you compare metrics experienced build-and-release engineers as
such as cycle time, throughput, or percentage of consultants to set up the pipelines. The project
successful executions? successfully went live and the consultants moved on,
job well done.
A large set of pipelines is easier to manage if each
one is based on a standard template. Templates For a while, everything went smoothly. Then, one of
can be as simple as a shared wiki page but common the mobile platform branches suddenly failed. Cue
pipeline orchestrators such as Jenkins (Templates angry calls and emails from the business owners,
Plugin), Go (Pipeline Templates) and TFS (build and a quick fix: the failing pipeline stage was simply
process templates) also support them. Standardized cut out and bypassed. The (only partially tested)
pipelines also allow for more meaningful comparative application appeared in the store again, and the
reporting as well as allowing lessons learned in one missing stage was quickly forgotten.
pipeline to be applied to many others – improvement
through feedback being a key component of Over time, similar emergencies resulted in disabling
continuous delivery. or reducing in scope more and more segments of the
pipeline. Small bugs appeared in the application with
How many templates you should start with depends increasing frequency, but without an owner and with
on the variation across your service portfolio; one
CONTENTS Page 17
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
the original creators gone, restoring the pipeline to Analyzing which of the common challenges to
its original state was on nobody’s radar. continuous delivery apply in your situation should
be a preparatory step in your implementation.
A new member of the development team, coming Mitigating any challenges that you identify early in
from a company with a strong continuous-delivery the project cycle should help your implementation
mindset, wanted to improve the situation and progress smoothly. Experience in addressing these
informally adopted the pipeline. As a developer, she issues will also prepare you to effectively address
did not have permissions to change the QA stages the next set of challenges you will encounter as the
of the pipeline herself, so she tracked down the QA implementation progresses.
team members who had originally worked with the
team. Gaining an accurate picture of your current baseline
and structuring your implementation in measurable
Two QA engineers in particular were happy to see phases are the first steps to clearing the way for
their original efforts restored to working condition, your first delivery pipelines with defined roles and
but with a backlog of QA work for other projects, responsibilities for each phase.
they were only able to help sporadically.
Your continuous-delivery implementation will then
None of the required fixes was complicated in itself – be on the way to providing faster releases, more
archiving of test results to a wiki had broken due to a reliable feature delivery, and steady improvement
change in API, the location for automated publishing driven by quicker feedback and better insight.
of documentation had moved, etc. – but without
an official project and associated billing code, the
QA manager was not willing to let his busy team
take time to tackle these issues. In the end, only an ABOUT THE AUTHOR
escalation to the VP of engineering and continued Andrew Phillips is VP of products
efforts from the developer and QA team members for XebiaLabs, providers of
finally led to approval of a pipeline maintenance application-delivery automation
project. solutions. Andrew is a cloud,
service delivery, and automation
Such an ongoing project is now created as standard expert and has been part of
for continuous-delivery implementations at the the shift to more automated
company. application-delivery platforms. In
his spare time as a developer, he
Conclusion worked on Multiverse, the open-
Driven by market and customer pressure, market source STM implementation,
leaders have implemented continuous delivery contributes to Apache jclouds,
as a strategy to accelerate time-to-market, and the leading cloud library, and co-
leading organizations are looking to follow. While maintains the Scala Puzzlers site.
much has been published on the principles and
processes of continuous delivery, practical advice
on how to approach and plan a continuous-delivery
implementation in an enterprise environment is hard READ THIS ARTICLE
to come by. ONLINE ON InfoQ
CONTENTS Page 18
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
CONTENTS Page 19
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
collaboration skills. This also implies letting Recently, authors Gene Kim, Kevin Behr, and George
teams form and empowering them. Spafford developed a fiction novel called The Phoenix
Project that outlines what a hypothetical DevOps
5. Lack of baseline measurement, clear definitions transformation looks like. While the novel is a way
of done, and ongoing metrics for learning for people to understand how DevOps change
throughout the DevOps journey: Two of the can happen, it might be great to hear about some
easiest metrics to implement are customer checks and balances that go into this transformation.
satisfaction and cycle time. Some organizations Here is a simple roadmap framework that may be
may want to use cost of delay to rank DevOps customized to suit your organization’s needs.
priorities.
Based on the foundational vision for a DevOps
6. Rigid process framework: This creates no transformation and the gap to be bridged in
value but needs to be followed for the sake of organizational culture, the organization may or may
documentation or the delusion of control. not be able to make the change sustainable.
Simply put, change management is hard! 2. The leadership must be willing to make hard
decisions in staffing, in restructuring the
organization to get rid of silos, and in rethinking
CONTENTS Page 20
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
major strategic vendor contracts if needed. Some 10. Most of all, start with a team that is open to
of the strategic vendors that came with the era embracing change and that will learn quickly in
of mass outsourcing may not be compatible with order to achieve success.
or sufficiently flexible to operate in a more agile
environment. 11. Ensure your organization has a decent portfolio-
management framework that uses the unit
3. Remove excessive approval gates from heavily of capacity as team rather than headcount.
bureaucratic change-management meetings. Portfolios should look at whole teams servicing
a market/P&L and ideally these product-centric
4. Invest in automation tools and role teams will remain intact beyond any single
transformation. Engineers’ hardware skills project. This is especially important when you are
need to be supplemented with crosstraining on dealing with large scales. Enable and empower
technology. This takes care of situations in which engineers on the team to pick up cross-functional
teams wait on an individual to carry out task that skills; for example a sysadmin must be able to
could be performed by others. work on cloud computing as well as on physical
hardware, and on various operating systems.
5. Form communities to share the emerging good
practices that can be leveraged across the 12. Developers and Infrastructure must start to
organization. speak the same language through tools. Have a
strategy for the deployment pipeline. Don’t just
6. Get ready to restructure entire departments. look at it as a code line-up but as a value stream
Once the agile teams are formed (scrum/kanban), right from product management to deployment.
the waste will be exposed, which will bring about Ensure that every team and department
transparency in stories/tasks delivered by the manages a high-quality deployment pipeline.
various teams. This cycle will further expose and Every time there is a code failure, it must be
elevate opportunities for improvement such as fixed, validated, and deployed in the respective
speeding up delivery. environments. This will enable you to keep all
your environments in sync and updated with
7. Invest in developing technical skills, including code/bug fixes.
three-dimensional thought process and
the ability to pair quickly with application- 13. Reduce batch size to reduce deployment risk and
development teams. The emphasis needs to be to improve overall cycle time. This depends on
on developing talent in people rather than on effective collaboration between engineering and
process. Organizations should experiment with product management. Define work packages as
rotating people through a variety of roles so they weekly value increments.
develop greater empathy and experience.
14. Optimize teams based on value streams.
8. Bring in code-quality profiling and test Optimize product owners, too, within the
automation. Tools for configuration management DevOps teams. Stretch the definition of the
and code quality will not provide full benefit if DevOps term to fit product owners; without
the code base is not checked for quality based them, it is just not effective enough.
on standard quality profiles. The quality profiles
must be part of the performance-management 15. Finally, make work visible through teams.
system as a shared goal and code quality should DevOps needs standups not within infrastructure
be analyzed with quality thresholds that will but within the value stream. It is tricky to give
reject poor code (eliminating technical debt status to every development team. A simple
at the source). Make it difficult for bad coding visual board that reflects status as backlog/in-
practices to thrive. progress (WIP limit)/review/done will go a long
way toward improving customer satisfaction and
9. Get ready to change the performance- visibility.
review process and focus it more on teams rather
than individual performance.
CONTENTS Page 21
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
CONTENTS Page 22
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
Agile and DevOps people talk a lot about what to do when they want to encourage
change – “Form a self-organizing team”, “Break down silos”, “Automate everything”.
I note that people talk a lot less about how to achieve these good things, the
enablers. Frustratingly, logical arguments don’t always win, that’s when it’s good to
possess a few of the change agent’s skills.
I’ve had a few skirmishes with organizational change, Consider how people will react, their motivations
MixRadioevolved from long release cycles to (almost) and values. If profiling sounds tricky at least clear
Continuous Delivery in 2011. During the process I your preconceptions and maintain an open mind.
learnt an awful lot, some of which I shared in a recent
DevOps Summit talk. Firstly, I think a little theory 4. t’s all about starting a movement – That’s the
helps conversations: process of gathering a group and nurturing
followers so the group, and idea, grows. Luckily it
1. Don’t Learn Everything the hard way – DevOps takes just three minutes of TED talk to explain.
is a relative new comer, other groups have way
more practice at making change happen. It’s Following up the theory are a few practical points:
well worth learning from them, including Scrum
(especially types of resistor), read The Goal or People with influence can help create that
follow Deming and Kotter’s work. movement, but position in an organization chart isn’t
necessarily a good predictor of influence, it’s worth
2. Learn how far (and fast) you can push change – looking for the intersection between the chart and
Everyone has a different reaction to change, and social network.
often it is fine grained and unpredictable. When
introducing something consider Viney’s J curve - Be sensitive to “change disparity”, where there is a
how much short term slow down and instability wide gap in understanding,or approach, between
are people willing to accept? early and later adopters. This can be as demoralizing
and damaging as any organizational silo.
3. Not everyone thinks like you – Remember
those logical arguments? Everyone is wired Feedback and dissent are vital to fuel ideas, and
differently, their logic circuits will inevitably determine if you’re on a productive track. Pressure,
output something different and unexpected. history and trolls inevitably bring negative
CONTENTS Page 23
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
CONTENTS Page 24
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
As the DevOps movement gains popularity, enterprises have started to adopt its
concepts and tools to manage large infrastructures and complex delivery processes.
InfoQ asked some experienced DevOps adopters about the organizational and
technical obstacles the movement needs to overcome to step into the enterprise
world.
InfoQ: To what extent does the size of an
The panelists organization affect the successful implementation
Gene Kim - Founder of Tripwire and of a DevOps culture?
author of the upcoming book The
DevOps Cookbook from IT Revolution Gene: Being in a large enterprise IT organization
Press. is no excuse not to adopt DevOps types of
practices. But it would be foolish to ignore the
Jez Humble - Consultant at challenges caused by the cultural aspects and
ThoughtWorks Studios and co-author of effects of incentive structures that happen in larger
Continuous Delivery, who blogs here. organizations.
Patrick Debois - Developer, manager, There’s a considerable amount of literature that the
sysadmin, and tester who coined the term amount of counter-productive “us vs. them” tribal
DevOps and organizes regular DevOps behaviors occurs more in larger organizations. It isn’t
Days. restricted to dev vs. ops, but includes production vs.
sales, marketing vs. development, development vs.
John Allspaw - SVP tech ops at Etsy.com QA, etc.
and culture hacker.
Dr. Eliyahu Goldratt described this as the “local
Mitchell Hashimoto - Creator of optima” problem in his theory of constraints and his
Vagrant, operations engineer at Kiip, and book The Goal. Often, the tribal warfare between
open-source enthusiast. groups is codified in their measurements.
CONTENTS Page 25
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
much inventory as possible; while the VP of plant the criteria above. That’s something that’s very hard
operations, in order to reduce costs, is incentivized to implement, and usually the biggest barrier in
to reduce the amount of inventory. So, no wonder large organizations is that the leadership - perhaps
they’re often warring with each other. unwittingly - doesn’t understand the importance of
creating such a culture, or know how to do it (see my
The classic DevOps example is the VP of discussion on Theory X and Theory Y below).
development who is incentivized by feature time-
to-market and thus is motivated to deploy as many In theory, I don’t think that the size of an organization
changes as possible, but the VP of IT operations is should matter. In practice, I wouldn’t be surprised if
incentivized by operational availability and thus is success on that front had an inversely proportional
motivated to deploy as few changes as possible. relationship to size, mostly because larger
organizations have some characteristics that allow
Overcoming this core, chronic conflict between for scale, but may prevent large shifts in culture
development and IT operations is a key part of a to propagate. For example, a company whose
DevOps transformation. When organizations make development group is geographically separate
this breakthrough, the results are amazing. I’ve (different building, different continent) from
seen organizations with thousands of developers the operations group are going to have a tough
and hundreds of IT operations staff make incredible time getting empathy, cooperation, and frequent
improvements in feature flow while increasing communication put together unless it invests in
stability and reliability. expanding how the groups communicate.
Jez: My personal definition of DevOps is “a Having said that, if a company has small pockets
placeholder for a continuing discussion about how of dev and ops groups co-located or who can
everyone involved can work together to improve communicate freely and given a wide charter
the business of building and running systems.” So I’m on implementation of technology, I could see it
going to argue that you can never be “done” with a working well. This is what’s been suggested before, a
DevOps implementation - as Mike Orzen said to me, skunkworks approach: start with a small group; get
you shouldn’t think of such an implementation as a them to ship something that has higher quality and
project or program because they have end-dates. operability than the status quo; and then point to the
Thus I believe DevOps should be implemented cooperation/collaboration as something to replicate
through continuous improvement - find out what elsewhere. I’ve seen and heard about this approach
your biggest problems are, try and define some working, but I haven’t yet see it spread entirely
quantitative goals you want to achieve, and then across the org until it’s the predominant cultural
come up with some ideas about how you might norm.
achieve them. Run some experiments with some
teams who have a high level of maturity and are Mitchell: I’ve never worked in an organization with
willing to try things out. Then take the lessons more than 50 people, at least as an engineer, so I
learned from these experiments and apply them to don’t have any experience to back up any answer to
other parts of the organization. this question. It’s always easier to invoke change in
a smaller group than it is in a larger group. However,
How does the size of the organization affect this some large organizations are set up in such a way
process? First, of course it will take longer. Second, that incorporating a DevOps culture is less painful.
you have to get buy-in from the leadership to get For example, if the organization is broken up into
the time and resources you need to carry these several small, autonomous, agile groups of a handful
experiments out and accept that they will slow of people, then incorporating DevOps into one
things down and cause pain in the short to medium group is almost as simple as doing so in a start-up
term. Finally you need people on the ground who environment.
are willing to make the time to experiment and
collaborate. When more people are involved, it is important to
show each person the value that DevOps brings
Thus in a sense a “DevOps culture” means an to any organization. For developers, this means
organizational culture in which continuous shipping features faster; for operations, this means
improvement is actually possible - one that fulfills sharing more responsibility and getting more eyes
CONTENTS Page 26
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
on the infrastructure. For business folks, this means around governance (Can we have developers and
improved overall agility, which is typically cheaper. operations people collaborate and still be SOX or
PCI-DSS compliant?), empire-building by managers
Patrick: As with any change, the number of people of functional silos, and an unwillingness to create
to be changed will affect the speed of change and slack time to work on improving the delivery system.
impact: within smaller organizations, new ideas will This last problem exhibits itself in different ways in
take less time to reach all people and when the ideas different parts of the organization. In development,
reach people, the initial idea will stay more pure you find managers who won’t let developers do
because it has not been translated/transformed anything other than work on features and fix bugs.
along the way. This is regardless of top-down of In QA, testers are focused primarily on performing
bottom-up approaches. manual testing. Operations spends its entire
time firefighting. Nobody has time to think about
Larger organizations will by nature have more improving the process. It’s like a woodcutter who is
structure/rules in place and changing them will also under a tight deadline to cut down a lot of trees, and
take more time, much like turning an oil tanker into thus doesn’t want to stop cutting down trees in order
a kayak. Still, the size is not a guarantee of success; to sharpen his axe.
even within small organizations, early failures or
misinterpretations can lead to non-adoption. Of course, there are technical issues too. But more
than environmental heterogeneity, I find that
Therefore I think it’s important, as with all change, often a bigger problem is enterprise architecture.
that there is value and benefit for doing so. Showing In enterprises, systems are usually big, monolithic
early and repeated success is crucial. codebases that are tightly coupled to each other
and to COTS that has been heavily customized.
Thus you can’t deploy anything without deploying
InfoQ: When talking about DevOps in large everything, which makes provisioning production-
traditional organizations (enterprises), one of the like environments for integration and testing
main roadblocks seems to be the environment’s purposes incredibly slow and expensive. The first
heterogeneity (machines/OS) and the fact that priority here is to work on making their systems
existing tools seem to work really well only in more modular so you can deploy individual modules
particular environments rather than mixed ones. independently in an automated fashion and find the
Do you agree? majority of bugs through acceptance testing in a
non-integrated environment. Modular architectures
Gene: Heterogeneity is a fact of life, and I don’t also make integration testing easier. When
believe it’s actually a valid DevOps objection. enterprise architects think about requirements for
After all, any IT-operations organization that their systems, deployability and ease of testing and
has had any amount of success will struggle with integration don’t feature nearly as highly as they
complexity, where a sprawling number of platforms should.
and applications starts becoming a drag on daily
operations. When this happens, organizations need John: I can see how someone might take that stance,
an architecture and platform strategy to help to but I don’t think that it’s a true impediment. I can’t
decide where the organization will invest to create say with a straight face that the converse is true,
mastery, and which ones to abandon. that homogeneous environments would have a
better time getting development and operations
Overcoming complexity is part of the growing pains cooperating and collaborating. I guess one could say
in any IT organization, with or without DevOps. In that the more homogeneous an environment is, the
fact, done right, DevOps can help ensure that there’s fewer automation (imaging, config management,
always fast flow of planned work, which should help deployment, monitoring, etc.) tools would be needed,
accelerate the paying down of technical debt. which would make it easier for multiple parties to
share experiences, code, and adjustments.
Jez: I actually think that the organizational issues
I discussed in the previous answer are a lot harder The ironic thing that I’ve found in companies that
to solve than the technical ones described in this have a huge number of software stacks across
question. The main roadblocks I find are concerns pockets of the company is usually indicative of
CONTENTS Page 27
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
historical rationales that follow axioms like “not as a form of technical debt, especially when systems
invented here”, “right tool for the job”, and “my become legacy. I would not consider it a roadblock of
manager knows this tech, so we’ll use this in our DevOps adoption, though.
group”, which are local optimums (good for the
group), but globally sub-optimal (not good for the
entire company). Part of a mature dev and ops InfoQ: Opscode Chef’s CTO Chris Brown recently
relationship is to make tradeoffs explicit (in this mentioned the importance of migrating private
case, when choosing software), and globally optimal Chef to a database (MySQL and PostgreSQL)
solutions come from that. more familiar to enterprise folks. Do you think
avoiding technical disruption is a requirement for
In the extreme case where many groups all over DevOps to thrive in enterprise settings? Or, on the
a company have decided on completely unique contrary, is such disruption needed to trigger or
software stacks, there’s a danger that even if there reinforce cultural change within organizations?
aren’t organizational silos, there can be implicit ones
aligned with the stacks: for example, the PostgreSQL Gene: I think the transition Chris Brown is referring
group, the MySQL Server group, the Windows group, to is not DevOps-specific, but more about how
etc. Walls that align on those boundaries are still technology vendors need to fit within the technology
walls to hurdle. capabilities of their customers. We went through a
similar transition when I was the CTO of Tripwire.
Mitchell: Heterogeneous environments certainly We migrated to Oracle and MySQL so that creating
raise the difficulty level substantially. It is easy for a new database instance would be a routine task
many people to disregard this and yell “use the same (i.e. opening a ticket), instead of a novel one-off task
machines and operating systems, obviously!” But I involving days of research for our customers.
think most organizations would prefer a homogenous
environment, and simply end up heterogeneous due This reinforces the adage that initiatives such as
to factors they can’t control. Some software only DevOps should leverage existing processes and tools
runs on some operating systems, some parts of the as much as possible.
organization move forward with new systems while
legacy systems retain older versions, etc. Jez: You need to work out what battles to fight. For
me, when people within organizations are trying
For myself, I can say that it is a top priority for my to change the way they work, the key thing is to
own tool, Vagrant, to support as many environments demonstrate measurable improvement as rapidly
as possible. If Vagrant doesn’t work properly in as possible, and certainly within a few months, and
one environment, then it is a bug. As Vagrant is a then keep doing it. That necessarily limits the scope
relatively new tool and only recently starting to of what changes you should embark on. The changes
breach larger businesses, I’d say that as tools become with the biggest lead times are political, so if you’re
enterprise-ready, one of the necessary core features going to avoid a big fight with the operations folk by
is widespread system support. agreeing to use Postgres or MySQL, that’s probably a
smart move.
Therefore, while heterogeneous environments are
certainly annoying to deal with, I expect newer tools John: I don’t think that avoiding technical disruption
to embrace this sort of chaos. is a requirement. Instead, I’d say that a requirement
be that an organization have the ability to make
Patrick: If you think of DevOps through the CAMS tradeoffs in every technical choice explicit, in terms
(culture, automation, measure, and share) model, of performance, feature set, and operability. I see
I don’t see any inherent DevOps issue, but more where and how Chris would say that, related to my
technological challenges. We should still use the best comment in the previous question.
tool for the job, regardless. Reducing the number
of tools will contribute to speeding up the learning Now, it’s probable that the cultural shift needs a big-
curve. But then again, it’s in the nature of enterprises bang moment, such as a large technical decision, in
to have a multitude of different apps build at order to harness the enthusiasm and self-selection
different times with different technologies. It’s of engineers who are up for such a change. But is it a
important that you keep fighting this heterogeneity requirement? I’m not entirely sure.
CONTENTS Page 28
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
Mitchell: It matters. Opscode Chef is open-source organization. Finally, everybody needs a clear, shared
software, an open box that they expect organizations vision of where they want to go in order to create a
to be able to install and manage on their own. If an plan on how to get there.
organization doesn’t feel comfortable with this, they
can go with private Chef. On the other hand, when John: I would say that organizations that don’t
something is a black box, technology choices do not view technology as a competitive advantage are
matter so long as the company behind the software the largest obstacles. This is my own bias, but when
makes service-level guarantees about the software I see a company refer as a whole to the people
they are shipping. who run the computers as the “IT department”, as
opposed to “application development” or “technical
Patrick: The balance is somewhere in between: to operations”, etc., I see a company who very much
have people adopt new technology, they have to be views computers as a necessary evil for the business,
able to relate to either the problem, technology, or not a vehicle for enablement.
solution you propose. Disruption brings people out
of their comfort zones. Some people like that as a I once worked at an advertising firm in Boston. The
way of being challenged; others not. It’s important resourcing, focus, and ability to get things done in
you understand your audience. If, like Chris, you want technology to enable the business was generally on
to drive adoption of your tool, make the barrier for par with the facilities group, which was charged with
adoption lower by reducing the learning curve. making sure light bulbs got replaced when they were
burned out. The engineering groups were not seen as
enablers for the business so therefore were left out
InfoQ: What would you say are the main obstacles of the loop of conversations about future direction
and future for enterprises that adopt DevOps as and other ways that technology might help move
part of their ALM? the company forward. This meant that culturally, the
engineering groups were treated as second-class
Gene: Based on the work I’ve seen presented by citizens in the company, and therefore didn’t get as
enterprise IT organizations (e.g. Unum, Paychex, much attention paid to progressive topics, which is
BNY Mellon, World Bank, etc.), DevOps initiatives needed.
are often pushed by the same groups that drive
enterprise ALM and SOA initiatives. This makes So the greatest obstacle for enterprise companies is
sense. These are the groups motivated to improve to get past the stereotypical view of IT as technicians
service quality, and routinely work with enterprise keeping the servers working and start viewing
architecture, development, QA, and operations. them as engineering-driven groups that can bring a
competitive advantage to the business, and therefore
Their challenge is to get all these different groups worthy of investing time and effort.
to act as one super-tribe, trying to solve a larger
systemic problem as opposed to allowing these Mitchell: The biggest obstacle at this point is
groups to act as warring tribes. education. DevOps has been a turbulent movement
the past few years because it hasn’t been strongly
See the next question below for how ALM groups defined. I think we’re finally reaching a place where
are uniquely suited to solve this organizational silo more people can comfortable say what DevOps is
problem. along with case studies showing it actually works.
Given this, the resources are still too hard to find
Jez: First you have to recognize that you have on what DevOps is and how you can transition your
problems and be committed to solving them on organization to a DevOps culture.
an ongoing basis, and that doing this is going to
be painful, especially in the short term. The scope I’d like to see less hand-wavy talks on DevOps
of DevOps adoption is pretty wide, ranging from and more concrete step-by-step approaches
how you approach compliance and auditing to the to implementing DevOps. I realize that these
architecture of your systems. People will need approaches don’t work for every organization, but at
training, coaching, and support in everything least it’ll help guide folks.
from maintainable test automation to how to
communicate effectively with other people in the
CONTENTS Page 29
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
Patrick: If you consider the challenges for the decisively to end it, working together to overcome
DevOps movement, it’s to bring out more enterprise big challenges that could scarcely be imagined in
success stories compared to the many startup/ months prior.
Web 2.0 company successes. People are trying with
varying success, but they are often scared to bring Outcomes include shorter deployment times,
out the non-successes, as they would consider them better automated testing, less time spent doing
failures. Sharing failure is an important thing of code packaging, more successful releases, and
learning, and needs to be stimulated. faster deployment cadences. Furthermore, with
better feedback loops between IT operations and
For people within the enterprise, I think challenges development, developers get needed information
are similar to those of any change being introduced faster (often through self-service), the numbers of
(like agile several years ago). Depending on whom escalations drop because developers have cross-
you talk to – CEO, CIO, project manager, or technical trained IT-operations staff, and a higher percentage
person ¬– it needs to be compelling and bring value. of organizational cycles are spent paying down
The obstacle for adoption is often the inertia of technical debt.
companies and looking wearily at the new trends.
They need to be proven. People and their habits are The result is faster flow of planned work, while
really the biggest challenge. I found that often it increasing the stability, reliability, resiliency, and
becomes a belief question: does collaboration and security of the production environment.
shared goals increase value or do you believe stricter
and clearer separation of duties have a better impact. And when that happens, development and IT
Depending on the team and person’s vision, they will operations are truly helping the business win.
be inclined to go for one or both. I even believe that
some people will not thrive within a DevOps mindset Jez: Yes. For me, the most important message of
if that’s your core belief. DevOps is that nobody is powerless – there are little
things any of us can do every day to make things
better. Developers can go and have lunch with the
InfoQ: Do you think it’s possible for large DBAs and find out why they hate the developers,
enterprises suffering from organizational silos to and what they could do to make things a little bit
realize the benefits of a DevOps approach? How? better. People in operations can carve out 30 minutes
of their day to set up version control and check all
Gene: a. Recognition of a shared problem their scripts into them so that they can improve their
configuration management and give read access to
What I’ve found in over five years of research is developers so they can understand how production
that the organizational-silo problem leads to an environments are created and maintained. Set
adversarial relationship between development and up cross-silo lunch-and-learn sessions to share
IT operations, which results in an ever-increasing knowledge and develop relationships between
amount of technical debt that slows down the rate groups. Create an internal blog. Nobody should be
of feature release and time to market, as well as waiting for a mandate from on high to start up some
increasing instability and chaos in the IT production kind of “DevOps program”.
environment.
John: I do, but only by investigating the true
The challenge is always how to show development reasoning behind the original silo-ing of the groups.
and IT-operations leadership that neither of their If you can’t illustrate quickly and easily why it’s
goals are being met and, left unaddressed, will beneficial to have groups cooperate, then you can’t
continually get worse. make the case for doing it. Also, if upper management
isn’t on board, especially management that believes
b. Willingness of management and practitioners to that they are benefitting from silo-ing the groups
face it (vis-à-vis, a convenient “cover your ass” and finger-
pointing boundary), then traction will be tough.
I’ve found that when we demonstrate to leadership
how the entire organization is jeopardized and I believe the trick is to convince plainly that the effort
threatened by this inter-tribal warfare, they will act put in to cooperate, collaborate, and communicate
CONTENTS Page 30
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
between dev and ops is an investment worth making, is the extent to which people have been talking
worth more than the cultural security blanket of about these ideas for decades. Peter Drucker was
keeping a finger-pointy culture. This persuasion can’t discussing the differences between knowledge
happen unless both teams recognize the legitimate workers and manufacturing in the late ’50s, and we
place for domain expertise, which means that they still haven’t learned those lessons. For example, he
defer to each other along those boundaries. said, “Productivity of the knowledge worker is not
– at least not primarily ¬– a matter of the quantity
Mitchell: I think it is possible. The people in charge of output,” and yet you still find many organizations
of these silos need to see the benefit DevOps has on that measure developer productivity in terms of lines
the business and the culture. A change for the sake of code per day. Lines of code are a liability, not an
of change is pointless, but when there is actual value asset! Douglas McGregor came up with Theory X and
gained, then we see change happen. Theory Y in the 1960s, and it is clear that knowledge
workers can only be effective in an organization in
Patrick: Sure, they can and I would even say they which managers have a Theory Y attitude, but that
probably often need it the most, as the size of is certainly not the norm in many (perhaps most)
company often is driver in creating groups of people enterprises today.
as a natural human reflex for grouping similar things.
The approach from switching from project teams to John: Frankly, I don’t pay much attention to Gartner,
product teams with full responsibility from beginning and I’m not really interested in the business of
to the end can work well within an enterprise. This industry predictions. If an analyst is right about a
will foster collaboration and better results. But much prediction, it didn’t really move the industry forward.
depends on the culture of the company: IT doesn’t If they’re wrong about a prediction, it didn’t move the
live in a vacuum, it’s a balanced act. Those product industry forward. What I’m interested in is the dirty
teams often seem to be a duplication of effort/costs details that bring maturity to an organization’s ability
by less leveraging of the so-called economies of to engineer solutions to problems in the present.
scale. Still, the benefit from adding agility and self-
management outweighs this. Mitchell: Yes. I work in a reasonably young, “hip”
environment, so DevOps has been easy to integrate.
But it still has obvious rough edges. I’d say in five to
InfoQ: DevOps appeared a year ago on the Gartner 10 years it’ll reach a solid stabilization point.
hype cycle as an emerging approach holding
less than 1% enterprise market penetration but Patrick: I’m aware that many of the DevOps
expected to reach its plateau of productivity discussions are being done by the early adopters
in five to 10 years. Does this match your own and will take time to spread. Some time ago, people
expectations? questioned agile, now about 10 years old, and how
much its market penetration was. I have no crystal
Gene: I believe we’re only at the very beginning of ball, but I hope to think we still have a lot of growth
DevOps adoption, which will result in a massive potential. The technical aspects like infrastructure
increase of productivity in enterprise IT. When I’ve as code are faster because they are already instant
asked enterprises who’ve adopted DevOps how practical. In the future, culture adoption will increase
to respond to people who say DevOps isn’t for but will take longer.
enterprises, they’re always puzzled. To them, it’s
merely a prioritization issue.
InfoQ: Could too much hype eventually harm
I believe that the DevOps patterns are the inevitable the movement by focusing on creating DevOps
outcome when you apply lean principles to the IT jobs without actually addressing collaboration
value stream. As Dr. Deming once said, “Survival isn’t problems between devs and ops?
mandatory.”
Gene: Creating job descriptions with DevOps
Jez: I’d be surprised and very happy if we manage indicates that business leadership is seeing
any kind of pervasive change in five to 10 years. something of value, even if they can’t say what the
What has depressed me the most while working on roles, responsibilities, or daily work are. It doesn’t
my new book on implementing continuous delivery
CONTENTS Page 31
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
invalidate the need. I think it’s just indicative of how group every so often. This is ludicrous, and not a basis
early we are in this journey. for a mature engineering organization.
Currently, DevOps is more like a philosophical So I do think that the hype can harm the concept,
movement, and not yet a precise collection in the way that it could drive the focus away from
of practices, descriptive or prescriptive (e.g., the cultural focus and towards a “DevOps-in-a-Box”
CMM-I, ITIL, etc.). The intent behind the The shrink-wrapped, technology-only concept.
DevOps Cookbook project is to catalog what
the high-performing DevOps organizations all Mitchell: We see this sort of issue already, where
have in common that result in their extraordinary people call themselves “DevOps engineers” or say
performance outcomes. Our goal is to create the “We do DevOps.” Again, I find this to be caused
prescriptive guidance to create the culture, values, ultimately by a problem in education. Therefore,
processes, procedures, and daily work so that we can the hype surrounding DevOps gives off some false
repeatedly replicate their results. information, and the circle perpetuates.
You can learn more about this project here. Patrick: It’s hard to help people that want to believe
in fairy tales told by vendors, by which I’m not saying
Jez: If organizations were looking for “DevOps all vendors are bad. The hype I’m seeing comes from
people” to enable organizational change, I could get cranked-up people who have a financial incentive in
behind it. But many organizations are attempting doing so. The jury is out if they deliver their promises.
to address the dev/ops divide by creating a new The danger is that the so-called DevOps label can get
DevOps team whose job is to span the boundary a bad name due to this. One bad experience weighs
between existing functional silos that aren’t expected more than many positive experiences. Again, if you
to change the way they work. This is, of course, want to think bad, you will have all the ammunition.
deeply ironic. The focus of organizations interested By keeping the good content and stories coming we
in actually achieving the goals that DevOps enables can keep the positive side on things. Similar things
– satisfying the customer through continuous have happened to agile and lean, but the difference
delivery of valuable software, for example – should has been the speed at which DevOps as an idea
be helping their existing people change the way they has spread around the world. But that speed is also
work and learn DevOps skills such as how to treat an advantage when getting new stories and ideas
infrastructure as code. The other problem with trying promoted or adjusting remarks. Learning from critics
to hire in DevOps is that the demand for good people is important and we would clearly want to avoid to
with the necessary experience vastly outstrips have DevOps people turn to fundamentalist views
supply. And many of these people have been sucked like “infrastructure as code” is better than shell
up into organizations which then use them to try and scripting.
mitigate the symptoms rather than address the root
causes, which doesn’t do anything to increase supply.
InfoQ: Most of you have participated at DevOps
John: I think that too much hype can harm anything, Days and other conferences in this field. How do
eventually. Frankly, I’m seeing it already. Many you see the evolution of DevOps and in particular
reference DevOps and continuous delivery as its expansion from Web-based agile companies to
synonymous. How frequently you deploy, how you legacy-based process-oriented organizations?
deploy, and how automated you are has nothing to do
with DevOps, other than organizations that do make Gene: I believe that we saw DevOps patterns first
liberal use of automation and continuous deployment in the Web-based agile companies, because that’s
are often known to have a DevOps culture. where competition was the fiercest and downtime
and user-response times directly equated with
I also think that in general, there is a tendency to revenue.
minimize the “soft skills” in technology companies.
I’ve seen projects where engineers will spend months Because IT is critical to almost every business,
trying to automate a process whose main benefit is we’ll see it adopted next in the more traditional IT
that they don’t have to talk to someone in another organizations. Mike Orzen and I did an article on
value created by adopting DevOps. We believe it
CONTENTS Page 32
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
will create $4 trillion of value worldwide each year, enterprise because they’re spoiled with their small
which is greater than the entire economic output of user base and non-24x7 working environments.
Germany.
Until there is a shared understanding between those
That will have a huge positive impact on productivity groups, the healthy and mature swapping of ideas
and standards of living and reduce the amount of and concepts is going to be slow.
damage that working in IT often causes our fellow
humans. All this is why I think DevOps is genuinely an Mitchell: I’m quite new to the field, having only been
important movement. involved for a year or so, so I’d feel more comfortable
leaving this question to the more experienced people
Jez: There are plenty of Web-based agile companies on this panel.
who don’t have a DevOps culture – although you
might argue with their definition of agile, since Patrick: Over the last years of DevOps, we have
arguably if you were really doing agile you’d have seen people initially adopt the automation practices.
a DevOps culture anyway. In my experience these This is slowly shifting into the area of measuring and
companies face similar problems to organizations metrics on a more practical level. I tend to think of
that don’t define themselves as agile but are still it as the return that feedback-channel automation
interested in implementing DevOps. The main requires: automating bad practices does not improve
risk is that organizations try to adopt DevOps anything unless you learn of it. Now the security field
without a clear understanding of what they are is recognizing the value of DevOps and I’m excited
trying to achieve, and in particular without defining to see people from different parts of the company
measurable outcomes that they want to track to. adjusting their ideas. Legacy-based, process-oriented
companies will only partly be affected of a lack of
People have a tendency to start these kinds of agile tooling but hugely by the aforementioned
initiatives by buying a bunch of tools, which is almost stubbornness and inertia of the human mindset.
always a Very Bad Idea – tools are important, but
they shouldn’t be your starting point. A good way
to start would be to look at the maturity of your InfoQ: Any last words about these topics?
existing capabilities in building and running software
systems, and then how you’d like them to look based John: I would just like to say that reports from
on the measurable outcomes you want to achieve, practitioners in the field rule the day. DevOps as
and then to put in place a plan to get from A to B in a concept or collected ideas will live or die by its
not more than a few months (if you think it’s going ability to get things done for a business – which is
to take longer than that, you need to choose a closer why sharing these stories at conferences and in
destination). articles is so important. So for people who believe
that collaboration, communication, and cooperation
In my experience though, the main barriers to between dev and ops is a good idea: tell your story.
implementing the plan you come up with are politics, And don’t leave out the nasty bits. Tell it all.
culture, architecture, bad tools, and a lack of skills.
For those others who aren’t convinced of DevOps:
John: I think there is a lot of cross-pollination that if you think that your business will thrive further by
can still happen, but the empathy between Web motivating people to hoard information, isolate their
companies and enterprise companies has to grow functionality in the resource chain, or otherwise
from where it is at the moment in order to truly move work at cross-purposes with other groups…go for it
forward. I still see a good amount of condescension – as long as you share that story with the rest of your
from both sides. field.
I’ve been told by a tech exec at a bank that Etsy (or Cultural shifts don’t happen because people invent
any Web company) wasn’t a “serious” endeavor, that new words. They happen because people take action,
his bank works with “serious money” which means and then tell stories about it.
they can’t “screw around” like Web companies
do. I’ve also seen Web companies poo-poo the Mitchell: Use Vagrant! I’m obviously biased but
multiple sources have told me it helps drive DevOps
CONTENTS Page 33
Introducing DevOps to the Traditional Enterprise / eMag Issue 14 - June 2014
change much more smoothly throughout an richness of DevOps ideas. Similar to sharing code,
organization since you can more freely experiment I’d like to capture new ways of thinking and keep
and play with the tools necessary to properly on encouraging people to do the same. DevOps has
incorporate a DevOps culture. shown that grass-roots ideas can have an impact just
like you can express yourself on YouTube vs. buying
Patrick: Sharing amongst peers, organizations, airtime on TV. We are the industry that we make it to
and industries is a crucial factor in the growth and be.
CONTENTS Page 34