hnishiyamaのブログ

日記とかSalesforceのこととか、なんでも書いていきます。

MuleSoftでAPIの作成を体験しよう! in 東京(TERAKOYAFORCE)に参加した話

こんにちは。
10℃を下ると空気が肌を刺すようですね。はやく春になってほしい。

12/6(木)、JPタワーで行われた「MuleSoftでAPIの作成を体験しよう! in 東京」に参加しました。

ので、忘備録を自分用に残しておきます。

最近勉強会によく参加してる気がします。 年末だからこそのやる気なのか。。持続するといいですね。(ひとごと)


MuleSoftって?

MuleSoftってなんなのか、SWTTでなんとな〜く掴みました。

f:id:hhhhhnishi:20181211165317j:plain ※写真はMuleSoftには何も関係ありません。ビックサイトから帰るときの景色です。綺麗。

SWTTの色々な講演で登場していたMuleSoftですが、聞くところによると「システム間の連携が簡単にできるデータインテグレーションツール」なんだとか?

ほほう。
前職ではTalend Open Studio のOEM製品を触っていたので、ETLツールみたいなものだろうか。なんて思っていました。


全然違いました。


まず、MuleSoftは企業名です(そこからかい)。

その中に、Anypoint Platform という製品があります。
これは、単なるポイントツーポイントの連携ツールではなく、API管理/活用とシステム間データインテグレーションの為の総合的な管理ツールです。

岡本さんのTwitterがわかりやすかった。


次に本家HPをみてみましょう。

f:id:hhhhhnishi:20181211165424p:plain

Anypoint Platform 上にあるメニューと、メニュー内で使用される機能コンポーネントがあります。

TrailheadのモジュールではAnypoint Platform は下記のように説明されています。ハンズオンではSFDC岡本さんも同じ図を使用されていました。

f:id:hhhhhnishi:20181211165358p:plain

f:id:hhhhhnishi:20181211165408j:plain

岡本さんが噛み砕いて説明してくれました。

「Design Center」 …API管理・データフロー定義

「Management Center」 …運用・監視

「Exchange」 …API共有・露出

Mule」「Runtime Servicies」 …ランタイム・インフラ

既存のEAI/ESBと大きく異なる特徴は、Exchangeの部分。 一度作成したAPIは共有資源としていつでも簡単に呼び出せるようになっています。

新しいビジネス要件の出現時、APIを再利用しての素早い実装が可能になります。

また、API設計の思想にも大きな特徴があります。 MuleSoftはAnypoint Platformの機能を使い、3つのAPIレイヤを設けることを推奨しています。

f:id:hhhhhnishi:20181211165429p:plain

MVCに似てますね。 いかに上手にレイヤを切り分けるかが、メンテナンス性やチームビルディングの肝になりそうです。

使い方や他製品との比較は他の方がしてくださっています。


ハンズオン

ハンズオンでは、大きく分けて2ステップを実装しました。

  1. 商品DBのAPI
  2. トラフィックの管理

本家の初心者向けQuick-Startを、Webブラウザのみで完結できるようにアレンジしてくださったようです。

もう少し細かく、やったことを記します。

  1. トライアルへのサインアップ
  2. API定義の作成
  3. Mule Application(API実装)の作成
  4. Runtimeアプリケーションの確認
  5. API ManagerによるProxyの設定
  6. API Proxyによる通信の制御

ここまでやって、なんと1時間半もかかってないです。APIを作って確認するまで30分くらいでしょうか。とっても簡単。

僕はやったことないですが、MySQLのクエリ結果を返すAPIJavaなんかで手作りしようとしたら、1,2日はかかるそうです。

触ってみた感想としては、必要なものと手順さえ把握していれば画面に従って入力を進めるだけですので、非常に使い勝手がいいです。

SQLの最後の「:id」に、URLパラメータをインプットとして使用することができる!とか。

f:id:hhhhhnishi:20181211165309p:plain

APIをつくるの、はじめてかもしれない。。(恥)

つくったAPIをモックとして使えるようにできます。仮想クラウド環境に仮デプロイするようなイメージでしょうか。

ブラウザでたたくとこんな感じ。

f:id:hhhhhnishi:20181211165330p:plain

RAMLで記述した通りのJson形式で返ってきています。

ちなみに本デプロイをしなければ、デザイナを閉じてログアウトしてしばらくするとモックはサービス停止してしまうそうです。


ハンズオン_こんな機能もあるよ!

「Visualizer」を使うとプロキシを挟んでサービスが動いている様子がよくわかります。

f:id:hhhhhnishi:20181211165436p:plain

API Manager」からは、作成したAPIが世界のどこから使用されているのかがわかったりします。  これはAnalyticsというコンポーネントの機能ですね。

f:id:hhhhhnishi:20181211165337p:plain

APIにポリシーを付与させるのも簡単。 F5攻撃をブロックしてみました。

f:id:hhhhhnishi:20181211165347p:plain

APIポリシーは、各レイヤごとに横断的に作成することもできるそうです。設計にも役立ちますね。


気になったこと

最初はどこに何があるのか、いまいちわからないかもしれません。特に迷ったのが、作成したAPIの詳細を見るとき。詳細からは、上記のAnalytics画面なども見れます。下記画像なのですが、API Manager の「Version」の「v1.0」をクリックすると飛べます。

f:id:hhhhhnishi:20181211165351p:plain

あとは、デザイナで各ノードの保存ボタンがないとか。自動保存されているそうなので、×ボタンを押して閉じます。

でもこのへんは慣れですね。慣れたらスラスラと使えるでしょう。


おわりに

なんか長くなってしまいました。こういう記事書くのって疲れますね〜〜。わかりづらくてゴメンナサイ。

MuleSoft Anypoint Platform、触れることはあまりないかもしれませんが、機会があれば是非開発に携わってみたいと思えるツールでした。

初参加のTERAKOYAFORCEに感謝です。


参考