Continuous Delivery Flashcards
What does Continuous Delivery (CD) do?
Automatically moves a software product from a source code repository through to the staging environment, and at the press of a ‘release’ button, it can be moved to production.
What does Continuous Deployment (CD) do?
Automatically moves a software product from a source code repository to the production environment, without the need to press a ‘release’ button.
What is the first principle of Continuous Delivery?
1 - Create a Repeatable Process: A process that has been done hundreds of times before, quickly becoming a routine one.
What is the second principle of Continuous Delivery?
2 - Automate Almost Everything: No mistakes (if automation is correct), it’s cheaper, faster, and can record logs.
What is the third principle of Continuous Delivery?
3 - Version Control For Everything: Documents, scripts, code, libraries, etc. If something breaks, you can return to the exact previous working state.
What is the fourth principle of Continuous Delivery?
4 - If It Hurts, Do It More Frequently: Build frequently to improve the process. Eventually, it won’t be painful and smaller changes will be easier to manage.
What is the fifth principle of Continuous Delivery?
5 - Build Quality In: Defects should be fixed as soon as found. Testing should be obsessive, and defects caught early are cheaper to fix.
What is the sixth principle of Continuous Delivery?
6 - Done Means Released: A feature is only considered ‘done’ once it has been released to a production-like environment.
What is the seventh principle of Continuous Delivery?
7 - Everyone Is Responsible: The team succeeds or fails as a unit, not as individuals. Collaboration prevents blame-shifting.
What is the eighth principle of Continuous Delivery?
8 - Continuous Improvement: Teams reflect on successes and failures to improve processes and prevent future errors.
What is A/B Testing in production?
A small percentage of customer traffic is sent to a new interface. If customers are unhappy, all traffic is sent to the old interface.
What is Canary Testing in production?
A small percentage of customer traffic is sent to a new version. If customers are unhappy, all traffic is sent to the old version.
What is Blue/Green Testing in production?
The production environment (blue) is swapped with the staging environment (green). If customers are unhappy, the swap is reversed.
How can we achieve continuous delivery?
Through fast, automated feedback on the production readiness of your applications, every time there is a change (to code/infrastructure/configuration)
What condition should software always be in?
Production ready, or releasable
How does continuous delivery help avoid the biggest source of waste in software development?
Because its much easier to get new, experimental features into production
When should testing be done?
All the time, not just once the software has been developed
Who is responsible for quality?
Everyone
What is more important than delivering functionality?
Keeping the system working and in a good state
How does continuous delivery reduce the risk of release?
Releasing a small, extensively tested, change - and being able to revert immediately - is not a risky thing to do