Slide 1

Slide 1 text

Azure Logic Appsにおける リファクタリング 株式会社リクルートテクノロジーズ 瀧田直斗 2019年3月29日 Azure DevOps Tokyo Japan 3rd strike

Slide 2

Slide 2 text

目次 • 自己紹介 • Azure Logic Appsとは • カオスになっていくLogicApps • リファクタリング方法 • リファクタリング後とテスト方法 2 (C) Recruit Technologies Co., Ltd. All rights reserved.

Slide 3

Slide 3 text

自己紹介 瀧田 直斗 株式会社リクルートテクノロジーズ ITソリューション本部 インフラソリューション部 経歴 2011〜2016 製薬業界様向けのIT会社 - 営業支援システムのインフラ全般構築担当 2016/9〜 リクルートテクノロジーズ入社 - 商用インフラと社内インフラを担当 最近の技術興味 ・Linuxカーネル、Docker、Kubernetes、GoLang ・データ操作,ログまわりが好き ELS、fluentd/embulk、SQL、・・・ 3 (C) Recruit Technologies Co., Ltd. All rights reserved.

Slide 4

Slide 4 text

Azure Logic Appsとは Azure Logic Appsとは システムやサービス、アプリケーション間をつなぐAzure上のサービス。 GUIで設定可能で、ノンプログラミングでアプリケーションを構築できる。 サーバレスなのでサーバメンテナンスなどの運用は発生しない。 4 (C) Recruit Technologies Co., Ltd. All rights reserved. + Office365やSalesforceなどの200を超 えるコネクタがあり、それぞれイベント をトリガーとして実行できる。 またスケジュール実行やHTTPで受信し たら実行することもできる。 Azure Functionを実行、SQL Serverか らレコードを取得するといったアクショ ンの他、条件文やswitch文、ループなど のフォロー制御もできる。 処理結果をSlackへ通知したり、メール を送信したり、DBへレコードを追加した りなどを行う。

Slide 5

Slide 5 text

カオスになっていくLogicApps 便利だけど・・・ GUIで簡単に構築できるため、 調子に乗って作っていくとカオスになってくる・・・。 5 (C) Recruit Technologies Co., Ltd. All rights reserved.

Slide 6

Slide 6 text

カオスになっていくLogicApps カオスになると・・・ 追加や変更、テストが大変・・・! 例えば、途中のロジックをテストしたくても頭から実行しないとテスト できない。 6 (C) Recruit Technologies Co., Ltd. All rights reserved. 毎回トリガーを起動し いと 途中のロジックがテス トできない! テストしたいロジック トリガー

Slide 7

Slide 7 text

リファクタリング方法 単体機能で分割を考える 単体機能ごとに分割してリファクタリング! それぞれのロジックが依存しないで呼び出せるように変更する。 7 (C) Recruit Technologies Co., Ltd. All rights reserved. それぞれ別のLogicAppsに 切り出す! 処理1 処理2 処理3

Slide 8

Slide 8 text

リファクタリング方法 HTTP要求/応答を利用して機能単位に分割しよう! 例えば以下の様にHTTPでパラメータを受信して、処理結果をレスポンス として応答する。 8 (C) Recruit Technologies Co., Ltd. All rights reserved. 受信するパラメータを要求本文 (Body)にJSON型で設定!

Slide 9

Slide 9 text

リファクタリング後とテスト方法 リファクタリング後! とってもシンプルに! 9 (C) Recruit Technologies Co., Ltd. All rights reserved.

Slide 10

Slide 10 text

リファクタリング後とテスト方法 単体テスト方法 それぞれのLogicAppsにPOSTでパラメータを送信すればOK! 10 (C) Recruit Technologies Co., Ltd. All rights reserved. パラメータ ※Postmanを利用

Slide 11

Slide 11 text

おしまい ご清聴ありがとうございました! 11 (C) Recruit Technologies Co., Ltd. All rights reserved.