GitHub Enterprise Server のデプロイ トポロジについて
GitHub Enterprise Server インスタンスの仮想マシンは、環境とユーザーのニーズに応じて異なるトポロジにデプロイできます。
-
ディザスター リカバリーと補足バックアップの計画をサポートしたり、地理的に分散したユーザーのネットワークと書き込みパフォーマンスを向上させたりするには、高可用性を構成できます。 High Availability 設定では、1 つのノードがプライマリとして機能し、他のノードがレプリカとして機能します。 詳しくは、「High Availability設定について」を参照してください。
-
数万人の開発者が使用する環境に水平スケーリングを提供するには、クラスター トポロジを使用できます。 クラスタリングは、1 つのプライマリ ノードでリソースの枯渇が日常的に発生する状況に対処します。 この構成には、慎重な計画と追加の管理オーバーヘッドが必要です。 GitHub はお客様と協力して、クラスタリングの適格性を判断します。 詳しくは、「クラスタリングについて」を参照してください。
フェイルオーバーのシナリオ
High Availability (HA) とクラスタリングはどちらも、障害の原因となる単一ノードを排除することによって冗長性を提供します。 可用性は次のシナリオで提供できます:
- ソフトウェアのクラッシュ: オペレーティング システムの障害や、回復不能なアプリケーションによる。
- ハードウェアの障害: ストレージ ハードウェア、CPU、RAM、ネットワーク インターフェイスなどを含む。
- 仮想化ホスト システムの障害: AWS、Azure、または GCP の計画外とスケジュールされたメンテナンス イベントを含む。
- 論理的あるいは物理的に切断されたネットワーク: フェールオーバー アプライアンスがその障害によって影響されない別のネットワーク上にある場合。
スケーラビリティ
クラスタリングは、負荷を複数のノードに分配することによってスケーラビリティを向上させます。 この水平スケーリングは、数万の開発者を持つような組織に適しているかもしれません。HAでは、アプライアンスのスケールはプライマリノードにのみ依存し、負荷がレプリカサーバーに分配されることはありません。
フェイルオーバーの方法と構成における相違点
機能 | フェイルオーバーの構成 | フェールオーバー方式 |
---|---|---|
高可用性構成 | プライマリアプライアンスもしくはロードバランサを指す短いTTLのDNSレコード。 | DNSフェイルオーバー及びロードバランサ構成のどちらでも、レプリカアプライアンスを手作業で昇格させなければならない。 |
クラスタリング | DNSレコードはロードバランサを指さなければならない。 | ロードバランサの背後にあるノードが落ちた場合、トラフィックは動作している他のノードに自動的に送られる。 |
バックアップとディザスター リカバリー
HA もクラスタリングも、定期的なバックアップに代わるものと考えるべきではありません。 詳しくは、「インスタンスでのバックアップの構成」を参照してください。
監視
可用性の機能、特にクラスタリングのように自動フェイルオーバーを持つものは、通常は何かが失敗してもサービスが破綻しないので、障害を覆い隠すことができます。 HA を使用しているかクラスタリングを使用しているかに関係なく、障害が起きたことに気づけるよう、各インスタンスの健全性を監視することが重要です。 監視について詳しくは、「アラートの推奨閾値」と「クラスターの正常性の監視」をご覧ください。