MuleSoft
MuleSoftとは
MuleSoft Anypoint Platformは、APIの設計・開発・実行・管理を一貫して行えるインテグレーションプラットフォームです。Salesforceが2018年に買収し、現在はSalesforceファミリーの製品として提供されています。
Javaコンテナ上で動くフローエンジン
MuleSoftの核となるMule Runtime Engineは、Javaで実装された軽量なアプリケーションコンテナです。開発者が作成した「フロー」は、最終的にJavaランタイム上で実行されます。Mule 4 では処理の単位がイベントとして扱われ、フローはこのイベントを連鎖的に処理する実行モデルです。
つまりMuleSoftは「クラウドサービス」であると同時に、Java開発者にとって馴染み深い「ミドルウェア」としての性格も持っています。
フローによるAPI開発とデータ連携(バッチ統合)
MuleSoftの開発は、フローと呼ばれるコンポーネントの組み合わせで行います。フローは、Muleイベント(リクエスト)を受け取り、コネクタやコンポーネントを順番に通して処理する実行パイプラインです。
APIの開発
- API DesignerでRAMLまたはOpenAPIを使ってAPIの仕様を設計する
- フローで、各エンドポイントが受け取ったリクエストに対する処理を実装する(データベースからレコードを取得してJSONで返す、など)
- 作成したAPIをCloudHubやオンプレミスにデプロイし、API Managerで認証・アクセス制御・流量制限を適用する
これにより、「APIを設計する」→「フローで実装する」→「デプロイ・管理する」というAPIライフサイクル全体を一つのプラットフォームで完結できます。
データ連携(バッチ統合)としての活用
同じフローの仕組みで、バッチやスケジュールに基づくデータ連携も実現できます。
- コネクタでSalesforce・データベース・SaaS・ファイルなどのデータソースに接続
- DataWeave(MuleSoft独自の変換言語)でデータのマッピング・変換を記述
- スケジュール実行やイベント駆動でフローをトリガー
API開発もデータ連携も、同じフロー・同じコネクタ・同じ変換言語で実装できるところがMuleSoftの強みです。多くのデータ連携ツールは「既存のAPIやサービスを繋ぐ」ことに主眼がありますが、MuleSoftは「APIそのものを作り出し、かつ繋ぐ」ことを一つのプラットフォームで実現します。
デプロイの選択肢
MuleSoftでは、要件に応じて3つのデプロイ方式を選択できます。
CloudHub
MuleSoftが提供するiPaaS環境です。インフラの管理は不要で、自動スケーリングや高可用性設計、ローリングデプロイに対応する運用機能が充実しています(※提供プラン・設定による)。
Runtime Fabric
KubernetesベースのAPI実行環境です。お客様のデータセンターやIaaS上に構築でき、CloudHubと同じ管理基盤で一元管理できます。
スタンドアロン
Mule Runtime Engineをミドルウェアとしてサーバ上に直接インストールする方式です。機密性の高いデータを扱う場合のオンプレミス環境に適しています。
いずれの方式でも、Anypoint Platformの管理コンソールから統一的に監視・運用が可能です。
当社のアプローチ
当社はMuleSoftのアーキテクチャ——Javaコンテナとしてのランタイム、フローベースの開発モデル、DataWeaveによるデータ変換——を理解した上で、お客様のシステム連携基盤を構築します。
- Salesforceとのシステム連携における豊富な経験を活かした、実践的なAPI設計
- フローの再利用性を意識した3階層(システム層・プロセス層・エクスペリエンス層)のAPI設計
- Herokuや既存システムとの組み合わせによる、最適なアーキテクチャの提案
MuleSoftの導入をご検討の方は、お気軽にご相談ください。