...
...
...
...
...
...
...
...
...
...
Page Properties | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
- 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.