Jez Humble, principal consultant at ThoughtWorks
Studios, will be speaking at the upcoming PuppetConf (expected to have
1,600 attendees this year) about how organizations can deliver valuable,
high-quality software frequently and reliably through implementing effective
engineering practices. To find out more about his plans at PuppetConf and to learn more about DevOps, ThoughtWorks Studios and Puppet, I reached out to Jez for information.
VMblog: What can attendees
expect to learn about devops from your presentation at PuppetConf?
Jez Humble: Although
people often focus on tools and automation, DevOps is really about a mindset. In
this talk I'll say what I think that entails, and discuss the characteristics of
organizations in which it can exist. Most organizations don't support a DevOps
mindset, so I'll also talk about what you can do to change your organizational
culture.
VMblog: How has DevOps helped expand virtualization and cloud
computing?
Humble: I
think DevOps has focused attention on what is required of virtualization and
cloud computing solutions in order to satisfy the needs of both development and
operations. Traditionally, a lot of discussion of the benefits of virtualization
has been around the needs of operations - particularly reduced cost and
complexity. But developers are customers of this technology too: they're
measured on throughput, and to do that safely they need push-button access to
production-like test environments so they can do comprehensive
testing.
I've
seen implementations of cloud and virtualization that have zero - or
even negative - impact on the lead time of requests from dev for test
environments. But if developers can't self-service new environments through an
API, you don't have actually have cloud in my opinion, and you will certainly
miss out on many of the benefits of virtualization. The flip side of this is
that by giving developers this power you can significantly simplify deployment.
In Netflix, for example, the virtual machine images that get deployed to
production are generated as part of the development build
process.
There's
been a lot of discussion on how to leverage virtualization and cloud computing
effectively within the devops movement, which has led to lots of good patterns
and practices for building services based on them. Martin Fowler has recently
run a series of posts on patterns such as
ImmutableServer,
PhoenixServer and
SnowflakeServer.
VMblog: What
is the relationship between continuous delivery and DevOps?
Humble: You
can think of continuous delivery as the value proposition of devops - the why,
if you like. DevOps is the organizational mindset that enables continuous
delivery - a focus on everybody working together to improve dev performance
measures such as throughput while at the same time increasing stability and
reducing mean time to restore service.
DevOps
is a practitioner-lead movement that came from a dissatisfaction with the state
of the art in terms of tools and good practices, particularly from the
operations side. A big part of continuous delivery came from developers
realizing that they had to engage operations from early on in order to reduce
the pain of the "last mile" from dev complete to released.
So
really, they are two sides of the same coin. Ultimately, they're inspired by a
realization that the web hasn't just revolutionized things for users, it also
demands we return to first principles and re-think the way we build and run
software services.
VMblog: How does continuous delivery help manage the cloud and virtualization
environments?
Humble: When
you're building a private cloud or implementing virtualization, you're creating
a service, and you need to treat it like product development. Developing custom
software products is the domain of continuous delivery. It makes it cheap and
low-risk to make frequent, incremental changes to your software so you can learn
and iterate rapidly based on customer feedback.
The
big mistake lots of people implementing cloud or virtualization - and indeed any
internal tool or service - make is failure to engage with the end-users of the
services you're building early and often, and thus spending months and months in
an ivory tower building and designing something that people hate using, which
thus fails to deliver the expected value.
VMblog: What advice would you give a virtualization or cloud admin in
instrumenting DevOps?
Humble: Talk
to the people who will be running things on your infrastructure. Find out what
they need. Help them understand your constraints. Find ways to make the behavior
of the underlying infrastructure transparent so that developers understand its
characteristics and architect for it - that way you'll save yourself a lot of
pain down the line.
VMblog: How do ThoughtWorks and Puppet Labs work together for
DevOps?
Humble: Much
of ThoughtWorks' business comes from custom software development, and we have
many enterprise customers worldwide. Part of our work is helping customers
implement a toolchain that supports both the software and the processes used to
deliver and operate it - which is where tools like Puppet come in. We recently
blogged about
the work we did for Australia's National Broadband Network,
where we used Puppet and
Go from ThoughtWorks Studios to manage configuration changes
to testing and production environments, providing complete visibility and
traceability of each change, while also tying in to their existing change
management processes and configuration management database.
VMblog: Why does ThoughtWorks use Puppet?
Humble: Primarily
because we've seen it provide huge value to our customers. We've been using it
since the early days, we've gained a lot of experience with the tool and the
ecosystem, and we've been involved in developing the patterns and practices
around implementing Puppet. It fits well into our development philosophy: it's a
lightweight, powerful, flexible tool that is a force multiplier. It also helps
that it's opinionated - one of the culture hacks we like to use is ensuring the
right thing to do is also the easiest thing to do.
###
I'd like to once again thank Jez Humble, principal consultant at ThoughtWorks
Studios and co-author of Continuous Delivery, published in Martin Fowler’s
Signature Series. We appreciate you taking time to speak with VMblog.