Submit Search
Azure Functions with terraform
Download as PPTX, PDF
0 likes
353 views
T
Tomokazu Tochi
Modernizing legacy monolithic system with managed and isolated services using IaC reinforcement.
Engineering
Read more
1 of 36
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
More Related Content
What's hot
(20)
PDF
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
PDF
react-scriptsはwebpackで何をしているのか
暁 三宅
PDF
OSSを活用したIaCの実現
Trainocate Japan, Ltd.
PPT
DNS移転失敗体験談
oheso tori
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PDF
Google Cloud のネットワークとロードバランサ
Google Cloud Platform - Japan
PDF
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
PPTX
Keycloak入門
Hiroyuki Wada
PDF
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
PDF
TIME_WAITに関する話
Takanori Sejima
PDF
そんなトランザクションマネージャで大丈夫か?
takezoe
PDF
シリコンバレーの「何が」凄いのか
Atsushi Nakada
PDF
まずやっとくPostgreSQLチューニング
Kosuke Kida
PPTX
KubeEdgeを触ってみた
Tomoyuki Tanigaki
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
PDF
Go 製リアルタイムサーバーの Kubernetes での運用について
KairiOkumura
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
PDF
こわくない Git
Kota Saito
PDF
ミッション : メガクラウドを安全にアップデートせよ!
Toru Makabe
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
react-scriptsはwebpackで何をしているのか
暁 三宅
OSSを活用したIaCの実現
Trainocate Japan, Ltd.
DNS移転失敗体験談
oheso tori
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
Google Cloud のネットワークとロードバランサ
Google Cloud Platform - Japan
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
Keycloak入門
Hiroyuki Wada
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
TIME_WAITに関する話
Takanori Sejima
そんなトランザクションマネージャで大丈夫か?
takezoe
シリコンバレーの「何が」凄いのか
Atsushi Nakada
まずやっとくPostgreSQLチューニング
Kosuke Kida
KubeEdgeを触ってみた
Tomoyuki Tanigaki
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
Go 製リアルタイムサーバーの Kubernetes での運用について
KairiOkumura
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
こわくない Git
Kota Saito
ミッション : メガクラウドを安全にアップデートせよ!
Toru Makabe
Similar to Azure Functions with terraform
(20)
PDF
ゆるふわAzure Functions
Keiji Kamebuchi
PPTX
「Azure durable functions」の概要
裕之 木下
PDF
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
PPTX
Azure Functions あれこれ
Yasuaki Matsuda
PDF
[Japan Tech summit 2017] APP 003
Microsoft Tech Summit 2017
PDF
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
PDF
Azure Functions と Serverless - 概要と企業向け Tips
Keiji Kamebuchi
PDF
20190514 Smart Store - Azure servlerless architecture
Issei Hiraoka
PDF
Smart Store サーバーレスアーキテクチャ編
Microsoft Azure Japan
PDF
Azure Functionsから始めるServerless
ryosuke matsumura
PDF
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
PDF
Terraform Bootcamp - Azure Infrastructure as Code隊
Toru Makabe
PPTX
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Yasuaki Matsuda
PPTX
Azure serverless!! azure functionsでサーバーを意識しない開発
Yuki Hattori
PPTX
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
Yoichi Kawasaki
PPTX
Visual Studio 2017 で Azure Functions の開発
Yasuaki Matsuda
PDF
Azure reliability v0.1.21.0422
Ayumu Inaba
PDF
NoOpsへ舵を切れ
Hiromasa Oka
PDF
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Kazumi OHIRA
PPTX
Microsoft azure
ssuser184f93
ゆるふわAzure Functions
Keiji Kamebuchi
「Azure durable functions」の概要
裕之 木下
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
Azure Functions あれこれ
Yasuaki Matsuda
[Japan Tech summit 2017] APP 003
Microsoft Tech Summit 2017
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
Azure Functions と Serverless - 概要と企業向け Tips
Keiji Kamebuchi
20190514 Smart Store - Azure servlerless architecture
Issei Hiraoka
Smart Store サーバーレスアーキテクチャ編
Microsoft Azure Japan
Azure Functionsから始めるServerless
ryosuke matsumura
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
Terraform Bootcamp - Azure Infrastructure as Code隊
Toru Makabe
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Yasuaki Matsuda
Azure serverless!! azure functionsでサーバーを意識しない開発
Yuki Hattori
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
Yoichi Kawasaki
Visual Studio 2017 で Azure Functions の開発
Yasuaki Matsuda
Azure reliability v0.1.21.0422
Ayumu Inaba
NoOpsへ舵を切れ
Hiromasa Oka
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Kazumi OHIRA
Microsoft azure
ssuser184f93
Ad
Azure Functions with terraform
1.
2022/6/15 Azure Functionsを terraformで運用してわかっ たこと 株式会社 bitFlyer
| SRE部
2.
2 © 2022 bitFlyer,
Inc. この発表について 対象 Azureを少しでも触ったことのある方 持ち帰れること Cloud ServicesからAzure Functionsへのモダナイゼー ションの例 Functionsをterraformで運用する際の注意点
3.
3 © 2022 bitFlyer,
Inc. 自己紹介 : 遠地 等一(とおち ともかず) 2021年4月bitFlyerにジョイン 職歴 : ゲーム業界でサーバ/フロント 不動産業界でSRE 金融業界でSRE(←今ココ) ※ Azure歴1年間
4.
4 © 2022 bitFlyer,
Inc. 目次 bitFlyerの事業と技術スタック 課題と解決方法 Azure Functions (+ terraform)事例集 付録: tips on Azure Functions
5.
5 © 2022 bitFlyer,
Inc. 販売所・取引所 画像はHPより抜粋 暗号資産を売り買い・トレードできます
6.
6 © 2022 bitFlyer,
Inc. プライベートブロックチェーン プライベートブロックチェーン bitFlyer Blockchainが企画・開発・運用
7.
7 © 2022 bitFlyer,
Inc. 主な技術スタック Blockchain Webサーバ バックエンド 永続化 コード VCS/CI/CD
8.
8 © 2022 bitFlyer,
Inc. 金融業界の特性 🏦高い信頼性とセキュリティ要件 🏦厳密な変更管理(監査)
9.
9 © 2022 bitFlyer,
Inc. 暗号資産事業の特性 💰急激な市場変化 価格、ユーザ数、取引高、競合他社 💰事業の成長 エンジニア数 💰規制要件への迅速な対応
10.
10 © 2022 bitFlyer,
Inc. とあるモノリシックなシステムの課題
11.
11 © 2022 bitFlyer,
Inc. とあるモノリシックなシステムの課題 単一障害点 高負荷スパイクで非効率 モノリシックで管理しづらい ジョブが互いに影響を及ぼしてしまう ローカルで環境の再現をしづらい CI/CDが遅い
12.
12 © 2022 bitFlyer,
Inc. マネージド化+マイクロサービス化で改善
13.
13 © 2022 bitFlyer,
Inc. モダナイズにともなう開発体制の変化
14.
14 © 2022 bitFlyer,
Inc. モダナイズにともなう開発体制の変化への対応 コードやライブラリを整備 機能パターン別のサンプルコード集 ライブラリのモダナイズ ドキュメントを整備 移行ガイドライン作成 各ジョブの実装の優先度や難易度付け 社内への周知 社内勉強会
15.
15 © 2022 bitFlyer,
Inc. IaC化を進める理由 マイクロサービス化で似た構成をたくさん作る トイルを減らす SRE部とのコミュニケーションの改善 コードベースのやりとりで透明度アップ 検証環境と本番環境の構成を一致させる
16.
16 © 2022 bitFlyer,
Inc. Azure Functions (+ terraform)事例集 Storage Accountロックでタイムアウト デプロイ時にFunction止まった terraform providerで○○が反映されない terraform applyでFunction消えた
17.
17 © 2022 bitFlyer,
Inc. Storage Accountロックでタイムアウト 現象 staging slotとproduction slotを使ったswap運用をしていた。 Swap直前に、staging slotに内部でwarmupリクエストが送 られるが、このリクエストがタイムアウトして、swap開 始することができなかった。 Failed swapping site. Error: Cannot swap slots for site '<website- name>' because the warmup requests to application in '<staging- slot-name>' slot have timed out. Please check the application logs to determine what causes the timeouts.
18.
18 © 2022 bitFlyer,
Inc. Storage Accountロックでタイムアウト 原因 production slotで処理中はStorage Accountがロックされる。 対策 AzureWebJobsStorageに設定するStorage Accountを staging slot とproduction slotで分ける。
19.
19 © 2022 bitFlyer,
Inc. デプロイ時にFunction止まった 原因 WEBSITE_RUN_FROM_PACKAGE=1を指定しない場合、 d:¥home¥site¥wwwroot 以下にファイルを展開して実行す る。 この場合、デプロイ過程で一度オフライン状態になる必要 があり、app_offline.htmというファイルの生成・削除のイ ベントをホストが受け取ってリスタートを制御する。 このイベントをホストが受け取り損ねる不具合が起きた。
20.
20 © 2022 bitFlyer,
Inc. デプロイ時にFunction止まった 対策 MSの推奨としては、 WEBSITE_RUN_FROM_PACKAGE=1 として、Azure Functionsのローカルのパッケージから実行 する設定にする。 ここにも落とし穴があり、公式ドキュメントには | Zip deployment is recommended. とある。(続く)
21.
21 © 2022 bitFlyer,
Inc. デプロイ時にFunction止まった Pipeline YAMLのAzureFunctionApp@1で deploymentMethod: zipDeploy を指定したくなるが、 deploymentMethod: runFromPackage が正解。 ✅
22.
22 © 2022 bitFlyer,
Inc. デプロイ時にFunction止まった deploymentMethod: zipDeploy を指定した場合、AzureFunctionApp@1が気を利かせて WEBSITE_RUN_FROM_PACKAGE=1 を削除してくれるが、逆にterraform側からは設定しようとす るので、設定が振動し、原因となる挙動を特定しにくかった。 この辺りのベストプラクティスについて下記に記述がある: https://github.com/projectkudu/kudu/wiki/WEBSITE_RUN_FROM_PACKAGE-and- WEBSITE_CONTENTAZUREFILECONNECTIONSTRING-Best-Practices
23.
23 © 2022 bitFlyer,
Inc. terraform providerで○○が反映されない terraform-azurerm-provider (v2.99) で確認 Auto-swapが反映されない azurerm_function_app_slot site_config.*.auto_swap_slot_name Key Vault reference Identity IDが非対応 azurerm_function_app_slot key_vault_reference_identity_id
24.
24 © 2022 bitFlyer,
Inc. terraform providerで○○が反映されない terraform-azurerm-provider (v2.99) で確認 Deployment slot settings (Sticky slot settings)が非対応 azurerm_function_app azurerm_function_app_slot
25.
25 © 2022 bitFlyer,
Inc. terraform providerで○○が反映されない 対策 ARM Templateをterraformから使った ※ terraform-azurerm-provider (v3.x)で解決する場合もある
26.
26 © 2022 bitFlyer,
Inc. terraform providerで○○が反映されない ちなみに ARM Templateをterraformから使うのは、 循環参照をお手軽に回避したい場合に意外と便利。 「リソースを作る時点では確定しないattribute」を 参照するApp Settingsを設定したい場合など。
27.
27 © 2022 bitFlyer,
Inc. terraform applyでFunction消えた terraform-azurerm-provider (v2.x, v3.7.0) で確認 現象 terraform applyで更新をかけた後、Functionsのリストを見 に行くと空っぽになっている。 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING WEBSITE_CONTENTSHARE に設定された File sharesを見に行くと、 data/SitePackages以下が空になっていた。
28.
28 © 2022 bitFlyer,
Inc. terraform applyでFunction消えた 原因 複数slot構成だと、terraform providerがproduction slot側の WEBSITE_CONTENTAZUREFILECONNECTIONSTRING をstaging slot側の値へと勝手に書き換えてしまう。 対策 terraformのディレクトリを細分化して、影響範囲を小さく そのうちGitHub Issuesにあげるなどして解決をはかりた い
29.
29 © 2022 bitFlyer,
Inc. 付録: tips on Azure Functions TimerTriggerはApp Settings経由で設定すると、コード変更回 数を減らせる
30.
30 © 2022 bitFlyer,
Inc. 付録: tips on Azure Functions Functionの有効化をApp Settingsからオン/オフする App Settingsに AzureWebJobs.<FUNCTION_NAME>.Disabled={0,1} と記述
31.
31 © 2022 bitFlyer,
Inc. 付録: tips on Azure Functions Swap運用にした場合に、staging slotでTimerTriggerなどで処 理が走ってしまう staging slot側に設定したApp Settingsを判定してガード WEBAPPS_DEPLOY_SLOT_NAME = "deployslot1" 弊社ではbotがswap eventを拾って、自動でswap済みの slotを停止するようになっている
32.
32 © 2022 bitFlyer,
Inc. 付録: tips on Azure Functions Functionsのstorage周りで、terraformからは下記が正解 AzureWebJobsStorage Deployment slot settingにする WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 触らない WEBSITE_CONTENTSHARE 触らない
33.
33 © 2022 bitFlyer,
Inc. まとめ モノリシックな構成から生まれる課題を、 マネージド化+microservice化+IaC化の モダナイゼーションで解決 terraformは便利ではあるが providerの成熟度でDXが変わる 困ったらGitHubのIssuesやコードを見る
34.
34 © 2022 bitFlyer,
Inc. We’re hiring! https://bitflyer.com/recruit
35.
Thank you!
Download