January 4, 2025
What is Continuous Integration and Continuous Delivery/Deployment?
Continuous Integration
- Developers regularly merge code changes into a central repository
- this triggers automated builds and tests
- CI is a build or integration phase
- requires both an automation component, that is a CI or build service
- AND a cultural component, this means developers learn to integrate frequently
- Key Goals
- find and address bugs more quickly
- improve software quality
- reduce the time needed to validate and release new updates
- Focus on smaller commits and smaller code changes
- commit code frequently, at least once a day
- pull from repository before pushing, ensure local host is merged
- after push build server runs various tests and rejects/accepts the commit
- Challenges
- more frequent commits to codebase
- single source code repository
- automating builds
- automating testing
- Additional Challenges
- test in prod-like environments
- make process visible to team
- allow developers to obtain any version of the application
Continuous Delivery and Deployment
- Code changes are automatically built, tested and prepared for production release
- Expands on continuous integration
- deploys all code changes to a testing environment, a production environment or both
- after a build stage has been completed
- Continuous delivery can be fully automated with a workflow process
- OR partially automated with manual steps
- ideally, developers should always have a deployment-ready build artifact
- deployment ready means build has passed through a standardized testing process
- With CD, revisions are deployed to production automatically without explicit approval
- entire software release process should be automated
- allows for continuous customer feedback loop early in product lifecycle
- deploys all code changes to a testing environment, a production environment or both
Loading comments...