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