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.1k
月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
640
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
11k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.5k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.9k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
41k
【RTC新人研修 】 TPS
rtechkouhou
1
41k
Android Boot Camp 2020
rtechkouhou
0
41k
HTML/CSS
rtechkouhou
10
50k
TypeScript Bootcamp 2020
rtechkouhou
9
45k
Other Decks in Technology
See All in Technology
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
390
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
480
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
The Role of Developer Relations in AI Product Success.
giftojabu1
0
130
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
390
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
BBQ
matthewcrist
85
9.3k
Why Our Code Smells
bkeepers
PRO
334
57k
Happy Clients
brianwarren
98
6.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Building Your Own Lightsaber
phodgson
103
6.1k
Unsuck your backbone
ammeep
668
57k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Gamification - CAS2011
davidbonilla
80
5k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Writing Fast Ruby
sferik
627
61k
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.