The Review Review: comparing code review, testing, staging and deployment across development collaboration platforms

By Florian Haas

Elevator Pitch

GitHub, GitLab, Gerrit — what should I choose? What’s the best review process, the best CI/CD integration, the best deployment facility? Which should I select for my startup, or consider migrating to? Which supports good collaboration practices, which bad ones? This talk gives the run-down.

Description

In DevOps, the process of collaborative review, testing, staging, and deployment to production constitutes a core element of the work we do. And we generally strive to make this process as effective, efficient, smooth, and transparent as possible. Achieving that partly comes from the work culture we shape and inhabit, partly from our selection of tools — and of course, work culture and work tools permanently and closely influence each other. This goes for both the tools that drive review, and the tools that drive CI/CD:

  • the GitHub Pull Request process in combination with GitHub Actions;
  • the GitLab Merge Request process in combination with GitLab CI;
  • the Gerrit Review process in combination with Zuul.

None of these is perfect, all of them have their advantages and disadvantages under particular circumstances. Some are meant to be used principally as a service, some are fine to self-host. Some are adamant about enforcing specific deployment practices, some follow a more relaxed approach.

This talk is a summary of the current state of affairs with all these tools, and contains recommendations on what to use under which circumstances.

Notes

My team and I have worked with all tools mentioned in a professional capacity, and I believe I’ve got a very good understanding of the relative merits of the systems presented. This does not include a hard-and-fast recommendation for one particular tool or platform.

This is a talk that’s suitable for both in-person and on-line events.