API7解决方案:B2B服务的高可用性

January 3, 2024

Technology

クライアントとのコミュニケーションの中で、よくある重要な質問が「高可用性を提供していますか?どのように実現していますか?」です。

API7 Enterprise は、お客様が管理する高可用性構成のための構成要素を提供します。可用性は、お客様のデプロイ構成、インフラストラクチャの依存関係、運用に左右されます。セルフホスト型 API7 Enterprise には、製品レベルの稼働率は設定されていません。

ビジネス環境において、APIサービスの高可用性は特に重要です。なぜなら、クライアントの継続性と信頼性に直接影響を与えるためです。なぜB2Bビジネスにとって高可用性がこれほど重要なのでしょうか?それは、重要な指標として、重要な瞬間にAPIサービスが中断または失敗すると、クライアントのビジネスに深刻な影響を与え、財務的な損失だけでなく、クライアントの評判や信頼性にも損害を与える可能性があるからです。

API7は高可用性デプロイをどのように支援するのか?

高可用性は技術面と事業面の双方における目標です。以下では、耐障害性のあるデプロイを支援するAPI7 Enterpriseの構成要素を説明しますが、これらの仕組みだけでサービス可用性が約束されるわけではありません。

ステートレスなコントロールプレーン

API7 Enterpriseのコントロールプレーンはステートレスなアプリケーションコンポーネントを使用し、インスタンスを個別に再起動またはスケールできます。この設計は障害回復とリソーススケジューリングを支援しますが、実際の可用性はデータベース、負荷分散、インフラストラクチャ、お客様の運用に左右されます。

PostgreSQLをデフォルトの設定センターとして使用

API7 Enterpriseは、APISIXが使用するetcdではなく、PostgreSQLをデフォルトの設定ストアとして使用します。PostgreSQLには一般的なレプリケーションとフェイルオーバーの方式がありますが、適切な構成の選択、設定、監視、テストはお客様が行う必要があります。スタンバイデータベースはプライマリノード障害後の復旧時間を短縮できますが、それだけで設定やサービスの可用性を保証するものではありません。

API7エンタープライズの高可用性

ステートレスなデータプレーン

データプレーンは業務トラフィックを処理し、APISIXを基盤としています。ステートレスなコンポーネントはスケールまたは交換できます。冗長インスタンス、ヘルスチェック、十分な容量、負荷分散と組み合わせることで、インスタンス障害の影響を軽減できますが、サービス継続性はお客様が管理するデプロイ全体に左右されます。

独立したデータプレーンとコントロールプレーン

データプレーンとコントロールプレーンを分離することで、リクエスト経路のコントロールプレーン可用性への依存を減らせます。稼働中のデータプレーンインスタンスは設定をメモリに保持し、一部のコントロールプレーン障害時に最後に利用可能だった設定を引き続き使用できます。新しい設定変更、新規インスタンス、その他のインフラストラクチャ障害は依然としてサービスに影響する可能性があります。

高可用性アーキテクチャの使用シナリオと利点

お客様は、ヘルスチェックを備えたロードバランサーの背後に冗長インスタンスを配置するか、Kubernetesのヘルスチェックと置換動作を利用できます。これらの仕組みは一部の障害コンポーネントを検出して置き換えられますが、有効性は正しい設定、予備容量、インフラストラクチャの依存関係、運用テストに左右されます。

これらの仕組みを適切に設計、運用、テストすれば、一部の障害の影響を軽減し、復旧を早め、トラフィックの一部を処理し続けるのに役立ちます。ただし、あらゆる業務中断を防ぐものでも、保守コストの削減を保証するものでもありません。結果は、復旧目標、冗長性、外部依存関係、監視、お客様の運用手順に左右されます。

結論

API7 Enterprise は、お客様が管理するデプロイ向けに高可用性の仕組みを提供します。これらの仕組みによって障害の影響を軽減できますが、実際のサービス可用性は、お客様のデプロイ構成、インフラストラクチャの依存関係、運用に左右されます。

Tags:
Share article link