Considerations for moving towards CD

Continuous Delivery

Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles - https://en.wikipedia.org/wiki/Continuous_delivery

Why?

  • Positive feedback loop
  • Smaller releases
  • Reduced cognitive burden
  • Less stressful releases

Positive Feedback Loop

Considerations

Always be ready to deploy trunk

Favour small and frequent changes

Post merge is your responsibility

Backwards compatability

Control feature rollout with system tests

Local first development

Database & other changes as part of the pipeline

Non-application code as first-class citizens

Troubleshooting

CI

AWS Console

Logs

Metrics

Shell