MuleSoft 入門(2)ようこそ Anypoint Platform へ

December 19, 2019 Minoru Nakanishi

こんにちは、アピリオの中西です。弊社の北嵐と、MuleSoft 入門編ブログを複数回にわたって紹介していきます。

初回は MuleSoft の概要と、MuleSoft が提唱する API 主導のシステム間連携に関してお話しました。今回は、API 主導のシステム間連携を支えるプラットフォームである「Anypoint Platform」についてご紹介します。

Anypoint Platformとは

Anypoint Platform は MuleSoft 上で API を開発・管理するための包括的な機能を提供するクラウド環境です。

[Anypoint Platform の特徴]

API の設計開発・テスト・公開のライフサイクル管理、様々なデータソースへの接続基盤、社内外の API アセットの蓄積と再利用、API のランタイム環境など、API 主導のシステム連携をサポートするための幅広い機能が単一のプラットフォーム上で提供されています。

Anypoint Platform は公式で30日の無料トライアルが用意されていますので、お試しで環境に触れてみたい方は誰でも利用可能です。

https://anypoint.mulesoft.com/login/signup?apintent=generic

本記事では、API の開発と運用を行う上で利用する「Design Center」「Exchange」「API Manager」「Runtime Manager」に焦点を当てて、機能の一部をご紹介します。

Design Center 

API 定義の設計(RAML or OAS 形式)および API 実装の開発機能を提供します。API 開発の起点はここから始まります。

API の IF 定義は「API Designer」を利用して、リソースパスやメソッド、リクエスト / レスポンスデータ といった、API に必要な要素をコードベースもしくはビジュアルベースで定義します。個人的には、RAML や Swagger などで API 定義の経験がある方はコードエディタを利用した方がスムーズだと感じました。

[Design Center 画面]

上記画像の例では、RAML 1.0 を利用して API を定義しています。記述した定義はリアルタイムで画面右側のパネルに反映され、モック機能を利用してその場で API コールのシミュレーションまで行うこともできます。モック機能を利用して API コールを行なった場合、RAML 定義上の "example" に定義したサンプルレスポンスが固定値として返却されます。RAML 1.0 に関する詳しい説明は、MuleSoft の岡本さんのブログ「RAML入門その1」を参照してください。

定義が完了したら、次節で紹介する「Exchange」に Publish (公開) し、アセットとして登録します。

「Design Center」にはAPI の実装を行える「Flow Designer」も提供されています。この機能では、グラフィカルなカードを並べて設定ベースでフローを定義します。カードはログを出力する Logger、HTTP Listner、社内外の公開済みの API のコネクタなど、様々なものが用意されています。シンプルな API であれば、クラウド環境のみで実装が完結できます(ローカルで API 実装を行う場合は、Eclipse ベースの Anypoint Platform という IDE を利用して開発を行います。こちらの詳細については、「MuleSoft 入門(3)Anypoint Studio による API の実装」をご参照ください)

Exchange 

MuleSoft 上で公開されている社内外の API アセットを管理・検索・参照することができるポータル機能です。API の概要、インターフェースの詳細、バージョンなどの情報を確認したり、モック機能で API を試しに実行したりできます。

[Exchange 画面]

従来の Excel による API 定義の管理では、どうしても変更管理の不備や情報の属人化といったリスクが生じます。必要な API の情報を探すのに苦労したり、表形式の定義書からはどのような値が返却されるのか読み取りにくかったりといった、不便な経験をしたことがある人も多いのではないでしょうか。

Exchange では開発者が必要な時に定義を参照したり、モック機能でサンプルレスポンスを確認したりでき、API の再利用とドキュメントレス化に伴う生産性の向上が期待できるという点においても、非常にメリットのある機能です。また、社内アセットだけでなく、Salesforce 、AWS、Microsoft、Box といった様々なデータソースへのコネクタが標準で Exchange 上に公開されています。

MuleSoft は、コストのかかる実装の前にAPIを公開し、フィードバックを得ることを推奨しています。Exchange 上の API アセット画面では、一般的なストア(Apple Store や Google Play など)のようなレビュー機能も提供されているため、API 利用者は要望やコメントを残すことができ、API 定義を早いサイクルで洗練していく仕組みが提供されています。

Exchange に登録された API アセットは、次節で紹介する「API Manager」にて API インスタンスが管理されます。

API Manager 

API Manager では、API を管理するための Gateway/Proxy を定義します。

[API Gateway の実行イメージ]

API Gateway は Mule Runtime に含まれる、 API を管理保護するための機能です。実装面と分離されているので、 API の実装に影響を与えることなく API 制御の設定( API ポリシー)を適用できます。

例えば、「特定の IP アドレスの要求のみ許可」「レート制限」といった制御設定を適用できます。また、各 API にアクセス可能なクライアントアプリケーションの管理や、 SLA の定義 (※1)、 API のリクエスト状況をダッシュボードやレポート形式で分析できる機能などが提供されています。

