DevOps is an organizational concept that bridges the gap between development and operations.
Devops bridges the gap between dev and ops in terms of :
- 1. Skills
- 2. Mindset
- 3. Practices
- 4. Silo-Mentality
The underlying idea is that developers are aware of and consider implication on operations in daily work and visa versa.
DevOps and the three Ways :
- First Way: Work always flows in one direction – downstream.
- Second Way: Create, shorten and amplify feedback loops.
- Third Way: Continued experimentation, in order to learn from mistakes, and achieve mastery.
DevOps practices :
- Continuous Integration
- Continuous Deployment
- Continuous Delivery
Continuous Integration (CI)
- Continuous Integration is a software development practice where members of a development team integrate and verify their work frequently, often multiple times each day to detect integration errors as quickly as possible.
- The purpose of Continuous Integration is to avoid last minute integration surprises and find code issues right away. If code is continuously compiled and checked, conflicts can be identified when they are easy to manage.
- The goal of Continuous Integration (CI) is to provide rapid feedback of build and test results so that if a defect is introduced into the code base, it can be identified and corrected as soon as possible. In addition, the person who is in the context and knows what is happening is the best one to fix it. Hence, the person who broke the build is the ideal source to fix the failure.
- So, with any check in of new or changed code into version control, the build should be executed, newly checked-in code is built, integrated, and tested frequently, generally multiple times a day.
Benefits of Continuous Integration :
- Broken builds are detected quickly.
- Software is generally kept in a buildable state.
- Short and Less intense integrations
- Increase visibility enabling greater communication
- Catching issues early
- Spend less time debugging and more time adding features
- Building a solid foundation
- Less waiting to find out if your code’s going to work
- Reduced integration problems allowing one to deliver software more rapidly
DevOps practices in the Scrum framework for Continuous Integration :
- To support Continuous Delivery, the Scrum Team would add the following to the Definition of “Done”: “Deployed to Production” and “Ready to Release”.
- In case of Continuous integration Software Build Developments, the person who broke the build will be responsible for fixing it.
- Continuous Deployment is a software delivery practice in which the release process is fully automated in order to have changes promoted to the production environment with no human intervention.
- Continuous Deployment is deploying every change into production automatically.
Continuous Delivery (Release on Demand):
- Continuous Delivery is a software delivery practice similar to Continuous Deployment except a human action is required to promote changes into a subsequent environment along the pipeline.
- Continuous Delivery is the aim of keeping the system “Production Ready” during development to enable the release of a product to the end user on demand.
- Continuous Delivery helps to move away from the activity of preparing and making software Production Ready. Instead the Development Team makes sure that the software is always “Production Ready”.
- Continuous Delivery doesn’t mean every change is deployed to production ASAP. It means every change is proven to be deployable at any time.
More informations for the Scrum PSD certification here.