クラウドネイティブにとってAPIデザインは不可欠である/API design is essential to cloud native development

 原文はこちら:https://blogs.oracle.com/cloud-infrastructure/api-design-is-essential-to-cloud-native-development

より多くの開発者たちが高いスケーラビリティと保守性を兼ね備えたソリューションを求めるようになる中で、クラウドネイティブが人気を得ています。しかし実際のところクラウドネイティブとは何を意味していて、APIはどのように関係があるのでしょうか?

Cloud Native Computing Foundationはクラウドネイティブの定義を以下としています:

  • クラウドネイティブ技術はパブリック、プライベート、またハイブリッドクラウドのようなモダンでダイナミックな環境でスケーラブルなアプリケーションを構築し、実行する方法を組織に与えます。コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、そして宣言的なAPIがこのアプローチの例証です。
  • これらのテクニックにより、耐障害性、管理性、そして可視性を持った疎結合のシステムが可能になります。堅牢な自動化との組み合わせることで、これらによりエンジニアは大きな影響のある変更を頻繁に、しかし予見可能性が高く最小の副作用で行うことができます。
  • Cloud Native Computing Foundationはこのパラダイムの適用をオープンソースでベンダーニュートラルなエコシステムの涵養、そして維持により追求しています。CNCFは最先端パターンを民主化することでこれらのイノベーションを誰でもがアクセス可能なものにしています。

Oracleがクラウドネイティブをどのように定義しているかについては、What is Cloud Native?をご覧ください。

ここでクラウドネイティブの適用についてのいくつものコンセプトや可能性を見ていくこともできるのですが、このポストではAPIとAPIデザインの価値について考えていくことにしましょう。

APIはどのようにクラウドネイティブをサポートするか

クラウドネイティブでは疎結合で自己充足的なマイクロサービスの利用が促進されています。サービス間の通信は明確に定義されたインターフェース、つまりAPIによって行われます。多くの場合、ビジネスユースケースの課題を解くために、ある特定のタスクを担う複数のサービスを作成することになります。ここで開発者にとってのチャレンジは、サービスを如何にサクッと使えるか、また、目的に合うように使えるか、ということです。

ここでAPIデザインが登場します。APIをデザインし、仕様を記述することが、サービスの開発と利用を加速することにつながるのです。

OpenAPIを用いたAPIの仕様記述

このポストでは、HTTPあるいはHTTPSで呼び出されるRESTfulなWebサービスとしてWeb APIにフォーカスします。こうしたサービスを構築する際に、デプロイはかんたんにできたものの、そのAPIにどういうことができてどう使えばいいのかを開発者たちが理解しようとする段になって、そのAPI利用体験がなんだか難しいものになってしまっていることがわかる、ということがあります。API仕様記述をAPI実装に依存しないフォーマットで作成することには、以下の明確な利点があるでしょう:

  • 開発者たちは実装に労力を投入する前に、APIの挙動について協働し、理解し、合意することができます。
  • より良く挙動を理解することができるよう、挙動をすぐにプロトタイプ化できます。
  • API実装がまだ完了していない時期から、API提供者(APIの持ち主)によるAPIの実装と、APIプロトタイプを使ったAPI利用者(APIのお客様)側の開発を並列で行えるようになります。
  • APIのリリース後にも、そのAPIがより利用しやすくなります。将来のプロジェクトにおいて他の開発者たちはそのAPIの存在に気づき、どのように使えばいいかを理解することができるでしょう。

APIデザインの黎明期には、API BlueprintやSwagger、RAMLなどなどの数多くのフォーマットが存在していました。Swaggerは現在ではOpenAPIとして知られるものに進化し、APIの仕様記述のデファクトスタンダードとなっています。Oracleを含めた多くの企業がOpenAPIをサポートしています。光栄あるOpenAPIイニシアティブの一員として、OracleはAPIの相互運用性と再利用性を、そして、しっかりとサポートされた仕様記述フォーマットの重要性を支持しています。


Oracle ApiaryがAPI Blueprintを作り上げたことに照らして、OpenAPIについてのOracleの姿勢に驚かれる方もいるかもしれません。しかしオープンであるということがより重要なのです。Oracle Cloud Infrastructure(OCI)のAPI GatewayにAPI管理の機能を追加するにあたり、第一のAPI仕様記述フォーマットとしてOpenAPI 2および3のサポートを追加しています。

OCI API Gatewayはクラウドネイティブでサーバレスのゲートウェイサービスです。コンテナやサーバレスファンクションとして実装したあなたのクラウドネイティブサービスのための保護されたAPIネットワークエンドポイントを提供するために、OCI API Gatewayを利用できます。

API仕様記述を書くにあたっては、世間で利用可能なお好きなツールを使うことができます。それらツールには、APIについての作成、協働、プロトタイピング、そして仕様記述をするためのプラットフォームであるOracle Apiaryも含まれます。ApiaryとOCI API Gateway、さらにTerraformを組み合わせると、クラウドネイティブAPIのデザインからデプロイまでの一貫したソリューションが組み立てられます。

おわりに

クラウドネイティブアーキテクチャにとって、APIは重要なコンポーネントです。高品質なAPIを作ろうと思ったら、デザインから始めることが重要です。OpenAPIのようなAPI仕様記述フォーマットを用いることは、クラウドネイティブサービスのドキュメントを作成し、理解するうえで非常に大きな利点をもたらすでしょう。OpenAPIの実装に依存しない性質のおかげで、開発者たちは好きなツールを使うことができ、また、クラウドネイティブAPIをOracle Cloud Infrastructureにデプロイすることができます。

0 件のコメント:

コメントを投稿