DevOps Methodology
(Redirected from DevOps Practice)
Jump to navigation
Jump to search
A DevOps Methodology is a software development methodology where software developers are required to operate their developed systems.
- Context:
- It can be measured by DevOps Metrics, such as: Change Lead Time, Deployment Frequency, Change Failure Rate, and Mean Time to Recovery (MTTR).
- It can (often) involve DevOps Engineers (performing DevOps tasks).
- It can be supported by a DevOps System (that may be based on a DevOps platform).
- It can be associated with “You build it, you run it.”
- It can include communication practices, collaboration practices, integration, automation.
- It can include
- Version control: for reproducibility and traceability.
- Trunk-based development: to prevent merge-conflict hassles.
- Continuous integration.
- Deployment automation.
- Continuous testing.
- …
- Example(s):
- an ML DevOps Practice.
- …
- Counter-Example(s):
- See: Software Development Process, Information Technology Operations, Software Development Methodology, System Integration, Automation, Continuous Delivery, Systems Development Life Cycle, DevOps Research and Assessment (DORA) .
References
2022
- (RanSom, 2022) ⇒ Aeris Ransom (2022). "How Is Platform Engineering Different from DevOps and SRE?". In: https://thenewstack.io/ TheNewStack].
- QUOTE: ... “You build it, you run it.” In 2006, this is how Amazon’s CTO Werner Vogels described the company’s approach to software engineering. Amazon’s developers had abandoned the traditional “throw it over the wall” to operations model. Instead, they deployed and ran their applications and services end to end. And so, DevOps was born. ...
2020
- (Wikipedia, 2020) ⇒ https://en.wikipedia.org/wiki/Continuous_delivery#Relationship_to_DevOps Retrieved:2020-8-26.
- Continuous delivery and DevOps are similar in their meanings and are often conflated, but they are two different concepts. DevOps has a broader scope, and centers around the cultural change, specifically the collaboration of the various teams involved in software delivery (developers, operations, quality assurance, management, etc.), as well as automating the processes in software delivery. Continuous delivery, on the other hand, is an approach to automate the delivery aspect, and focuses on bringing together different processes and executing them more quickly and more frequently. Thus, DevOps can be a product of continuous delivery, and CD flows directly into DevOps.
2020
- (Lev, 2020) ⇒ Nir Bar Lev (2020). "The Rise of the Data Engineer". In: BLOG@CACM.
- QUOTE: ... Moreover, unlike traditional DevOps (where the core task is to replicate the core software applet in as many instances as needed and maintain high availability), here the core task is one of both replicating big training jobs and also running multiple, ongoing, disparate training and experiment jobs in parallel so as to enable an efficient and timely development process. …
2019
- (Wikipedia, 2019) ⇒ https://en.wikipedia.org/wiki/DevOps Retrieved:2019-3-8.
- DevOps is a combination of software development (Dev) and information technology operations (Ops). DevOps is a set of software development practices that aim to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives.
2017
- (Puppet Enterprise, 2017) ⇒ https://puppet.com/solutions/devops
- QUOTE: DevOps is a way to release better software. It is not just technical tools or workflows. DevOps is also a cultural practice. Devops produces better software, faster by aligning development, staging, and deployment.
While it is not a fixed methodology, automation and a collaborative culture are the foundation for accepted Devops practices, which include:
- Measuring the things that have an impact on your organization’s goals
- Making those measurements visible to everyone
- Using a shared set of software development tools and best practices
- Including all teams in the software delivery process from planning to production
- Automating the development pipeline and removing bottlenecks for faster delivery
- QUOTE: DevOps is a way to release better software. It is not just technical tools or workflows. DevOps is also a cultural practice. Devops produces better software, faster by aligning development, staging, and deployment.
2018
- (Humble et al., 2018) ⇒ Jez Humble, Gene Kim, and Nicole Forsgren. (2018). “Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations." IT Revolution Press. , 2018.
- QUOTE: ... In our search for measures of delivery performance that meet these criteria, we settled on four: delivery lead time, deployment frequency, time to restore service, and change fail rate. ...
2015
- (Greene, 2015) ⇒ Daniel Greene (2015). "What Is DevOps?". In: TechCrunch.
- QUOTE: … the term DevOps has been used for many areas: automated infrastructure provisioning tools (e.g. Chef and Puppet) and automation tools (e.g. continuous integration like Jenkins), as well as for establishing developer work environments to mirror production (e.g. Vagrant).
I use the term “DevOps” to define a set of practices, tools and policies that lead to improved quality and Automated Delivery (AD). In many ways, rapid and frequent deployment to production reduces risk, as any release contains fewer changes. And fixes for any issues that are found are easier to fix or, alternatively, the smaller changes are typically easier to roll back. …
... DevOps, in a way, is all the things that go into making AD/CD possible. In many ways, DevOps is about ensuring quality at all stages. You can visualize DevOps as a conveyor belt, where many checks and balances are in place, at all stages, to ensure any bundle coming down the belt is removed if it’s not good enough, and delivered to the end of the belt (e.g. production) safely and reliably if it is.
- QUOTE: … the term DevOps has been used for many areas: automated infrastructure provisioning tools (e.g. Chef and Puppet) and automation tools (e.g. continuous integration like Jenkins), as well as for establishing developer work environments to mirror production (e.g. Vagrant).