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
Platform Engineeringで クラウドの「楽しくない」を解消しよう
jacopen
4
180
Охота на косуль у древних
ashapiro
0
120
[OpsJAWS Meetup33 AIOps] Amazon Bedrockガードレールで守る安全なAI運用
akiratameto
1
130
Pwned Labsのすゝめ
ken5scal
2
550
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
240
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
1.1k
Snowflake ML モデルを dbt データパイプラインに組み込む
estie
0
110
"TEAM"を導入したら最高のエンジニア"Team"を実現できた / Deploying "TEAM" and Building the Best Engineering "Team"
yuj1osm
1
230
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.6k
AI自体のOps 〜LLMアプリの運用、AWSサービスとOSSの使い分け〜
minorun365
PRO
9
810
手を動かしてレベルアップしよう!
maruto
0
250
Amazon Q Developerの無料利用枠を使い倒してHello worldを表示させよう!
nrinetcom
PRO
2
120
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
137
6.8k
Building Your Own Lightsaber
phodgson
104
6.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Adopting Sorbet at Scale
ufuk
75
9.2k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
13
1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
580
Bash Introduction
62gerente
611
210k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
What's in a price? How to price your products and services
michaelherold
244
12k
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ม xxxx@xxx.com ϗετ໊: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.