SLA およびポリシーについては、「MuleSoft 入門(6)ポリシーと SLA」をご参照ください。

 (※1) Service Level Access の略で、ユーザアクセスのカテゴリを定義できる機能。

Runtime Manager

Design Centerで定義された API の I/F はMule アプリケーション(実態はJavaプログラム)として実装されることで、APIとして機能できるようになります(Mule アプリケーションの実装方法については、「MuleSoft 入門(3)Anypoint Studio による API の実装」を参照)。MuleSoft には、CloudHub という Mule アプリケーションを実行するためのクラウド環境上のインテグレーションプラットフォーム (iPaaS)環境が用意されており、Runtime Manager もしくはローカル開発環境の Anypoint Studio を通じて Mule アプリケーションをクラウド環境へデプロイできます。

Runtime Manager は、デプロイされたアプリケーションのあらゆる設定を 1 か所で管理および監視できる直感的なコンソールです。ダッシュボードには、全てのデプロイ済みアプリケーションと監視対象のサーバの状況が表示され、デプロイ、起動・停止、ログ参照、ランタイム設定の変更といった機能がサポートされます。

[Runtime Manager の設定画面]

上記画像は Runtime Manager 経由で Mule のランタイム環境にデプロイされたアプリケーションの設定画面です。各タブにて、ランタイム設定や静的IPの付与、プロパティの設定などを行います。

アプリケーションのデプロイ時には、一意なアプリケーション名を元に "cloudhub.io" ドメインの URL が付与され、公開URLは "http://<<your-app-name>>-<<region>>.cloudhub.io" となります。上記例では、SANDBOX 環境にデプロイした Mule アプリケーションであることを明示するため、"sand-" 接頭辞を付与して環境別に一意になるよう工夫しています。Anypoint VPNを使うことで、ネットワークのIPアドレスとドメイン名を追加して、カスタムプライベートドメインを指定することもできます。

デプロイされた Mule アプリケーションは、API Manager にて API インスタンス別に一意に付与される API の ID を元に、API 定義と自動で紐付けが行われます(こちらは開発手順の紹介の際にも触れますので、本記事では割愛します)。

これで、定義した API と実装が紐付き、発行された URL を利用して API を運用することができるようになります。

その他の機能

本記事で紹介した機能群は全体の一部であり、Anypoint Platform にはAPIの設計・公開・開発・運用を促進するためのサポート機能が多数存在します。例えば、API および Mule アプリケーションの稼働状況を監視する Anypoint Monitoring や Visualizer 、単一組織の中で作業グループを階層化して個別管理できる Business Group といったように、API 開発と運用管理をスムーズに行える環境が整っています。

MuleSoft 自身の言葉を借りれば、MuleSoft は「世界中のアプリケーション、データ、およびデバイスを簡単に接続できるようにすることで、組織の変化と革新を促進すること」を使命とし、そのアプリケーションネットワーク構築の基盤が Anypoint Platform なのです。

次回は Eclipse ベースの開発ツールである Anypoint Studio を利用した API 実装について紹介します。

 

[MuleSoft 入門シリーズ]

MuleSoft 入門(1)MuleSoft による API-led なアプリケーションネットワーク

MuleSoft 入門(2)ようこそ Anypoint Platform へ

MuleSoft 入門(3)Anypoint Studio による API の実装

MuleSoft 入門(4)DataWeave によるデータ変換

MuleSoft 入門(5)Flow Designer で Mule アプリケーションを開発

MuleSoft 入門(6)MUnit による単体テスト

MuleSoft 入門(7)API 開発におけるテストの考え方

MuleSoft 入門(8)ポリシーと SLA

MuleSoft 入門(9)カスタムポリシーの開発

MuleSoft 入門(10)Mule API のバージョン管理

MuleSoft 入門(11)ランタイムログの自動アーカイブ

著者について

2018年にアピリオに入社し、Salesforce を中心としたクラウドの世界に足を踏み入れました。2019年には MuleSoft のプロジェクトに携わり、API 主導の開発に強い興味と関心を持っています。IT 技術の変遷が激しい今だからこそ、勉強に励んで自分の価値を高めようと絶賛奮闘中です。

Minoru Nakanishi のコンテンツをもっと見る
戻る
MuleSoft 入門(3)Anypoint Studio による API の実装(1/2)
MuleSoft 入門(3)Anypoint Studio による API の実装(1/2)

第3回目では、Mule API 開発の基本的な流れと Eclipse ベースの開発ツールである Anypoint Studio について説明します。前後編の2部構成になっていて、前半はMule API の開発作業全...

次へ
MuleSoft 入門(1)MuleSoft による API-led なアプリケーションネットワーク
MuleSoft 入門(1)MuleSoft による API-led なアプリケーションネットワーク

今回から MuleSoft 入門編ブログをシリーズに渡ってお届けします。このシリーズでは MuleSoft が提唱する API 主導のシステム連携、MuleSoft Anypoint Platform の紹介、An...

アピリオまでお気軽にお問合せください

ご質問はこちら