Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
月4000円でできる?LogicAppsとFunctionsで実現するサーバレスで低コストな自動化
Search
Recruit Technologies
April 27, 2019
Technology
1
1.2k
月4000円でできる?LogicAppsとFunctionsで実現するサーバレスで低コストな自動化
2019/4/27 Global Azure Bootcamp 2019@Tokyoでの瀧田の講演資料になります
Recruit Technologies
April 27, 2019
Tweet
Share
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
1
670
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
11k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.5k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.9k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
42k
【RTC新人研修 】 TPS
rtechkouhou
1
41k
Android Boot Camp 2020
rtechkouhou
0
41k
HTML/CSS
rtechkouhou
10
51k
TypeScript Bootcamp 2020
rtechkouhou
9
45k
Other Decks in Technology
See All in Technology
Goで作って学ぶWebSocket
ryuichi1208
3
2.8k
分解して理解する Aspire
nenonaninu
2
1.1k
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.2k
OPENLOGI Company Profile for engineer
hr01
1
20k
OCI Success Journey OCIの何が評価されてる?疑問に答える事例セミナー(2025年2月実施)
oracle4engineer
PRO
2
160
ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ
unnowataru
0
180
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
520
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
2
400
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2.1k
IAMのマニアックな話2025
nrinetcom
PRO
4
910
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Git: the NoSQL Database
bkeepers
PRO
427
65k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Rails Girls Zürich Keynote
gr2m
94
13k
KATA
mclloyd
29
14k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Become a Pro
speakerdeck
PRO
26
5.2k
Six Lessons from altMBA
skipperchong
27
3.6k
Gamification - CAS2011
davidbonilla
80
5.2k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Automating Front-end Workflow
addyosmani
1368
200k
Optimizing for Happiness
mojombo
376
70k
Transcript
⽉4000円でできる? LogicAppsとFunctionsで実現する サーバレスで低コストな⾃動化 株式会社リクルートテクノロジーズ 瀧⽥直⽃ 2019年4⽉27⽇
⽬次 • ⾃⼰紹介 • リクルートグループと商⽤インフラ • インフラ運⽤の障害通知 • 改善案と課題 •
LogicAppsとFunctions • ⾃動化システムの紹介 2 (C) Recruit Technologies Co., Ltd. All rights reserved.
⾃⼰紹介 瀧⽥ 直⽃ 株式会社リクルートテクノロジーズ ITインテグレーション本部 サイトリライアビリティエンジニアリング2部 経歴 2011〜2016 製薬業界様向けIT会社 -
営業⽀援システムのインフラ全般構築担当 2016/9〜 リクルートテクノロジーズ⼊社 - 商⽤インフラと社内インフラを担当 最近の技術興味 ・Linuxカーネル、Docker、Kubernetes、GoLang ・データ操作、ログまわりが好き Elasticsearch、fluentd/embulk、Neo4j、SQL、Cypher・・・ 3 (C) Recruit Technologies Co., Ltd. All rights reserved. ※スライドは弊社コーポレートサイトで後⽇公開予定です。
リクルートグループについて 4 (C) Recruit Technologies Co., Ltd. All rights reserved.
創業 1960年3⽉31⽇ 「⼤学新聞広告社」としてスタート グループ 従業員数 40,152名 (2018年3⽉31⽇時点) 連結売上⾼ 21,733億円 (2017年4⽉1⽇〜2018年3⽉31⽇) 連結経常利益 1,917億円 (2017年4⽉1⽇〜2018年3⽉31⽇) グループ 関連企業数 361社 (連結対象⼦会社、2018年3⽉31⽇時点) ⽬指す世界観 「あなた」を⽀える存在でありたい
リクルートの事業内容について 5 ライフイベント領域 進学 就職 結婚 転職 住宅購⼊ ⾞購⼊ 出産/育児
旅⾏ ビジネス⽀援 ⽣活/地域情報 グルメ・美容 ライフスタイル領域 選択・意思決定を⽀援する情報サービスを提供し、 「まだ、ここにない、出会い。」を実現する。
リクルートのビジネスモデルについて 6 リクルートには、ユーザーとクライアントという2つのお客様が存在します。 企業と⼈(B to C)、企業と企業(B to B)、⼈と⼈(C to C)、すべての間に⽴ち、
双⽅にとって最適なマッチングを図る「場」を提供しています。 ユーザーとクライアントを新しい接点で結び、 「まだ、ここにない、出会い。」の場を創造する。
リクルートテクノロジーズは、リクルートグループのIT・ネットマーケティング領域 のテクノロジー開発を担う会社です。 リクルートテクノロジーズについて 7 リクルート ホールディングス リクルートキャリア リクルート住まいカンパニー リクルートライフスタイル リクルートジョブズ
リクルートマーケティングパートナーズ リクルートテクノロジーズ リクルートスタッフィング スタッフサービス・ホールディングス リクルートコミュニケーションズ メディア & ソリューション事業 (株)リクルート ⼈材派遣事業 Recruit Global Staffing B.V. HRテクノロジ― 事業 RGF OHR USA, Inc. その他海外派遣グループ会社 Indeed,Inc.
リクルートテクノロジーズの役割について 8 (C) Recruit Technologies Co., Ltd. All rights reserved.
技術・ソリューションを磨き続け、リクルートの各サービスがもつ価値を最⼤限に発揮 できるようビジネスへ実装。 ITの側⾯からサービスを進化させることを通じて、世の中に新しい価値を提供していき ます。
リクルートテクノロジーズの事業内容について 9 (C) Recruit Technologies Co., Ltd. All rights reserved.
将来のニーズを⾒据え、新しい技術のR&D・ソリューションの開拓を実現。 検証を続け、いち早く活⽤できるレベルに引きあげることで、中⻑期的なビジネス競争 優位を構築していきます。
リクルートテクノロジーズの事業内容について 10 (C) Recruit Technologies Co., Ltd. All rights reserved.
将来のニーズを⾒据え、新しい技術のR&D・ソリューションの開拓を実現。 検証を続け、いち早く活⽤できるレベルに引きあげることで、中⻑期的なビジネス競争 優位を構築していきます。 ຊ ༻Πϯϑϥͷ ൣғͷ
インフラの運⽤ 業務内容 リクルートIDポイント事業におけるインフラ環境の運⽤を担当。 オンプレミス環境で通称『ELIXIR』と呼ばれている。 インフラ上ではPontaWebや各リクルートサービスサイトのIDサービスが 可動している。 11 (C) Recruit Technologies
Co., Ltd. All rights reserved. PontaWeb リクルートのサービス IDΛͬͯ ༧ ϙΠϯτར༻ ͕Ͱ͖Δɻ
障害通知の課題 課題 オンプレミス環境に数百台のサーバーや機器が存在。 発⽣した障害は監視センターで内容に応じて、通知先と通知⼿段を切り 分けているが、⼈⼿を介しているため時間がかかり、障害対応の初動が 遅れてしまう。 12 (C) Recruit Technologies
Co., Ltd. All rights reserved. 監視センター 運⽤チームC 運⽤チームB 運⽤チームA োͷΓ͚Λ࣮ࢪ
障害通知の課題 課題 オンプレミス環境に数百台のサーバーや機器が存在。 発⽣した障害は監視センターで内容に応じて、通知先と通知⼿段を切り 分けているが、⼈⼿を介しているため時間がかかり、障害対応の初動が 遅れてしまう。 13 (C) Recruit Technologies
Co., Ltd. All rights reserved. 監視センター 運⽤チームC 運⽤チームB 運⽤チームA োͷΓ͚Λ࣮ࢪ োൃੜʹؾ͕ͭ͘·Ͱ 15Ҏ্͔͔Δ߹ɾɾɾʂ
当初の改善案と課題 当初の改善案 そもそも、今の監視システム⾃体がなんかイケてないんじゃないか? もっとモダンに全部置き換えてしまおう!と考え、製品選定&検証したり ⾃作で構築をしようと試みた。 14 (C) Recruit Technologies Co.,
Ltd. All rights reserved. 監視センター 運⽤チームC 運⽤チームB 運⽤チームA
当初の改善案と課題 当初の改善案 そもそも、今の監視システム⾃体がなんかイケてないんじゃないか? もっとモダンに全部置き換えてしまおう!と考え、製品選定&検証したり ⾃作で構築をしようと試みた。 15 (C) Recruit Technologies Co.,
Ltd. All rights reserved. 監視センター 運⽤チームC 運⽤チームB 運⽤チームA モダンで、イケてて、カッコイイ!! そんなイケメン監視システムに してみせる・・・!!!
当初の改善案と課題 改善案の課題 数百台のサーバーの監視システムをそう簡単に変えられない。 すべてを置き換える場合、開発⼯数も運⽤⼯数も膨⼤になる・・・ と気がついた。 16 (C) Recruit Technologies Co.,
Ltd. All rights reserved. 有償製品だと ライセンス数が 膨⼤・・・! 当時⾒ていたOSSを使うと機 能が⾜りず追加開発が必要 品質を担保しなが らどうやって変更 していくか? ⼤規模な開発・・・? そもそも当時プログラミング スキルに明るくなかった・・・ 変更する⼯数が 膨⼤・・・! 新しい仕組みの 運⽤⼯数は?
当初の改善案と課題 そこで⼀度⽴ち返り・・・ やりたかったことって何だったのか? 17 (C) Recruit Technologies Co., Ltd. All
rights reserved.
当初の改善案と課題 イケてるモダンなものを 作りたかったんじゃない。 1秒でも早く障害に気がついて サービスを継続させたい。 それを今すぐに実現したい。 18 (C) Recruit Technologies
Co., Ltd. All rights reserved.
改善案の変更 改善範囲 そもそも全部やらなくても要件は満たせることに気がついた。 既存のシステムに変更がなく、今すぐ出来て、かつコストを最⼩限にでき る最善策を考えた。 19 (C) Recruit Technologies Co.,
Ltd. All rights reserved. 監視センター 運⽤チームC 運⽤チームB 運⽤チームA Γ͚લͷϝʔϧग़ͤΔɻ ͜ΕΛͳΜͱ͔ॲཧग़དྷͳ͍͔ʁ มߋ͠ͳ͍ɻ
LogicAppsとFunctions そこで LogicAppsとFunctions! 20 (C) Recruit Technologies Co., Ltd. All
rights reserved.
Azure Logic Appsとは Azure LogicAppsとは システムやサービス、アプリケーション間をつなぐAzure上のサービス。 GUIで設定可能で、ノンプログラミングでアプリケーションを構築できる。 サーバーレスなのでサーバメンテナンスなどの運⽤は発⽣しない。 21 +
Office365やSalesforceなどの200を超 えるコネクタがあり、それぞれイベント をトリガーとして実⾏できる。 またスケジュール実⾏やHTTPで受信し たら実⾏することもできる。 Azure Functionを実⾏、SQL Serverか らレコードを取得するといったアクショ ンの他、条件⽂やswitch⽂、ループなど のフォロー制御もできる。 処理結果をSlackへ通知したり、メール を送信したり、DBへレコードを追加した りなどを⾏う。 (C) Recruit Technologies Co., Ltd. All rights reserved.
22 (C) Recruit Technologies Co., Ltd. All rights reserved. Azure
LogicAppsの作り⽅ 基本的にGUIで処理の流れを設定していく。 ॲཧͷྲྀΕΛ GUIͰઃఆ͍͖ͯ͠ɾɾɾ Azure Logic Appsとは
23 (C) Recruit Technologies Co., Ltd. All rights reserved. Azure
LogicAppsの作り⽅ 基本的にGUIで処理の流れを設定していく。 ॲཧͷ݅ΛGUIͰઃఆ͠ ͍ͯ͘ɻ Azure Logic Appsとは
24 (C) Recruit Technologies Co., Ltd. All rights reserved. Azure
LogicAppsの作り⽅ 基本的にGUIで処理の流れを設定していく。 αʔϏε࿈ܞ ༧Ί༻ҙ͞Ε͍ͯΔίωΫλ͕͋Ε ؆୯ʹॲཧΛઃఆͰ͖Δɻ ্ྲྀͷϑϩʔͰॲཧͨ͠ύϥϝʔλʔ ͕͑Δͷ͕ϙΠϯτʂ Azure Logic Appsとは
Azure Functionsとは 25 (C) Recruit Technologies Co., Ltd. All rights
reserved. Azure Functionsとは いきなりコード開発が始められてコード以外のことは考えなくて良い。 イベントをトリガーとして実⾏され、実⾏時間だけの課⾦形態も選べる。 サーバーレスなのでサーバメンテナンスなどの運⽤は発⽣しない。 ίʔυ ࣮ߦϩά ೖྗ ग़ྗ Functionsの開発画⾯ 実はWebブラウザだけ で開発できる機能が 揃っており、気軽に始 めることができる。 この環境を作るまで1分 もかからない・・・!
Azure Functionsとは 26 (C) Recruit Technologies Co., Ltd. All rights
reserved. Azure Functionsのトリガー HTTPの要求を受信したら実⾏やスケジュール実⾏など、様々なトリガー 条件を指定できる。
Azure Functionsとは 27 (C) Recruit Technologies Co., Ltd. All rights
reserved. Azure Functionsのトリガー HTTPの要求を受信したら実⾏やスケジュール実⾏など、様々なトリガー 条件を指定できる。 今回はHTTPでパラメータを受信して 結果を返すトリガーを利⽤!
切り分け⾃動化の構成 28 (C) Recruit Technologies Co., Ltd. All rights reserved.
出来上がった⾃動化システム GUIの設定とFunctionsを使って完成。 ※システムロゴは弊社メンバーが作成 したものでAzureでは作れません。 通称『アルくん』と呼ばれています。
切り分け⾃動化の構成 29 (C) Recruit Technologies Co., Ltd. All rights reserved.
出来上がった⾃動化システム 内容を少し紹介させていただきます。
切り分け⾃動化の構成 30 (C) Recruit Technologies Co., Ltd. All rights reserved.
Office365ʹಧ͍ͨ োϝʔϧΛ ForจͰ1݅ͣͭ ॲཧ 出来上がった⾃動化システム メールの取得。
切り分け⾃動化の構成 31 (C) Recruit Technologies Co., Ltd. All rights reserved.
出来上がった⾃動化システム メールを後続のフローで処理しやすいように加⼯。 ϝʔϧΛύʔεͯ͠JSONม
[email protected]
ϗετ໊:ap-server ࣌ɿ2019/04/27 10:00 ॏେɿError ϝοηʔδ: appͷঢ়ଶ͕ ఀࢭ͍ͯ͠·͢ɻ { hostnameɿ”ap-server”, datetimeɿ”20190427 10:00”, loglevelɿ”Error”, message: “appͷঢ়ଶ͕ఀࢭ ͍ͯ͠·͢ɻ” }
切り分け⾃動化の構成 32 (C) Recruit Technologies Co., Ltd. All rights reserved.
出来上がった⾃動化システム 切り分け処理。 ύʔεޙͷύϥϝʔλΛϧʔϧςʔϒϧͱϚονϯάͤͯ͞ΓΛฦ͢ hostnameɿ”ap-server” loglevelɿ”Error” message: “appͷঢ়ଶ͕ఀࢭ͍ͯ͠·͢ɻ” hostname loglevel message return_code ap-server% Error% %の状態が停⽌% T001 % Emergency% % T002 % % %ノード停⽌ T003 return_codeɿ”T001” ⼊⼒ 出⼒
切り分け⾃動化の構成 33 (C) Recruit Technologies Co., Ltd. All rights reserved.
出来上がった⾃動化システム 切り分け処理。 ύʔεޙͷύϥϝʔλΛϧʔϧςʔϒϧͱϚονϯάͤͯ͞ΓΛฦ͢ hostnameɿ”ap-server” loglevelɿ”Error” message: “appͷঢ়ଶ͕ఀࢭ͍ͯ͠·͢ɻ” hostname loglevel message return_code ap-server% Error% %の状態が停⽌% T001 % Emergency% % T002 % % %ノード停⽌ T003 return_codeɿ”T001” ⼊⼒ 出⼒ ཪͰAzure SQL Database (SQL Server)Λར༻ɻ ϑϧϚωʔδυͷΫϥυDBͰ ࣮ͪ͜ΒOSӡ༻ͳͲ͕ແ͍ɻ ̍ςʔϒϧͷΈͳͷͰ ݄¥632ͷDBεϖοΫΛར༻ɻ
切り分け⾃動化の構成 34 (C) Recruit Technologies Co., Ltd. All rights reserved.
出来上がった⾃動化システム 通知の分岐処理。 εΠονจͰग़ྗ͞ΕͨΛݩʹذͯ͠ Slack௨ɻ return_codeɿ”T001” ⼊⼒
コスト 35 (C) Recruit Technologies Co., Ltd. All rights reserved.
使⽤サービス LogicApps Office365/Slackコネクタ、For each、スイッチ、JSON解析を利⽤ Functions ※コードを保存するストレージアカウント含む SQL Database ルールテーブル1つのみ コストサマリ 2019/01/01〜01/31でメールを約1万件処理して合計¥3,876の実績
発⽣している運⽤ 36 (C) Recruit Technologies Co., Ltd. All rights reserved.
発⽣している運⽤ ルールテーブルの更新のみ。 そもそもサーバーが(⾒かけ上)存在しないのでサーバー運⽤が無い。 hostname loglevel message return_code ap-server% Error% %の状態が停⽌% T001 % Emergency% % T002 % % %ノード停⽌ T003 ӡ༻ʹձΘͤͯϧʔϧςʔϒϧΛ ݄̍ɼ̎ճߋ৽ͷΈʂ αʔόʔϨεͳͷͰ αʔόʔӡ༻͕ൃੜ͠ͳ͍ʂ
現在の姿と拡張 37 (C) Recruit Technologies Co., Ltd. All rights reserved.
現在はリファクタリング&機能拡張 LogicAppsを分割することでテストのしやすい構成に変更(後述!) 複雑な条件の処理をFunctionで追加 (営業⽇のみ通知、10分で5回出たら通知など) 拡張中&検討中 Twillio連携による⾃動電話 Elasticsearch連携による障害の分析 LogicAppsͰॲཧͨ͠มɾύϥϝʔλ ΛָʹJSONม→HTTPίʔϧͰ͖Δͷ ͰREST APIͷΞϓϦʹ࿈ܞ͍͢͠ɻ
『瀧⽥ LogicApps』で検索 おまけ LogicAppsは便利だけど・・・ GUIで簡単に構築できるため、 調⼦に乗って作っていくとカオスになってくる・・・! 38 (C) Recruit Technologies
Co., Ltd. All rights reserved. ʰAzure Logic Appsʹ͓͚Δ ϦϑΝΫλϦϯάʱΛࢀরʂ https://speakerdeck.com/rtechkouhou/azure-logic- appsniokeru-rihuakutaringu ΧΦεʹͳ͖ͬͯͨΒ ςετˍ֦ு͍͢͠Α͏ʹϦϑΝΫλϦϯά͠ ෳࡶͳॲཧLogicApps্Ͱ࣮͢Δͱٯʹઃఆ͕ େมͳͷͰͲ͔͜ͰFunctionԽ͕͓͢͢ΊͰ͢ʂ
まとめ 39 (C) Recruit Technologies Co., Ltd. All rights reserved.
ü カッコイイ!モダン!に踊らされずに本来の課題に向き合う。 ü かっこよくしたい!という欲求は必要だと思うが、本来の⽬的に⽴ち返る。 ü LogicAppsとFunctionsは気軽に今すぐに始められる。 ü 開発、運⽤、コスト⾯で⼩さく始められて、今すぐ実装できる。 ※もちろん巨⼤になっていけば開発、運⽤、コスト⾯は増えていくことに注意! ü サーバーレスでサーバー運⽤から解き放たれるので『本来やりたい事』の 開発に集中できる。
おしまい ご清聴ありがとうございました! 40 (C) Recruit Technologies Co., Ltd. All rights
reserved.