Skip to content

CI/CD

Continuos Integration (CI)

  • Process of automating the build and testing of code
  • CI keeps the master branch clean ensuring bugs are caught before the merge
  • 4 pillars
  • Version Control System
  • Package Management System
  • Continuous Ingration System
  • Automated Build Process

Continuos Delivery (CD)

  • Principles
  • The process for release/deploying software must be repeatable and reliable
  • Automate everything
  • If somethind difficult or painful, do it more often
  • Keep everything in source control
  • Done means released
  • Build quality in
  • Everybody has responsibility for the release process
  • Improve continuosly

Glossary

Releases and Deployments

  • Release and deployment
  • Separate that in fuynctional and technical release
  • Functional release is exposing features to customers

Feature toggles

  • Toggle feature without needing to redeploy

Artifact sources

  • Build artifacts
  • Package repositories
  • Container repositories
  • Files
  • Source Control

Delivery cadence

  • 3 types of triggers
  • Continuous deployment trigger
  • Scheduled trigger
  • Manual trigger

Modern Deployment Patterns

Deployment patterns

  1. Blue-Green: Prod + prodlike
  2. Canary: Few users accept to use the new feature
  3. Dark: Transparent new functionalities for the users (user do not choose)
  4. Progressive Exposure: Gradually expose the feature to new users

Release management tools

  • Jenkins
  • CircleCI (not recommended)
  • Azure DevOps Pipelines
  • Gitlab Pipelines
  • Atlassian Bamboo
  • XL Deploy/XL Release

Test infrastructure

  • Availability tests: URL ping test, health endpoints
  • Automate inspect of health
  • Release gates
  • Events, subscriptions and notifications
  • Service hooks: trigger tasks when events happen