Back to articles
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
Loading comments...