Continuous Delivery and DevOps:A Quickstart Guide
上QQ阅读APP看书,第一时间看更新

Tools and techniques

When we talk about tools and techniques, we're not referring exclusively to technical tools, what I'm referring to here is agile tools and techniques that will help the adoption of CD and DevOpssometimes referred to as engineering best practices. As previously mentioned, a vast number of the CD and DevOps specialist businesses that have come into being in the last decade specialize in technical tools targeting CD and DevOps (mainly DevOps, to be honest); however, there's not a vast amount of adoption of said tools outside of the traditional (Dev)Ops realm. This could be attributed to the specialist knowledge required to master the toolssomething developers don't normally have the time/inclination to understand. The opposite is also true of tools and techniques favored by Dev teams but not prevalent within their Ops peers, such as the adoption of scrum, strict version-control, and test-first development.

Some development tool vendors have realized this and built technical tooling to allow for developers to seamlessly interact with so-called DevOps tools and Ops to seamlessly use engineering best practices traditionally targeted at developers. It does have to be said that, at the time of writing, this is still far from the norm.

Going back to environment and culture, consider this: even if developers did have access to so - called DevOps tools, unless the environment and culture is such that they can freely use them (for example, they are freely able to automatically ship code changes to a given environment using a DevOps pipeline), there doesn't seem much point in them having these tools as they can't actually do anything of value with them.

To allow CD and DevOps adoption to thrive, the culture and environment in which both Devs and Ops work should allow for seamless collaboration and interaction. Along with this, the tools and techniques used to deliver software changes should be chosen by and used across both specialisms (for example, Devs should know how to use tools such as Octopus deploy, and Ops should know how to use tool such as Visual Studio).

In relation to techniques, one massive win for CD and DevOps is the configuration-as-code approach. We'll go into this in more detail later, but suffice it to say that without an environment and culture that encourages collaboration, there's a strong possibility that such a game-changing technique will not come to fruition.

Let's see what our personas can do to help:

Thus far, we've been looking at the various parts you'll need for a successful CD and DevOps adoption. Let's now start digging into specific details, starting at the top with the environment.