MuleSoftでAPIの作成を体験しよう! in 東京(TERAKOYAFORCE)に参加した話
こんにちは。
10℃を下ると空気が肌を刺すようですね。はやく春になってほしい。
12/6(木)、JPタワーで行われた「MuleSoftでAPIの作成を体験しよう! in 東京」に参加しました。
ので、忘備録を自分用に残しておきます。
最近勉強会によく参加してる気がします。 年末だからこそのやる気なのか。。持続するといいですね。(ひとごと)
MuleSoftって?
MuleSoftってなんなのか、SWTTでなんとな〜く掴みました。
※写真はMuleSoftには何も関係ありません。ビックサイトから帰るときの景色です。綺麗。
SWTTの色々な講演で登場していたMuleSoftですが、聞くところによると「システム間の連携が簡単にできるデータインテグレーションツール」なんだとか?
ほほう。
前職ではTalend Open Studio のOEM製品を触っていたので、ETLツールみたいなものだろうか。なんて思っていました。
全然違いました。
まず、MuleSoftは企業名です(そこからかい)。
その中に、Anypoint Platform という製品があります。
これは、単なるポイントツーポイントの連携ツールではなく、API管理/活用とシステム間データインテグレーションの為の総合的な管理ツールです。
岡本さんのTwitterがわかりやすかった。
Mulesoftは「しっかり使えば」ですが、年間で数億規模の開発やApiライフサイクル管理、インテグレーションの効率化が測れるので、狙ってる領域に対する値段は高く無いと思います。同様の製品(Api Mgmt+EAI/ESB)を別で揃えても同じくらいする割に、統合されてないので開発や管理の効率はMuleのが上かと
— Mitsuhiro Okamoto (@mitsuhiro) 2018年12月9日
高いと感じるのは、単純なPoint to Pointでのシステム間のインテグレーションを想定してるからで、そこだけに使ったらクソ高い。が、対象としてるのはその付け焼き刃で繋ぎまくってスパゲティ化したインテグレーション地獄の解消や、API化による再利用の促進がゴールなので、前提が違う
— Mitsuhiro Okamoto (@mitsuhiro) 2018年12月9日
次に本家HPをみてみましょう。
Anypoint Platform 上にあるメニューと、メニュー内で使用される機能コンポーネントがあります。
TrailheadのモジュールではAnypoint Platform は下記のように説明されています。ハンズオンではSFDC岡本さんも同じ図を使用されていました。
岡本さんが噛み砕いて説明してくれました。
「Design Center」 …API管理・データフロー定義
「Management Center」 …運用・監視
「Exchange」 …API共有・露出
「Mule」「Runtime Servicies」 …ランタイム・インフラ
既存のEAI/ESBと大きく異なる特徴は、Exchangeの部分。 一度作成したAPIは共有資源としていつでも簡単に呼び出せるようになっています。
新しいビジネス要件の出現時、APIを再利用しての素早い実装が可能になります。
また、API設計の思想にも大きな特徴があります。 MuleSoftはAnypoint Platformの機能を使い、3つのAPIレイヤを設けることを推奨しています。
MVCに似てますね。 いかに上手にレイヤを切り分けるかが、メンテナンス性やチームビルディングの肝になりそうです。
使い方や他製品との比較は他の方がしてくださっています。
ハンズオン
ハンズオンでは、大きく分けて2ステップを実装しました。
本家の初心者向けQuick-Startを、Webブラウザのみで完結できるようにアレンジしてくださったようです。
もう少し細かく、やったことを記します。
- トライアルへのサインアップ
- API定義の作成
- Mule Application(API実装)の作成
- Runtimeアプリケーションの確認
- API ManagerによるProxyの設定
- API Proxyによる通信の制御
ここまでやって、なんと1時間半もかかってないです。APIを作って確認するまで30分くらいでしょうか。とっても簡単。
僕はやったことないですが、MySQLのクエリ結果を返すAPIをJavaなんかで手作りしようとしたら、1,2日はかかるそうです。
触ってみた感想としては、必要なものと手順さえ把握していれば画面に従って入力を進めるだけですので、非常に使い勝手がいいです。
SQLの最後の「:id」に、URLパラメータをインプットとして使用することができる!とか。
APIをつくるの、はじめてかもしれない。。(恥)
つくったAPIをモックとして使えるようにできます。仮想クラウド環境に仮デプロイするようなイメージでしょうか。
ブラウザでたたくとこんな感じ。
RAMLで記述した通りのJson形式で返ってきています。
ちなみに本デプロイをしなければ、デザイナを閉じてログアウトしてしばらくするとモックはサービス停止してしまうそうです。
ハンズオン_こんな機能もあるよ!
「Visualizer」を使うとプロキシを挟んでサービスが動いている様子がよくわかります。
「API Manager」からは、作成したAPIが世界のどこから使用されているのかがわかったりします。 これはAnalyticsというコンポーネントの機能ですね。
APIにポリシーを付与させるのも簡単。 F5攻撃をブロックしてみました。
APIポリシーは、各レイヤごとに横断的に作成することもできるそうです。設計にも役立ちますね。
気になったこと
最初はどこに何があるのか、いまいちわからないかもしれません。特に迷ったのが、作成したAPIの詳細を見るとき。詳細からは、上記のAnalytics画面なども見れます。下記画像なのですが、API Manager の「Version」の「v1.0」をクリックすると飛べます。
あとは、デザイナで各ノードの保存ボタンがないとか。自動保存されているそうなので、×ボタンを押して閉じます。
でもこのへんは慣れですね。慣れたらスラスラと使えるでしょう。
おわりに
なんか長くなってしまいました。こういう記事書くのって疲れますね〜〜。わかりづらくてゴメンナサイ。
MuleSoft Anypoint Platform、触れることはあまりないかもしれませんが、機会があれば是非開発に携わってみたいと思えるツールでした。
初参加のTERAKOYAFORCEに感謝です。