API Connectivity Managerで開発チームと運用チームの連携を強化

NGINX | 2022年11月03日

クラウドネイティブアプリケーションは、マイクロサービス間を接続する数十、数百、さらには数千ものAPIで構成されています。これらのサービスとAPIが連携することで、クラウドネイティブアプリケーションの中核となるレジリエンス、スケーラビリティ、柔軟性を実現します。

現在、これらの基盤となるAPIやマイクロサービスは、世界各地に分散したチームによって構築されることが多く、機能を適時に市場へ提供するには、各チームが一定の自律性と独立性を持って業務を進める必要があります。

同時に、Platform Opsチームは、基盤となるAPIを含め、企業のアプリとインフラストラクチャ全体の信頼性とセキュリティを確保する責任を担っています。優れたAPI開発者エクスペリエンスを提供しながら、一貫したセキュリティとコンプライアンスを確保するために、APIトラフィックを可視化し、全体に適用するガードレールを設定できる必要があります。

この2つのグループの利害は対立することもありますが、それは避けられないものではないとF5は考えています。F5は、API Connectivity ManagerをF5 NGINX Management Suiteの一部として開発しました。これにより、Platform Opsチームは安全性を確保しながら安定した運用を維持でき、同時にAPI開発者は新しい機能を容易に構築してリリースできます。

API接続を支えるアーキテクチャの構築

次世代の管理プレーンであるAPI Connectivity Managerは、APIゲートウェイとしてのNGINX Plusの能力を引き出し、さらに拡張できるよう設計されています。これまでにNGINXを使用したことがあれば、APIゲートウェイとしてのNGINXのスケーラビリティ、信頼性、柔軟性、パフォーマンスをご存じでしょう。

API Connectivity Managerの設計にあたり、Platform Opsチームと開発者がより円滑に連携できるよう、新しいアーキテクチャを開発しました。そのコンポーネントには、以下の業界標準用語を使用しています(一部は、経験豊富なNGINXユーザーになじみのある名称とは異なります)。

  • ワークスペース – 単一の事業部門またはチームが専用に管理および使用する、分離されたインフラストラクチャの集合。通常は複数の環境が含まれます
  • 環境 – 開発、テスト、本番環境など、アプリケーションライフサイクルの特定のフェーズでAPIゲートウェイまたは開発者ポータルとして機能するNGINX Plusインスタンス(クラスター)の論理的な集合
  • API Gateway Proxy Cluster – NGINX Plusインスタンスをグループ化し、インスタンス間で状態を同期するNGINX APIゲートウェイの論理表現
  • API Proxy – 公開されたAPIインスタンスを表すもので、ルーティング、バージョニング、その他のポリシーが含まれます
  • ポリシー – トラフィックのレジリエンス、セキュリティ、サービス品質など、APIプロキシの特定の機能を定義するためのグローバルまたはローカルの抽象化

次の図は、Workspace内でコンポーネントがどのように入れ子になっているかを示しています。

API Connectivity Managerの管理オブジェクトの入れ子構造を示す図。外側から順に、Workspace、Environment、API Gateway Proxy Cluster、API Proxy、Policies。

この論理階層により、企業全体のAPI接続を支えるさまざまな重要なユースケースに対応できます。たとえば、Workspacesには複数の種類のインフラストラクチャ(パブリッククラウドやオンプレミスなど)を組み込むことができます。これにより、チームは両方のインフラストラクチャを利用でき、インフラストラクチャ所有者は両方の環境にわたるAPIトラフィックを可視化できます。

今後の記事では、アーキテクチャのコンポーネントについてさらに詳しく説明します。今回は、APIの開発とデリバリーに携わるさまざまな役割の担当者をAPI Connectivity Managerがどのように支援するかを見ていきます。

プラットフォーム運用向けAPI Connectivity Manager

Platform Opsチームは、各組織のインフラストラクチャライフサイクルの構築と管理を担います。また、開発者が顧客やパートナー向けのアプリケーションやサービスを構築するためのプラットフォームを提供します。開発チームは分散していることが多く、複数の環境で業務を行い、それぞれ異なる事業部門に属しています。企業全体の標準を維持しながら、こうした分散したチームや環境のニーズに対応することは、現在Platform Opsチームが直面している最大の課題の1つです。

API Connectivity Managerは、Workspacesを論理的な境界として使用し、チームとその運用を分離する革新的な方法を提供します。また、APIを構築・デプロイするチームに干渉することなく、Platform Opsチームがインフラストラクチャのライフサイクルを管理できるようにします。API Connectivity Managerには、NGINX Plus APIゲートウェイと開発者ポータルに基本的なセキュリティと構成を提供する、デフォルトのグローバルポリシー一式が組み込まれています。Platform Opsチームは、補足的なグローバルポリシーを構成し、必要に応じてmTLSを必須にしたり、ログ形式を設定したり、プロキシヘッダーを標準化したりできます。

グローバルポリシーにより、共有APIゲートウェイクラスターにデプロイされるAPIの統一性と一貫性が確保されます。また、API Connectivity Managerでは、分散型データプレーンクラスターを運用し、各チームや事業部門がAPIをデプロイする環境を物理的に分離できます。

API Connectivity Managerにより、複数のグループがそれぞれ独自のWorkspacesとEnvironmentsを管理できる仕組みを示す図

今後のブログでは、Platform OpsチームがAPI Connectivity Managerを活用し、API開発者の成功を支援しながら、APIのセキュリティとガバナンスを確保する方法をご紹介します。

開発者向けAPI Connectivity Manager

各事業部門のチームは、それぞれ独自のAPI群を所有し、運用しています。アプリケーションやサービスを予定どおり市場に投入するには、自らのAPI製品を管理できる必要があり、共有インフラストラクチャを利用するたびに他のチームの承認を待つ余裕はありません。同時に、チーム間の干渉を防ぐための「ガードレール」も必要です。

Platform Opsペルソナと同様に、API所有者である開発者には専用のWorkspacesが割り当てられ、APIが他のチームから分離されます。API Connectivity ManagerはAPI Proxyレベルのポリシーを提供し、API所有者はレート制限や追加のセキュリティ要件など、サービスレベルの設定を構成できます。

API所有者が管理するサービス向けのAPI Proxyポリシーが、Platform Opsが管理するインフラストラクチャ向けのグローバルポリシーを基盤として構築される仕組みを示す図

今後のブログでは、開発者がAPI Connectivity Managerを活用してAPIライフサイクル管理を簡素化する方法をご紹介します。

はじめに

Start a API Connectivity ManagerとInstance Managerを含むNGINX Management Suiteの30日間無料トライアルを開始してください。


共有
タグ: F5 NGINX, Tech

著者について

Rajesh Bavanantham
Rajesh Bavananthamプロダクトマネジメント担当ディレクター | NGINX

Rajesh Bavananthamのその他のブログ記事

関連するブログ記事

チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
NGINX | 2024/01/18

チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する

OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。

AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
NGINX | 2023/05/31

AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正

Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。

JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
NGINX | 2023/02/09

JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法

Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。

F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINX | 2022/05/24

F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング

NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
NGINX | 2018/08/17

SELinuxでNGINXおよびNGINX Plusを使用する

Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。

NGINX PlusによるAWS Auto Scalingグループの負荷分散
NGINX | 2017/03/06

NGINX PlusによるAWS Auto Scalingグループの負荷分散

新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります