17. CI/CD Principles
● Automate everything: build, test and deployment
● Keep everything in a source code management system
● Commit frequently
● Don’t commit directly to a delivery branch; follow PR workflow
● Unit testing
● Use a CI tool
● Deploy the same way to every environment
● Use a container technology (Docker) if possible as makes deployment simple
Source code management
SDLC
DevOps
Faster development
Better quality
Low cost
Less complex
Easy bug fix
CI
is a software development practice where members of a team integrate their work frequently;
Merge code to the shared branch early and often
usually each person integrates at least daily – leading to multiple integrations per day.
Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.
can detect errors quickly, and locate them more easily.
CDelivery
is a software development discipline where you build software in such a way that the software can be released to production at any time
every change to the system is releasable, and release any version with the push of a button
Quality and correctness
CDep
is a third term that’s sometimes confused with Continuous Delivery.
Delivery provides a process to create frequent releases but not necessarily deploy them, Continuous Deployment means that every change you make automatically gets deployed through the deployment pipeline.
No need of human gatekeeper
There's no human intervention, and only a failed test will prevent a new change to be deployed to production.
can deliver frequently and get quick feedback on what users care about.
Is this continuous deployment or continuous delivery? How do we make it continuous delivery?
Easy deployment
Continuous deployment
Isolated
Security
Hybrid cloud
Version control