#はじめに
MuleSoft Anypoint Platformのサイジングについて、
どのような要素がサイジングに影響するのか、また、MuleSoftにサイジングをリクエストする際にどのような情報が必要となるのかを簡単にまとめました。
#Anypoint Platformとは?
この記事は、Anypoint Platform自体について記載しているわけではないので、ここでは概要だけ簡単に説明します。
Anypoint Platformは、MuleSoft(Salesforce)が提供するサービス/製品の名称であり、
機能としては大きくは、
- API管理
- インテグレーション
の2つが提供されます。
Anypoint PlatformでいうAPI(モダンAPI)は、
単にインターフェースとしてのAPI機能のほかに、
・再利用のために、検索可能とするための仕組み
・管理のために、稼働状況などの情報提供する仕組み
・セキュリティのために、ポリシーを適用する仕組み
・開発の迅速化のために、複数のAPIを利用したシステム間のデータ連携プロセスを含む(=インテグレーション)
といったことが出来るようになっています。
Anypoint Platformは、そのAPIを活用するためのフレームワークであり、定義・開発・デプロイ・管理等の機能が提供されています。
#APIはどこで稼働する?
現在のオプションでは、
オプション | 環境 |
---|---|
CloudHub | MuleSoftの提供するクラウド |
Runtime Fablic(RTF) | 顧客の提供するLinuxなどで稼働させるコンテナ |
Standalone | スタンドアローン環境 |
という3種類になり、各環境にワーカーと呼ばれる環境を立てて行くことになります。
#サイジング
Anypoint Platofrmは、単なるAPI管理製品ではなくインテグレーションも担っており、
各処理に応じたスペックが必要となります。
最終的には、実際に稼働させてみて、そのリソース使用状況等を確認したうえでの調整が必要となりますが、
計画段階で凡そ見積もることが可能となっています。
###サイジング要素
サイジングに影響を与える要素としては、以下の4つが挙げられます。
要素 | 説明 |
---|---|
ペイロードのサイズ | ペイロードのサイズが大きくなれば、それだけ処理量が増えます |
スループット | 1秒間当たりのリクエスト数が増えれば、それだけ処理量が増えます |
複雑さ | どれだけ複雑な業務プロセスなのか、データのフォーマット変換が必要なのか。より複雑なAPIになれば、それだけ処理量が増えます |
インテグレーションの数 | より多くのインテグレーションを含むプロジェクトがあると、それだけ処理量が増えます |
プロジェクトでは、単にプロキシーとなるAPIから、ETL的な使い方でデータ変換を行うAPI、バッチ処理、インテグレーションとして複数の業務システム(に対応するAPI)とやりとりを行うインテグレーションを含むAPI、などなど、様々なAPIが出てきますが、下記で示した要素の通り、それぞれ必要なスペックが変わってくることになります。
###サイジングの取得
サイジング用のツールは公開されていませんが、MuleSoft社にはパフォーマンス評価結果を基にしたツールがあるため、
各APIについて、下記の情報と共にサイジングをリクエストすることで、必要となるCPUコア数やワーカー数の概算を得ることが可能です。
情報 | 説明 | 例 |
---|---|---|
APIの概要 | どのような処理を担うAPIなのか | Salesforce連携用システムAPIや、発注処理プロセスAPI等 |
連携するシステム | 連携するシステムの詳細 | SAP, Salesforce, MySQL等 |
導入の形態 | CloudHub / Runtime Fablic / Standalone | |
データ変換・集約の複雑さ | どれだけ複雑な処理が必要となるのか。可能であれば具体的な説明 | 3つのシステムから戻された合計100項目のデータを戻す。日付形式の変換等が必要。などなど |
インテグレーションの方式 | リアルタイム処理 / バッチ処理 | |
処理量 | 最大で許容できる応答時間、単位時間での処理量など。(ピークの量を提供するようにしてください。) | 毎時10,000処理 |
どれだけの量のデータ連携となるのか | ペイロードサイズ、出力結果サイズ | 100KB等 |
SLA | 応答時間を守る必要があるか。Yes or No | |
冗長 | 複数ワーカーによる分散を必要とするか。Yes or No |
###その他の要素
MuleSoft Anypoint Platformの導入は、本番環境+開発環境の2環境であったり、それにUAT環境が追加されたりしますので、
それぞれの環境で必要となる量についても伝えると良いです。