PostgreSQL upgrade to major version 14
DRI: @alexander-sosna ## Status 2023-11-15 The issue to [reindex](https://gitlab.com/gitlab-com/gl-infra/reliability/-/issues/24136) is still open, but it is an ongoing ops task, we can exclude it and close this epic. - All clusters are running PG14, only minor cleanup left. - [Retrospective on the PostgreSQL 14 Upgrade Project](https://gitlab.com/gitlab-com/gl-infra/reliability/-/issues/24418) * [x] **\[GPRD\] Registry** - `2023-06-10` * [x] **\[GPRD\] CI** - `2023-08-12` * [x] **\[GPRD\] Main** - `2023-09-09` ## Overview The goal of this epic is to track all the work to ensure a smooth upgrade to PostgreSQL version 14: https://www.postgresql.org/docs/release/14.0/ Our first goal is to execute all the R&D needed to verify if we could accomplish the project using logic replication, which will reduce our downtime drastically. At the same time, the plan is to test and benchmark the solution of PG14, considering re-evaluating our workloads to have a more realistic evaluation of the performance. After the 2 first phases are done, we can proceed with the development adjustments of the playbook testing in the benchmark environment. The next milestones are rolled out in staging and rollback several times to gain confidence and proceed to production. Additionally, we have a milestone for post-upgrade tasks. To cover all the improvements and needs of the project. **Milestones:** The main milestones are defined in the following epics: **1 - Research the method of the Upgrade:** The question here is if we need to request downtime, or we could evaluate logical replication to execute a switchover maintenance for the migration to PG12. **2 - Performance tests** This epic has the objective to test the performance of PG14, and Ubuntu 20.04, on the current workload.It could be done in parallel with the research above. **3 - Development/Upgrade of playbooks and test in the benchmark environment** After having the definition of the method and having the performance aligned, we can proceed and update our playbooks for the upgrade and rollback maintenance. **4 - Upgrade the staging environment** The goal of this epic is to address all the steps to execute the upgrade in the staging environment. **5 - Upgrade the production environment** The goal of this epic is to address all the steps to execute the upgrade in the production environment. **6 - Post-upgrade tasks** The goal of this epic is to address all the steps to execute after the upgrade in the production environment. **Risks:**
epic