Enable Puma Web Server for GitLab
## Overview
We have seen significant benefits on GitLab.com with Puma, and we need to roll this out to all of our self-managed customers so they can realize those same benefits. This is also important to ensure we keep our tech stack aligned between .com and self-managed, and can work on features that depend upon Puma like websockets.
## Schedule & plan
We are working on a fairly aggressive timeline, due to the fact that the initial migration to Puma is a breaking change and therefore needs to ship in a major release. The next major release is May 22, %13.0.
* Opt-in: %"12.9"
* Set Omnibus defaults: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3896
* Document Puma for zero downtime upgrades / utilization of health check: https://gitlab.com/gitlab-org/gitlab/issues/34235
* Document guidance on worker counts - W(0.9*CPU)T4: https://gitlab.com/gitlab-org/gitlab/issues/207189
* Document Rugged settings for Puma - WxT1: https://gitlab.com/gitlab-org/gitlab/issues/207896
* Migration of Unicorn settings to Puma settings: https://gitlab.com/gitlab-org/gitlab/issues/207901
* Update Puma administrator warnings: https://gitlab.com/gitlab-org/gitlab/issues/208503
* [x] Notify Support and TAM's about the planned changes
* [x] Add to 12.9 release blog post, and announce opt-out in %13.0, with removal in 13.3
* Add Puma to Chart/Containers: https://gitlab.com/gitlab-org/charts/gitlab/issues/1313
* Update single-node zero downtime upgrade instructions to caveat some downtime: https://gitlab.com/gitlab-org/gitlab/issues/207909
* Opt-out: %"13.0"
* [ ] Resolve any outstanding bugs discovered during opt-in phase
* Set Puma to be opt-out for Omnibus (https://gitlab.com/gitlab-org/omnibus-gitlab/issues/4698)
* Set Puma to be opt-out for Charts (https://gitlab.com/gitlab-org/charts/gitlab/issues/1908)
* [ ] Include in 13.0 release blog post, with removal in 13.3
* Removal of Unicorn: 13.3'ish
* Remove Unicorn
epic