第7章 Automating API lifecycle with 3scale toolbox
本トピックでは、Red Hat 3scale API Management での API ライフサイクルの概念について説明し、3scale toolbox コマンドにより API プロバイダーが Jenkins Continuous Integration/Continuous Deployment (CI/CD) パイプラインを使用してデプロイメントステージを自動化する方法を紹介します。ここでは、サンプルの Jenkins CI/CD パイプラインのデプロイ方法、3scale 共有ライブラリーを使用してカスタムの Jenkins パイプラインを作成する方法、およびカスタムパイプラインをゼロから作成する方法について説明します。
7.1. API ライフサイクルステージの概要
API ライフサイクルは、API が作成されてから非推奨になるまでに必要なすべてのアクティビティーについて説明するものです。3scale を使用すると、API プロバイダーはあらゆる API ライフサイクル管理を実施できるようになります。本セクションでは、API ライフサイクルの各ステージ、ならびにその目的および予想される結果について説明します。
以下の図は、左側に API プロバイダーベースのステージを、右側に API 利用者ベースのステージを示しています。
Red Hat は、現在 API プロバイダーサイクルの設計、実装、デプロイ、保護、および管理のフェーズ、ならびに API 利用者サイクルのすべてのフェーズをサポートしています。
7.1.1. API プロバイダーサイクル
API プロバイダーサイクルのステージは、API の詳細規定、開発、およびデプロイをベースとしています。以下に、各ステージの目的と成果を説明します。
ステージ | 目的 | 成果 |
---|---|---|
1.ストラテジー | 目的、リソース、ターゲットマーケット、タイムフレームを含む API の企業ストラテジーを決定し、計画を立てる。 | 目的を達成するための明確な計画と共に、企業ストラテジーが定義される。 |
2.設計 | API 契約を早期に作成し、プロジェクト間の依存関係を解消し、フィードバックを収集して、リスクを下げ、市場に出すまでの時間を短縮する (たとえば、Apicurio Studio を使用)。 | 利用者向けの API 契約により、API で交換できるメッセージが定義される。API 利用者がフィードバックを提供している。 |
3.モック | 実際の例と負荷を想定してさらに API 契約を規定し、API 利用者がこれを使用して実装を開始できるようにする。 | モック API が稼働中で、実際の例を返す。例を想定した API 契約が完成する。 |
4.テスト | ビジネスを想定してさらに API 契約を規定し、開発した API のテストに使用できるようにする。 | 受け入れテストのセットが作成される。ビジネスを想定した API ドキュメントが完成する。 |
5.実装 | Red Hat Fuse や希望の開発言語などのインテグレーションフレームワークを使用して、API を実装する。実装と API 契約を一致させる。 | API が実装される。カスタム API 管理機能が必要な場合は、3scale APIcast ポリシーも開発される。 |
6.デプロイ | CI/CD パイプラインを 3scale toolbox で使用して、API インテグレーション、テスト、デプロイメント、および管理を自動化する。 | CI/CD パイプラインにより、API が自動化された方法で実稼働環境に統合、テスト、デプロイ、および管理される。 |
7.保護 | API が保護されるようにする (たとえば、セキュアな開発プラクティスと自動化されたセキュリティーテストを使用)。 | セキュリティーガイドライン、プロセス、およびゲートが準備される。 |
8.管理 | 環境間の API プロモーション、バージョン管理、非推奨化、および廃止をまとめて管理する。 | API をまとめて管理するためのプロセスとツールが準備される (たとえば、セマンティックバージョン管理により API の変更の違反を防止)。 |
7.1.2. API 利用者サイクル
API 利用者サイクルのステージは、API を利用するためのプロモーション、配布、および調整をベースとしています。以下に、各ステージの目的と成果を説明します。
ステージ | 目的 | 成果 |
---|---|---|
9.検出 | API をサードパーティーの開発者、パートナー、および内部ユーザーにプロモーションする。 | デベロッパーポータルが稼働中で、最新版のドキュメントがこのデベロッパーポータルに継続的にプッシュされる (たとえば、3scale ActiveDocs を使用)。 |
10.開発 | サードパーティーの開発者、パートナー、および内部ユーザーが API をベースにアプリケーションを開発できるよう支援する。 | デベロッパーポータルに、ベストプラクティス、ガイド、および推奨事項が含まれる。API 開発者がモックエンドポイントおよびテストエンドポイントにアクセスし、ソフトウェアを開発する。 |
11.利用 | API 利用の増加を処理し、多数の API 利用者を管理する。 | ステージングされたアプリケーションプランが利用でき、最新の価格と制限が継続的にプッシュされる。API 利用者が CI/CD パイプラインから API キーまたはクライアント ID/シークレットの生成を統合できる。 |
12.監視 | API の健全性、品質、および開発者の関与について、実際の定量化されたフィードバックを収集する (たとえば、最初の Hello World! の時間のメトリクスなど)。 | 監視システムが準備される。ダッシュボードに API の KPI (たとえば、稼働時間、分ごとのリクエスト数、レイテンシーなど) が表示される。 |
13.収益化 | 新しい収益を大規模に獲得する (このステージはオプション)。 | たとえば、小規模な API 利用者を多数獲得することをターゲットにする場合、収益化が有効化され、利用者が使用量に基づいて自動的に課金される。 |