"DevOps" – literally, operations for software development...
DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture), and it seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology — especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective.
– One of many clunky definitions of DevOps, this one from the Gartner Glossary.
There is no succinct definition of DevOps as it encompasses a range of practices, aimed at accelerating the time to release changes to the system, while ensuring high quality through the process. DevOps avoids things getting "thrown over the wall" from one specialist team (e.g. Dev) to another (e.g. QA or Ops). By developing a blend of automation and culture, DevOps practitioners gradually evolve along a continuum of maturity from Waterfall Method to Continuous Integration (CI) to Continuous Delivery (CD) to Continuous Deployment (also CD, FFS!).
Some well publicised leaders in DevOps, on which a lot of content has been published about their methods are: Spotify, Netflix, Etsy, Amazon, Pinterest, and Google. Follow their developer blogs to get a feel for how they do things:
<aside> ⭐ HashiCorp
This company practises what it preaches by running their own business on the tools they build, and sharing their worldview as they go.
HashiCorp... → Offers a family of tools to enable "companies to deliver applications faster by helping transition from manual processes and ITIL [Information Technology Infrastructure Library] practices to self-service automation and DevOps practices". → "HashiCorp was founded and continues to be run by the primary authors of all our core technologies". "All our foundational technologies are open source and developed openly".
In The Tao of HashiCorp, the company explains its "technology-agnostic view" through which it focuses "on the end goal and workflow, rather than the underlying technologies". The company espouses moving on from a "monolithic" approach, "in which a single tool has a nebulous scope that expands to encompass new features and capabilities". Instead "[the company likes] to think of the components as blocks that are functional on their own, and can be combined in new and innovative ways".
They explain some of the key "tenets" of their approach, such as: → "Communicating Sequential Processes (CSP)", which is "a model of computation wherein autonomous processes connected via a network are able to communicate. We believe that the CSP approach is necessary for managing complexity and building robust scalable systems in a Service Oriented Architecture". → "Immutability" follows a similar approach to "version control systems, such as git" by which it "enables auditing and creates a clear history of how the current state was reached. When something breaks, the origin of the error can be determined using the version history". Hashicorp then claims that "the concept of immutability can be extended to many aspects of infrastructure".
Without lingering on too much further detail here, The Tao of HashiCorp goes on to describe the further tenets of "Versioning through Codification, Automation through Codification, Resilient Systems, and Pragmatism".
The above processes are clarified by this quote: "Codification allows for knowledge to be executed by machines, but still readable by operators".
</aside>