Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...


Page Properties


Target releaseOngoing
Epic
Jira Legacy
serverSystem JIRA
serverIdf37df377-51a7-3f0b-bde6-77fa6960492d
keyEDOP-60
Document status
Status
colourYellow
titleSelected for Dev
Document owner



  • The relevant terms here are "Continuous Integration" and "Continuous Deployment", often used together and abbreviated as CI/CD .
  • Continuous Integration simply means that you run your "integration tests" at every code change
  • Continuous Delivery simply means that you "automatically deploy" every change that passes your tests.
  • However recently the term CI/CD is being used in a more general way to represent everything related to "Automated build pipelines" from where a developer commits until that code ends up in customer env. 




GIT         

Build     

 Deploy

...

  • Focus the software development on small incremental change rather than big breaking changes. Break bigger changes down in smaller ones.
  • Invest in creating an automated test suite. Do this incrementally as it's too big to do it all at once. But don't stop until you have good code coverage (> 90%).
  • Once you have some tests in place, start setting up the automation for your pipeline.
  • Use feature toggles or canary deployments to gradually expose your user base to a new feature, rather than your entire base at once.

Some other benefits of using CI and CD

  • Reduces overhead across the development and deployment process
  • Reduces the time and effort for integrations of different code changes
  • Enables a quick feedback mechanism on every change
  • Allows earlier detection and prevention of defects
  • Helps collaboration between team members so recent code is always shared
  • Reduces manual testing effort
  • Building features more incrementally saves time on the debugging side so you can focus on adding features
  • First step into fully automating the whole release process
  • Prevents divergence in different branches as they are integrated regularly
  • If you have a long running feature you're working on, you can continuously integrate but hold back the release with feature flag.



Spinnaker Pipeline Sample