本文へ移動

リリース、パッケージ、アップグレード

安定版ブランチ、リリースの入手元、バージョンの識別、保守、アップグレード

HAProxyはGPLv2ライセンスのオープンソースプロジェクトです。要求に応じてソースへアクセスできるようにすることを条件に、誰でも再配布できます。変更を加えた場合は、特にこの条件が重要です。

HAProxyは、“master"または"mainline"と呼ばれる主開発ブランチで開発が進み、コードが安定したと判断されると、そこから新しいブランチが分岐します。プロジェクトへの参加や最新機能の利用を目的として、多くのWebサイトが自発的に開発ブランチを本番環境で動かしています。そのフィードバックは、バグの修正や開発中バージョンの全体的な品質・安定性の判断に非常に役立ちます。

コードが十分安定した時点で作られる新しいブランチが安定版となり、通常は数年間保守されます。そのため、最新版でなくても、新しいブランチへ急いで移行する必要はありません。安定版ブランチの公開後は、バグ修正だけが取り込まれ、ごくまれに、ユーザーの利便性を高める小さな機能更新が加わります。安定版ブランチに取り込まれる修正は、必ずmasterブランチに由来します。これにより、アップグレード後に修正が失われないことを保証します。そのため、バグを修正する場合は、安定版ブランチではなくmasterブランチに対するパッチを作成してください。すでに修正済みだと分かることもあります。この手順によって安定版ブランチのリグレッションも極めてまれになるため、現在のブランチの最新版へ更新しない理由はありません。

ブランチは、“1.6"のようにドットで区切られた2つの数値で表します。1.9以降、2番目の数値が奇数のブランチは、主に影響の大きい技術的な更新を扱い、ほかのブランチよりバグが発生しやすいため、上級ユーザー向けの性格が強くなっています。保守期間は約1年に限られ、緊急時にロールバックできない場所には配置してはなりません。完全なバージョンには、修正の段階を示す1つまたは2つのサブバージョン番号が含まれます。たとえば、バージョン1.5.14は、1.5.0の公開後にブランチ1.5で行われた14番目の修正リリースです。個別のバグに対する126件の修正、24件のドキュメント更新、75件のその他のバックポートが含まれ、その多くは前述の126件のバグ修正に必要なものでした。同じブランチ内でのアップグレードが常に安全であることを保証するため、安定版ブランチでは既存の機能を変更・削除してはなりません。

HAProxyは複数の入手元から提供され、それぞれリリースの頻度が異なります。

  • 公式コミュニティサイト:http://www.haproxy.org/ 。最新の開発リリース、すべての安定版リリース、各ブランチのナイトリースナップショットのソースを提供します。リリースサイクルは速くなく、安定版リリース間、または開発スナップショット間には数か月かかります。非常に古いバージョンも引き続きサポートしています。提供されるのはソースだけなので、ここから入手したものはビルドやパッケージ化が必要です。

  • GitHub:https://github.com/haproxy/haproxy/ 。開発ブランチだけのミラーで、課題管理、継続的インテグレーション、コードカバレッジのツールと連携しています。コントリビューター専用です。

  • LinuxディストリビューションやBSD portsなどのOS。通常、長期保守されるバージョンを提供します。公式版の修正がすべて含まれるとは限りませんが、少なくとも重要な修正は含まれます。高度な設定は必要なく、更新を簡単に保ちたい多くのユーザーにとって、よい選択肢になることがよくあります。

  • http://www.haproxy.com/ の商用版。最新の安定版に基づき、需要の高い次期リリースの機能をいくつかバックポートした、サポート付きの業務用パッケージです。各種OS向けのパッケージやアプライアンスとして提供されます。安定版ブランチの信頼性と最新機能を両立したい場合、バグ修正への最速の対応を求める場合、またはオープンソース製品にサポート契約を付けたい場合に最適です。

使っているバージョンが、そのブランチの最新版であることを確かめるには、次のように進めます。

  • 実行中のHAProxy実行可能ファイルを確認します。システムに標準で付属するものとは別に、管理者が別の場所に自分のバージョンをインストールしている場合があります。起動スクリプトで、どれを使っているか確認することが重要です。

  • HAProxyの入手元を特定します。通常は"haproxy -v"を実行すれば十分です。開発バージョンは、次のようにブランチ番号の後に"dev"と表示されます。

HAProxy version 2.4-dev18-a5357c-137 2021/05/09 - https://haproxy.org/
安定版は次のように表示されます。OSベンダーが提供する、変更されていない安定版も

同じ形式です。

HAProxy version 1.5.14 2015/07/02
安定版のナイトリースナップショットは、次のようにバージョンの後に16進数の列が付き、
リリース日ではなくスナップショットの

日付が表示されます。

HAProxy version 1.5.14-e4766ba 2015/07/29
これ以外の形式は、独自のパッチを含むシステム固有のパッケージを示す場合があります。
たとえば、HAProxy Enterpriseのバージョンは

次の形式(<branch>-<latest commit>-<revision>)で表示されます。

HAProxy version 1.5.0-994126-357 2015/07/02
歴史的には、2.4より前のバージョンでは、プロセス名の"HA"と"Proxy"の間にハイフンが
入っていたことに注意してください。上の例も該当しますが、正しい形式を示すために調整しています。
そのため、スクリプトではこの語を無視するか、緩い条件で照合するほうがよいでしょう。
また、最近のバージョンでは、プロジェクトのホームページへのURLが追加されています。

最後に、バージョン2.1以降には"Status"行があり、そのバージョンが本番環境で安全に
使えるかどうか、安全に使える場合はいつまでかを示します。また、そのバージョンに
影響する既知のバグの一覧へのリンクも含まれます。
  • システム固有のパッケージでは、ベンダーのパッケージリポジトリや更新システムで、使っているシステムが引き続きサポートされ、そのブランチに修正が提供されていることを確認する必要があります。haproxy.orgから入手したコミュニティ版では、サイトでブランチの状態を確認し、最新版と手元のバージョンを比較するだけで、最新版かどうかが分かります。最新版でなければ更新できます。ブランチがすでに保守されていない場合は、更新が大幅に遅れているため、より新しいブランチへのアップグレードを検討する必要があります(その際はREADMEを注意深く読んでください)。

HAProxyは、その入手元に応じた方法で更新する必要があります。通常は、システムベンダーのパッケージ更新方法に従います。ソースから導入した場合は、ソースを展開した後、ソースディレクトリのREADMEを読み、利用するOS向けの手順に従ってください。