Tips to help you scale up CI/CD flows for big projects if you are using Docker and Kubernetes:
- Define your VCS (version control system) flow, with help from Git Flow or Github Flow.
- When using a complicated manual release process, use tags to trigger production releases.
- Adapt your Git flow for the number of environments you have.
- Set up notification channels to track all CI flow processes.
- Keep Docker images simple. Avoid passing env variables. Use the Run command or let Kubernetes handle this.
- Define a Docker image naming convention - for development and UAT, where there is no rollback, you can use branch names as tags so the previous image is overridden; for production, tag with the release version number.
- Execute database migrations as a separate step outside the Dockerfile.
- Avoid private libraries and submodules.
Full post here, 5 mins read