PostgreSQL アップグレードサイクル

PostgreSQL 年次アップグレードサイクル

GitLab 16.0 から、私たちは PostgreSQL の年次アップグレードサイクルを採用しています。

  1. GitLab のメジャーバージョンごとに、必要とされる PostgreSQL の最低バージョンを次のメジャーバージョンに引き上げます。いくつかの例を示します。

    • GitLab 17.0 では、PostgreSQL 14 がサポートされる最低 PostgreSQL バージョンになります。
    • GitLab 18.0 では、PostgreSQL 16 がサポートされる最低 PostgreSQL バージョンになります。
  2. 現在の最低 PostgreSQL バージョンの廃止予告は、GitLab の各メジャーバージョンのリリースとともに、1 年前に発表します。

  3. GitLab.com は毎年 Q2 に次のメジャーバージョンへのアップグレードを実施します。インフラチームは毎年 Q1 にアップグレードの準備を行い、Q2 にアップグレードを実行します。

  4. Omnibus およびチャート向けの次のメジャー PG バージョンのオプションサポートは、GitLab の各メジャーバージョンのリリース時にテストおよび検証されます。次のメジャー PostgreSQL バージョンは、メジャーバージョン .0 とマイナーバージョン .4 の間で利用可能となり、その後リリースサイクルの中盤(〜マイナーバージョン .6)で新規インストールのデフォルトになります。例えば。

    • GitLab 16.0 では、Omnibus およびチャートにおける PostgreSQL 14 サポートのテストと検証を行います。
    • GitLab 16.0 から 16.4 の間に、PostgreSQL 14 をオプションのサポートバージョンとして Omnibus およびチャートに追加します。
    • 16.6 前後に、PostgreSQL 14 が Omnibus の新規インストールのデフォルトになります。
    • GitLab 15.x ではこの変更は必要ありません。PostgreSQL 12 を最低バージョンとして維持しており、PostgreSQL 13 のサポートはすでに GitLab 15.0 で追加済みです。

一覧表:

GitLab バージョン最低サポートバージョンオプションサポートバージョンOmnibus デフォルト(新規インストール)リリースノートGitLab.com
16.6PG13PG14PG14GitLab.com は FY25-Q2 に PG16 へアップグレード予定
17.0PG14PG16PG14PG16 のサポートは 17.0 から 17.4 の間に Omnibus およびチャートに追加予定
PG14 のサポートは 18.0 で削除予定
17.6PG14PG16PG16
18.0PG16PG17PG16GitLab.com は FY26-Q2 に PG17 へアップグレード予定

PostgreSQL マイナーリリースサイクル

各メジャー Postgres バージョンは、Postgres が「マイナーリリース」と呼ぶ形で少なくとも 3 か月に 1 回、バグ修正および必要に応じてセキュリティ修正を受け取ります。多くの人々にとっては「パッチ」という用語の方が馴染み深いかもしれませんが、これはほぼ同じことを指します。

Postgres は通常、3 か月ごとにマイナーリリースを公開します。特段の記載がない限り、これらのリリースの目標日は 2 月、5 月、8 月、11 月の第 2 木曜日です。 Postgres リリースチームが重大なバグやセキュリティ修正を定期スケジュールのマイナーリリースまで待てないと判断した場合、マイナーリリースロードマップ外でリリースを行うことがあります。

Postgres のマイナーリリースロードマップはこちらで確認できます: https://www.postgresql.org/developer/roadmap/

データベースオペレーションチーム(DBO チーム)は、リリースノートを検討した上で各マイナーリリースを適用するかどうかを判断します。マイナーリリースのインストールを検討する際は、含まれるバグ修正やセキュリティ強化が GitLab 環境に関連する可能性があるかどうかを評価します。また、ウェブ上のコミュニティフォーラムを確認し、そのマイナーリリースのインストールで問題が報告されていないかをチェックします。

個々のマイナーリリースは、DBO チームの異なるメンバーが輪番でレビューします。今後インストールする可能性のある PostgreSQL のマイナーリリースを把握することは、特定のチームメンバー一人の責任ではありません。次のマイナーリリースの評価担当者は、現在のマイナーリリースの Issue がクローズされたときに割り当てられます。

新しいマイナーリリースは、postgresql minor release テンプレートを使用して DBO Issue Tracker リポジトリに Issue を作成し、評価します。 新しいマイナーリリースは、本番リポジトリに変更リクエストを作成した後にインストールします。

DBO チームは通常、マイナーリリースが公開されてから少なくとも 1 週間は評価を開始するのを待ちます。

マイナーリリースはまずステージング環境にインストールし、本番環境にインストールする前に少なくとも 2 週間そこで稼働させることが非常に重要です。