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
cronworkflowを用いた バッチ障害時の運用改善
Search
南條綾乃
March 13, 2023
Technology
0
510
cronworkflowを用いた バッチ障害時の運用改善
南條綾乃
March 13, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
技術広報経験0のEMがエンジニアブランディングをはじめてみた
coconala_engineer
1
140
「XX試験の環境作ってよ」と言われた時によく使うAWSのソリューションについて
bun913
0
120
匠MethodとRDRAとICONIXとDDDで実現する一気通貫オブジェクト指向開発
haru860
4
2.1k
Castor - Symfony Live 2024 - Paris
lyrixx
1
110
どう買う?Azure
kuniteru
1
190
依存ライブラリはどこに?
takesection
0
120
生成AI・LLM時代における 機械学習エンジニアとしてのキャリア戦略・開発戦略 / my-career-and-development-strategies-for-ml-engineer-2024
yuya4
4
920
Elementaryを用いたデータ品質の可視化とデータ基盤の運用改善
10xinc
6
1.7k
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
500
エンジニア候補者向け資料2024.03.28.pdf
macloud
0
2.9k
統計的学習理論読み Chapter 2
kmatsui
1
290
Evolutionary Optimization of Model Merging Recipes
fuyu_quant0
3
550
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
Designing the Hi-DPI Web
ddemaree
275
33k
Six Lessons from altMBA
skipperchong
19
2.9k
Code Review Best Practice
trishagee
54
15k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
12
1.4k
Mobile First: as difficult as doing things right
swwweet
215
8.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
5
1.4k
Navigating Team Friction
lara
177
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Practical Orchestrator
shlominoach
180
9.7k
Transcript
cronworkflowを用いた バッチ障害時の運用改善 氏名: 南條綾乃 2023/03/13 Kubernetes Novice Tokyo #23
自己紹介 名前: 南條綾乃 会社: 株式会社NTTデータ(2021年入社) 業務: バックエンド開発 実家で飼っている柴犬と亀
バッチの良い運用設計とは?
良い運用設計とは 回復性 可観測性 管理力 処理の進行状態を把握できるか 処理の完了状態を把握できるか 障害を検知し適切な行動を選択できるか 容易に再実行が可能か 参考: https://www.yamarkz.com/blog/implementation-practices-for-batch-processing
CNCF Cloud Native Definition v1.0より項目抜粋 実行コストが少ないか
しかし、これまでは... 回復性 可観測性 管理力 処理の進行状態を把握できるか 処理の完了状態を把握できるか 障害を検知し適切な行動を選択できるか 容易に再実行が可能か 参考: https://www.yamarkz.com/blog/implementation-practices-for-batch-processing
CNCF Cloud Native Definition v1.0より項目抜粋 実行コストが少ないか APを修正して から実行 手動で 再実行 手動で 再実行
cronworkflowを用いて "バッチの良い運用設計"を 目指したので、その取り組みにつ いてLTさせていただきます!
cronworkflowって何?
cronworkflowとは Kubernetes上で実行されることを想定したワークフローエンジン である、argo workflowの一種 KubernetesのCRD(Custom Resource Definition)として実行 cronjobと同じ設定を使用し実行可能
何を実施したの?
実施したこと ・障害時に動かす処理をコマンドライン引数で管理 ・障害時にバッチを自動実行
実施したこと
というのも.. これまでの障害時の運用 ・手動でバッチを再度実行 ・障害時用のバッチのイメージを読み込み直して再デプロイ
管理コストが少ないか これまでの問題の解決 回復性 可観測性 管理力 処理の進行状態を把握できるか 処理の完了状態を把握できるか 障害を検知し適切な行動を選択できるか 容易に再実行が可能か 参考:
https://www.yamarkz.com/blog/implementation-practices-for-batch-processing CNCF Cloud Native Definition v1.0より項目抜粋 APを修正 しない仕組み 自動で 再実行 手動で 再実行
以下のようなイメージ 障害時に障害用のバッチを自動で実行させる 障害時 別のAP
マニフェストファイル どんなん?
設定の全容
障害発生時 通常時 helmfileで設定時は、 コメントアウトのように記載
コマンドライン引数での 処理の管理って?
コマンドライン引数での処理の管理 execを定義 (defaultは空) ここで、モードにより 呼び出したいメソッド を変える
ここまでで 回復性、管理力は解決!
実行コストが少ないか では.. 回復性 可観測性 管理力 処理の進行状態を把握できるか 処理の完了状態を把握できるか 障害を検知し適切な行動を選択できるか 容易に再実行が可能か 参考:
https://www.yamarkz.com/blog/implementation-practices-for-batch-processing CNCF Cloud Native Definition v1.0より項目抜粋 APを修正 しない仕組み 自動で 再実行 手動で 再実行
可観測性は どうやって解決してるの?
Healthchecksで解決!
Healthchecksとは ジョブの「起動状態」を監視するサービス ※実行状態は監視しない(AP内部でエラーetc) 予定していた時刻にジョブが正常起動したか ジョブの想定実行時間よりも実行時間が長くなっていないか
運用イメージ workflow開始時に Started 終了したら OKが届く メールやチャット、 PagerDutyとの 連携も可能
どうやって使うの?
heathchecksとの疎通方法 runitorコマンドを使用 払い出したuuidを設定 -execで実行するmodeを設定
デモします!
デモ ①通常実行 ②通常実行→障害発生→障害時のAP実行
デモ
実行コストが少ないか まとめ 回復性 可観測性 管理力 処理の進行状態を把握できるか 処理の完了状態を把握できるか 障害を検知し適切な行動を選択できるか 容易に再実行が可能か 参考:
https://www.yamarkz.com/blog/implementation-practices-for-batch-processing CNCF Cloud Native Definition v1.0より項目抜粋 APを修正 しない仕組み 自動で 再実行
ご静聴 ありがとうございました!
リマインド機能について 企業 エンドユーザー リンクを発行 リンクで登録などを実施 リンクの期限1日前にリマインドメール 参考:
詳細 リマインド対象のリンクを DBから取得 該当するリンク所有者に 1件ずつメールを送信 参考: