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
Kubernetes でワークフローを組むなら cdk8s-argoworkflow がよさそ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
May 22, 2024
Technology
2.7k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetes でワークフローを組むなら cdk8s-argoworkflow がよさそう!/ cdk8s-argoworkflow is great!
「 JAWS-UG CDK支部 #14」での登壇資料です。
イベントURL:
https://jawsug-cdk.connpass.com/event/317935/
みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
May 22, 2024
More Decks by みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
See All by みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
620
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
330
エンタープライズの厳格な制約を開発者に意識させない:クラウドネイティブ開発基盤設計/cloudnative-kaigi-golden-path
mhrtech
2
870
「強制アップデート」か「チームの自律」か?エンタープライズが辿り着いたプラットフォームのハイブリッド運用/cloudnative-kaigi-hybrid-platform-operations
mhrtech
0
290
全社統制を維持しながら現場負担をどう減らすか〜プラットフォームチームとセキュリティチームで進めたSecurity Hub活用によるAWS統制の見直し〜/secjaws-security-hub-custom-insights
mhrtech
3
910
申請待ちゼロへ!AWS × Entra IDで実現した「権限付与」のセルフサービス化
mhrtech
2
460
NetworkXとGNNで学ぶグラフデータ分析入門〜複雑な関係性を解き明かすPythonの力〜
mhrtech
3
2.8k
AWS CDKでホストゾーン一式を管理しよう!/nw-jaws15
mhrtech
3
990
Fin-JAWS第38回reInvent2024_全金融系セッションをライトにまとめてみた
mhrtech
2
420
Other Decks in Technology
See All in Technology
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
400
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
7
5.8k
Power Automateアップデート情報
miyakemito
0
290
Webの技術とガジェットで子どもも大人も楽しめるワクワク体験を提供する / Qiita Tech Festa Day 2026
you
PRO
1
330
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
1.5k
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
630
Amazon Bedrock Managed Knowledge BaseDive Deep
ren8k
0
320
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
32
27k
PLaMo 3.0 Primeの事後学習
pfn
PRO
0
240
AI工学特論: MLOps・継続的評価
asei
11
3.1k
AIエージェントに財布を渡す日 ― 承認付き"買い物エージェント"を作って実演
yama3133
1
110
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
140
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
460
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
330
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
590
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
340
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Designing Powerful Visuals for Engaging Learning
tmiket
1
470
WENDY [Excerpt]
tessaabrams
11
39k
Transcript
© 2024 Mizuho Research & Technologies, Ltd. Kubernetes でワークフローを組むなら cdk8s-argoworkflow
がよさそう! JAWS-UG CDK支部 #14 2024年5月22日 技術開発本部 先端技術研究部 0 (免責事項) 当レポートは情報提供のみを目的として作成されたものであり、商品の勧誘を目的 としたものではありません。本資料は、当社が信頼できると判断した各種データに 基づき作成されておりますが、その正確性、確実性を保証するものではありません。 また、本資料に記載された内容は予告なしに変更されることもあります。
© 2024 Mizuho Research & Technologies, Ltd. 1 自己紹介 氏名:松尾
優成(Matsuo Yusei) 所属:先端技術研究部 兼 プロジェクト推進部 役割:社内向けAWSプラットフォーム及び 社内向け全文検索システムの構築・運用 K8s :初心者(研修受講+コマンド少し程度) 一言:1年ぶりのCDK支部登壇頑張ります!
© 2024 Mizuho Research & Technologies, Ltd. 2 全文検索システムの概要 •
Elasticsearch を活用した社内向けの全文検索システム • クローラーのワークフロー管理に Argo Workflows を利用 Client 端末 Data Source Frontend Backend NoSQL Database k8s (k3s) Web Application Data Pipeline Argo CD Container-Based Infrastructure Argo Workflows 全文検索システム Crawlers 本番環境はオンプレで 開発環境のみ AWS 利用
© 2024 Mizuho Research & Technologies, Ltd. 3 Argo Workflows
とは? • Kubernetes ネイティブなオープンソースのワークフローエンジン • マニフェスト(IaC テンプレート)で実行順序や並列処理などのワークフローを定義 https://argo-workflows.readthedocs.io/en/latest/ ワークフローの実行画面
© 2024 Mizuho Research & Technologies, Ltd. 4 Argo Workflows
のユースケース(公式の docs より抜粋) • Machine Learning pipelines • Data and batch processing • Infrastructure automation • CI/CD • Other use cases 全文検索システムでは本用途で利用
© 2024 Mizuho Research & Technologies, Ltd. 5 Argo Workflows
関連の資料は以下がオススメ https://speakerdeck.com/makocchi/how-to-use-argo-workflows なぜ Argo Workflows を 使うのか分かりやすい! https://techblog.zozo.com/entry/faans-argo-workflows セットアップから使い方まで 網羅されている
© 2024 Mizuho Research & Technologies, Ltd. 6 『 Argo
Workflows の悩み』
© 2024 Mizuho Research & Technologies, Ltd. 7 Argo Workflows
のワークフロー整備に任命される 久しぶりの YAML 頑張るぞ・・・! (プロジェクト参画当初のこと)
© 2024 Mizuho Research & Technologies, Ltd. 8 すぐに頭を抱えることに \(^o^)/
CDK が恋しい・・! 念願の開発に着手するも・・・?
© 2024 Mizuho Research & Technologies, Ltd. 9 補完機能が弱く、設定ミスに気づきにくい YAML
管理の悩ましい点① TTL 設定を機能させるには ttlStrategy を指定 Argo Workflows で利用不可な Key があっても kubectl apply 可能 生成 AI の回答に頼らず 毎回 docs みるのもなあ…
© 2024 Mizuho Research & Technologies, Ltd. 10 アンカー/エイリアスで参照できるが、文字列結合できない YAML
管理の悩ましい点② アンカー(&) エイリアス(*) 似たような文字列が いくつもあるのに…
© 2024 Mizuho Research & Technologies, Ltd. 11 KISS の原則に沿いたいが、冗長になりがち
YAML 管理の悩ましい点③ 量産される YAML ファイル 同様の設定を 宣言的に記述 繰り返し処理したい…
© 2024 Mizuho Research & Technologies, Ltd. 12 YAML 管理課題の解決方法を模索!
© 2024 Mizuho Research & Technologies, Ltd. 13 cdk8s なら解決できそう・・・?
JAWS-UG CDK支部 #4 「cdk8s(+)ではじめるKubernetes」より抜粋 https://speakerdeck.com/horsewin/cdk8s-plus-dehazimerukubernetes
© 2024 Mizuho Research & Technologies, Ltd. 14 cdk8s (+)
の API reference には Argo Workflows の Construct なし https://cdk8s.io/docs/latest/reference/
© 2024 Mizuho Research & Technologies, Ltd. 15 代替を模索したところ… Construct
Hub にお宝発見! 「Argo Workflows」のように検索文字で 半角スペースが含まれていると ヒットしないので注意 https://construct-hub-testing.dev-tools.aws.dev/search
© 2024 Mizuho Research & Technologies, Ltd. 16 v0.0.6 時点でも
API Reference は充実していて活用できそう! Construct Hub の調査
© 2024 Mizuho Research & Technologies, Ltd. 17 README はタイトルのみなので、GitHub
に情報がないか確認 直リンクは Page not found. に 飛ぶので注意 (URLから“-resources”を要削除) Construct Hub の調査
© 2024 Mizuho Research & Technologies, Ltd. 18 スナップショットテストでサンプルコードが示されている! https://github.com/opencdk8s/cdk8s-argoworkflow/blob/main/test/cronworkflow.test.ts
ローカルでも問題なく 動き、導入を決定! GitHub の調査
© 2024 Mizuho Research & Technologies, Ltd. 19 cdk8s-argoworkflow を
使ってみた結果を共有! TypeScript で 導入しています
© 2024 Mizuho Research & Technologies, Ltd. 20 cdk8s プロジェクトでのセットアップはシンプル!
$ npm install @opencdk8s/cdk8s-argoworkflow projenを使う場合は .projenrc.ts の deps で指定するだけ cdk8s-argoworkflow を使ってみた結果
© 2024 Mizuho Research & Technologies, Ltd. 21 お馴染みの補完機能で快適! cdk8s-argoworkflow
を使ってみた結果 実装は L1 相当だけど Argo Workflows 自体の 必須項目が少ないので あまり気にならない!
© 2024 Mizuho Research & Technologies, Ltd. 22 コード支援生成 AI
と組み合わせると更に強力! cdk8s-argoworkflow を使ってみた結果 生成 AI の回答受け入れに 誤りや不足があっても 型チェックですぐに気づける! 生成 AI の提案
© 2024 Mizuho Research & Technologies, Ltd. 23 共通パラメータの集約や文字列結合は勿論のこと 繰り返し処理でコード量をグッと減らせる!
cdk8s-argoworkflow を使ってみた結果 管理対象ファイルがグッと減る 1ファイルで個別の 設定値をまとめて定義 繰り返し処理でシンプルな記述
© 2024 Mizuho Research & Technologies, Ltd. 24 スナップショットテストと生成 AI
で 簡単且つ安全にリファクタリング! 1. スナップショットテストを実行 2. 生成 AI にコードをまるっと投げて 可読性・保守性に考慮したリファクタリングを依頼(秘匿情報が入らないように注意) 3. 生成 AI の結果を持ってきて、スナップショットテストを再実行 4. 結果に差分がなければ commit ! ⇒この使い方だと適当なプロンプトでも大体うまくいきます cdk8s-argoworkflow を使ってみた結果
© 2024 Mizuho Research & Technologies, Ltd. 25 まとめ •
K8s における Argo Workflows の有用性は先人達が証明済 • Argo Workflows 単体の利用では YAML 特有の悩みあり • cdk8s-argoworkflow を使えば、開発者体験や保守性が高まる! • Construct Hub にはお宝が眠っているかも? 車輪の再発明をせず、エコシステムで効率よく開発しよう!
© 2024 Mizuho Research & Technologies, Ltd. 26
© 2024 Mizuho Research & Technologies, Ltd. 27 builders.flash で
AWS CDK を活用したプラットフォーム エンジニアリングの事例記事を書きました! おしらせ https://aws.amazon.com/jp/builders-flash/202405/mizuho-service-catalog/
© 2024 Mizuho Research & Technologies, Ltd. 28 2024年6月4日に builders.flash
で第2回の記事掲載予定! AWSアカウント発行処理における Step Functions 事例を紹介します おしらせ AWS Step Functions workflow
29