PostmanとAPIガバナンスについて
概要
Postmanは、APIライフサイクルの各ステップを簡素化して優れたAPIをより速く作成でき、その最大の特徴がAPIです。本記事では、PostmanとAPIガバナンスについて詳しく紹介します。
APIガバナンス
PostmanとAPIガバナンスについて説明させていただきます。
APIガバナンスにおいて最も重要されているのは、API設計におけるガバナンスです。
現在のAPIの設計における不具合はプロジェクトに影響を与え、開発工程において重要な問題を発生させる可能性が高いため、十分にケアが必要です。
一方で、現在のビジネスにおいてはプラットフォームAPIガバナンスと呼ばれる、より広範にわたるAPIガバナンスに注力し、投資することが重要とみなされております。
これは、個々のAPIだけでなく、それらを取り巻く運用の発見、信頼性、一貫性、配信、および可観測性など幅広い範囲において注意し、実施する必要があるガバナンスと言えます。
PostmanではこのAPIガバナンスにおいて世界的な基準を投入し、高い品質を維持している企業であると言えます。
チーム、API、および運用全体で発生する作業を発見する能力がなければ、API設計ガバナンスを大規模に効果的に適用することはできません。
さらに、全体的な品質とガバナンスの結果を運用全体にわたって大規模に観察する能力が企業には必要とされます。
APIファーストを実現するためには、よりプラットフォームの観点からガバナンスに取り組み、APIが検出可能で、信頼性が高く、設計が一貫しており、明確に定義されたライフサイクルを使用して配信される環境を構築することが重要となります。
これらを実現するためにはいくつかのコンポーネントと考え方が必要となるため、それぞれについて説明させていただきます。
検出
まずはAPI検出です。
APIガバナンスの課題の一つは、各APIで発生する他のすべての作業にわたって存在する発見の欠如です。目に見えるAPIとその操作を正しく検出することがAPIガバナンスにおいて重要なポイントと言えるでしょう。
プラットフォームAPIガバナンスの基盤は、オペレーション全体で検出がデフォルトであることを保証することが必要となります。
ワークスペースではすべてのAPIに、各APIを取り巻く操作にアクセスするためのプライベート、パートナー、またはパブリックワークスペースがあることを確認します。
OpenAPIでは、各APIの信頼できる情報源として、人間と機械が読み取り可能なAPIアーティファクトが常に存在することを確認します。
リポジトリではAPIごとにGitリポジトリを確立し、ライフサイクルの一部としてOpenAPIとコレクションをリポジトリに同期します。
また、環境も非常に重要で、手動または自動で適用できる開発環境、ステージング本番環境、およびその他の環境を提供します。
ドキュメンテーションでは、すべてのAPIに、何が可能かを示すために利用できる完全で最新のドキュメンテーションがあることを要求します。これらを実行するためのチームも正しい管理が必要になります。
各APIの背後にあるチームをリストとして利用可能にし、消費者が使用できる名前と連絡先情報を提供しますが、これは、APIガバナンスの基盤として機能します。
すべてのAPIはこれらの要素を備えている必要があり、新しいAPIを設定して既存のAPIを現在の標準に引き上げる際には、チームが従うべきルールを提示することが必要です。
これらの領域への投資により、API運用の設計およびその他の側面でAPIガバナンスが可能になります。
これらの領域を把握し、それぞれに独自のAPIがあることに気付くと、チーム全体でAPIガバナンスの取り組みを強化するための文化を生み出すことが可能となります。
信頼性
APIガバナンスにおいて重要な点が信頼性です。
APIガバナンスの一部である以下の領域は、APIの各インスタンスの全体的な信頼性を担保するために重要な機能を提供します。これらはすべてのAPIにわたってテストのベースラインセットとして提供される必要があります。
これにより、各APIのビジネス目的が確実に実現されるだけでなく、サービスレベルアグリーメント (SLA) を満たし、脆弱性やセキュリティの問題が運用に持ち込まれない方法で行われます。アプリケーションと統合の背後にある信頼できるAPIインストラクターをチームが自信を持って提供し、運用できる共通の方法を確立することが重要です。
具体的には以下の通りです。
コントラクトテストコレクションでは、API操作ごとにJSON スキーマを取得し、要求と応答を検証する単一のコレクションを生成します。
パフォーマンステストコレクションでは、1つ以上のAPI操作をテストする単一のコレクションを生成し、最小時間のしきい値を満たしていることを確認します。
セキュリティテストコレクションでは、セキュリティ脆弱性テストとサードパーティのAPIセキュリティサービスの共通セットを適用する単一のコレクションを作成します。
これらをAPIガバナンススタックの一部と見なして運用することは非常に重要で、これによって信頼性がガバナンスの一部として配置され、テストに使用しているのと同じアーティファクトとツールを使用して、APIとその周りのAPI操作を管理できるようになります。
APIのインスタンス、それらのAPIの表面領域、およびそれらのAPIを既知のAPIライフサイクル全体で前進させる運用とインフラストラクチャをテストできます。
API設計
API設計についても説明させていただきます。
API設計は、一般的にAPIガバナンスについて最も重要な部分の一部として認識されていることはすでに説明した通りです。
API設計ガバナンスとはどのチームがAPIを設計、および開発したかに関係なく、APIの表面領域の技術的な詳細が可能な限り一貫していることを確認することです。
これは既知のワークスペースに単一の信頼できる情報源 (OpenAPI) がなければ、さらに困難になります。
Postman APIを使用することでデザインガバナンスコレクションを実現することが可能です。
Infoではタイトル、説明、およびその他の重要な情報プロパティがあることを確認します。
バージョニングでは各APIに適用される標準のセマンティックまたは日付ベースのバージョニングが必要です。
操作では個々の操作に概要、説明、およびIDがあることを確認します。
パラメータでは、パラメータ名の形式を標準化し、すべてに説明を付けます。
Responsesではステータス コード、メディア タイプ、およびスキーマ レスポンスの共通セットをプッシュします。
スキーマではJSONスキーマ コンポーネントを使用して、すべての要求および応答スキーマを標準化します。
このレベルで適用できるガバナンスルールは上記以外にも様々存在し、これらの単純なルールがAPI操作全体に一貫して適用されるようにすることで、チームは多くのことを学びます。
これにより、すべてのチームがコレクションランナーを使用して手動でガバナンスを適用したり、モニターを使用してスケジューリングしたり、CI/CD パイプラインに焼き付けたりできるようになります。
各APIインスタンスをテストするために使用しているのと同じインフラストラクチャを使用して、どのチームでも一貫した設計のためにAPIの表面領域をテストできます。
API配信
API配信についても説明させていただきます。
APIガバナンスは常に既存のソフトウェア開発ライフサイクルに結び付けて、リアルタイムで監視する必要があります。
運用ガバナンスにより、ガバナンスの信頼性と一貫性の部分を自動化できます。
これらはPlatform Opsコレクションの統合を追加することで、ゲートウェイ、ポータル、ドキュメント、およびその他のAPI 操作の構成要素を構成、最適化、および自動化できます。(Platform Opsについては後程説明させていただきます。)
これらのAPI配信は個々のAPIのテストに使用しているのと同じインフラストラクチャを活用して、APIの表面領域とそれらを取り巻く操作もテストします。では、いくつかの機能に分類し、説明させていただきます。
一点目が監視です。
チームの操作に関しては注意を払って監視する必要があり、その機能としていくつかのモニターがあります。契約において24時間ごとに契約をテストする予定のモニター、パフォーマンスにおいてAPIのパフォーマンスを1時間ごとにテストするモニター、セキュリティにおいてAPIのセキュリティを24時間ごとにテストするモニター、ガバナンスにおいてAPIのガバナンスを24時間ごとにテストするモニターです。
二点目がパイプラインです。
現在のソフトウェア開発においてCI/CDパイプラインの重要性はいうまでもありません。
CIとも呼ばれる継続的インテグレーションは、すべてのコード変更を共有リポジトリに1日に数回マージするプロセスです。
これは、ソフトウェア開発における最も重要なステップの1つであり、通常、継続的な展開パイプラインの最初のステップです。
継続的インテグレーションは、ソースコードリポジトリを監視し、変更を検出すると自動的にビルドをトリガーする継続的インテグレーションサーバー (CI サーバー) の助けを借りて行うことができます。
継続的デリバリーパイプライン (CDパイプライン) は、すべてのソフトウェアリリースを自動化することでCIを拡張します。
これには、コードをアーカイブにパッケージ化し、運用サーバーに展開し、テストを実行してすべてが期待どおりに機能していることを確認し、展開の成功または失敗に関する通知を送信することが含まれます。
CI/CDパイプラインレイヤーでガバナンスを適用していることを確認し、各ビルドでコントラクト、セキュリティ、およびガバナンステストを実行します。
Contractではコントラクトテストコレクションをパイプラインで実行します。
Securityではコントラクトセキュリティコレクションをパイプラインで実行します。
ガバナンスではパイプラインでガバナンス テストコレクションを実行します。
三点目がゲートウェイです。
ゲートウェイを介したAPIの展開を管理し、手動および自動の構成と可観測性を可能にします。
Authenticationではゲートウェイ認証が適切に構成されていることを確認します。
使用プランでは各APIが特定の使用プラン内で動作することを要求します。
使用履歴ではAPIの使用ログで一般的なパターンを確認します。
運用のガバナンスは、テスト、セキュリティ、および設計のガバナンスを監視するだけにとどまりません。
CI/CDパイプラインに組み込むことで、これを他の運用領域に拡張できます。APIの各インスタンスをテストし、
API設計を管理するために使用しているのと同じコレクションベースのアプローチを使用して、ドキュメントが完全に更新されていること、サンプルを所有していること、SDKとコードスニペットが常に自動生成されていることを検証できます。API操作自体にAPIがあることに気付くと、APIガバナンスへのアプローチは、単なるAPIの設計よりもはるかに広範になります。
これらは大規模なガバナンスを実現しながら、チームの生産性を高め、より高いレベルの品質を実現できます。
Platform Opsについて
PostmanのAPI配信に大きな関連性があるPlatform Opsについて説明させていただきます。
DevOps、DevSecOps、DataOps、MLOpsなどの運用中心のソフトウェア配信方法が大きく変化し拡大していることは周知の通りです。
これを知ることでPlatform Opsの理解も深まるので、簡単に紹介させていただきます。
DevOpsは、ソフトウェア開発とIT運用を統合する手法で、フィードバックループをプロセスに組み込むことに重点を置いているため、組織の俊敏性を向上させる優れた方法です。これは、コミュニケーション、コラボレーション、統合、および自動化を強調する一連の原則と実践です。 DevOpsの目標は、ソフトウェアの開発と管理のプロセス全体をより機敏にすることで、より多くの価値をより迅速に顧客に提供することです。これは、チームが何をしているか、何をしているか、どうすれば改善できるかについて、常に互いにコミュニケーションを取っていることを意味します。
DevSecOpsは、「開発」と「セキュリティ」を組み合わせた造語です。 DevSecOpsの目標は、開発チームが作業するための安全な環境を提供することです。 これにより、ソフトウェアの開発速度が向上すると同時に、ソフトウェアの安全性が確保されます。 DevSecOpsには、ソフトウェアの安全性を確保しながら、ソフトウェアの開発速度を向上させるというメリットがあります。 これにより、開発者がセキュリティに費やす時間が短縮され、顧客向けの新しい機能やコンテンツの開発により多くの時間を費やすことができるようになり、顧客満足度の向上につながります。
DataOpsは、運用分野におけるデータサイエンティストの作業を表すために作られた新しい用語です。 Data Opsは新しい概念ではありませんが、名前が付けられたのはつい最近のことです。 データサイエンティストは常に運用分野で重要な役割を果たしてきましたが、そのように認識されることはありませんでした。 これは、彼らがオペレーターではなく、運用スタッフにアドバイスを提供する非運用スタッフとして見られていたためです。 以上が簡単ではありますが用語の説明とさせていただきます。
詳細
Platform Ops領域でPostmanユーザが活躍しており、その需要が高まっていることは大きな特徴です。
Platform Opsを使用すると、エンタープライズ組織はAPI操作全体でより高い生産性、品質、およびガバナンスを実現できます。
Platform Opsは、ソース管理およびCI/CDソリューションの背後に既に存在するインフラストラクチャを活用しますが、APIゲートウェイやAPIライフサイクルのその他の共通領域も活用します。その結果、運用インフラストラクチャの背後にあるAPIを活用するだけで、あらゆる開発チームが手の届くプラットフォーム全体の構成、最適化、および自動化が可能になります。
構築
DevOpsに基づく構築はその中でも重要な役割を果たします。
テクノロジーセクターにおけるDevOpsの進化により、ソフトウェア開発とIT運用が組み合わされ、ソフトウェア開発のライフサイクルが短縮され、チームは高品質のソフトウェアを継続的に提供できるようになりました。
DevSecOpsはこれらの同じ原則をセキュリティの領域に適用し、DataOpsはそれらをデータ操作に適用し、MLOpsはそれらを機械学習 (ML) の世界に適用します。
Platform Opsはこの哲学をAPIライフサイクル全体に拡張し、APIが既存のソフトウェア開発ライフサイクル、APIゲートウェイおよび今日の最新のAPIに沿った他のすべてのストップに依存していることを認めています。
Gartnerは、APIプラットフォームオペレーターの役割を、「プラットフォーム自体の健全性に関する指標と監視が必要であり、IDプロバイダー、ログ管理、エンタープライズ監視などの他のインフラストラクチャシステムとの統合の作成と管理を担当します。」と説明しています。
これらのDevOpsは、ソフトウェア開発とITに関して公平な競争条件を確立することの重要性を示しています。
マイクロサービスの動きから何かを学んだ場合、この現実をAPIゲートウェイに拡張する必要があります。ただし、APIゲートウェイだけでなくAPI管理も継続的に商品化されているため、ポータル、ドキュメント、分析、ロギング、およびAPI管理に必要なその他の要素は、複数のサービスプロバイダーに分散されています。
企業内の地上でのマルチゲートウェイの現実と、API運用の重要な側面の商品化と拡大の組み合わせにより、API管理が変化しました。
これらのAPI管理には、ビジネスを遂行するために必要なすべてをつなぎ合わせる、よりAPI主導のプラットフォームアプローチが必要であり、Postmanはこれらを実現します。
まとめ
いかがでしたでしょうか? PostmanとAPIガバナンスについて説明させていただきましたので、参考にしていただけましたら幸いです。
Postmanとは?詳しく解説します |