What is DevOps?
DevOps is best described as the conventions and practices that create collaborative and communicative partnership between development and operation groups. These practices incorporate two concepts that contribute to the automation of the process of software delivery and infrastructure changes.
Continuous Integration (CI)
Continuous Integration (CI) is the practice of developers ensuring that code is frequently checked in and integration tested with its dependencies with each check-in. Based on the methods and practices developed by Rational (IBM) programmer, Grady Booth, continuous integration has provided the foundation for a number of subsequent frameworks, including Extreme Programming (XP).
According to the Agile Alliance, the goals of CI are “to minimize the duration and effort required by each integration episode and to be able to deliver a product version suitable for release at any moment.” Achievement of these goals is supported through not only automation, but also the use of version control tools (e.g. SVN, GIT, Mercurial, etc.) and team working agreements that promote continuous code integration.
Continuous Delivery (CD)
Continuous Delivery (CD), according to ThoughtWorks, can also help large organizations become lean, agile, and innovative. “Through reliable, low-risk releases, Continuous Delivery makes it possible to continuously adapt software in line with user feedback, shifts in the market and changes to business strategy. Test, support, development and operations work together as one delivery team to automate and streamline the build, test and release process.”
Common DevOps Terms
Mind the Product has created an informative list of useful DevOps terminology. The definitions can be found in our Glossary.
- Checking in
- CI server
- Development environment
- Deployment pipeline / pipeline
- Green build
- Incremental development
- Integration
- Iterative development
- Master/trunk/mainline
- Production environment
- Red build
- Source repository
- Test automation
- Unit tests
Good Reads
These are good references for understanding DevOps, Continuous Integration (CI), and Continuous Delivery (CD):
- 12factor.net: The Twelve-Factor App
- 2016 Version Control Software Comparison: SVN, Git, Mercurial
- Best Version Control Systems
- Cloud.gov
- Continuous integration
- DevOps.com
- DevOps Handbook
- Gartner and Software Advice examine Agile Lifecycle Management Tools
- MartinFowler.com: ContinuousDelivery
- ShiwaForce: What is DevOps?
- The Agile Admin: What is DevOps?
- The business case for continuous delivery
- The Phoenix Project
- The Product Managers’ Guide to Continuous Delivery and DevOps
- Top 5 open source version control tools for system admins