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
みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
May 22, 2024
Technology
4
2k
Kubernetes でワークフローを組むなら cdk8s-argoworkflow がよさそう!/ cdk8s-argoworkflow is great!
「 JAWS-UG CDK支部 #14」での登壇資料です。
イベントURL:
https://jawsug-cdk.connpass.com/event/317935/
みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
May 22, 2024
Tweet
Share
More Decks by みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
See All by みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
AWS CDKでホストゾーン一式を管理しよう!/nw-jaws15
mhrtech
2
720
Fin-JAWS第38回reInvent2024_全金融系セッションをライトにまとめてみた
mhrtech
1
240
AWS CDKでデータリストアの運用、どのように設計する?~Aurora・EFSの実践事例を紹介~/aws-cdk-data-restore-aurora-efs
mhrtech
6
2k
Azure Verified Moduleを触って分かった注目ポイント/azure-verified-module-begin
mhrtech
1
1.9k
BLEA v3.0.0の新しいベストプラクティスを取り入れた効率的なAWS CDK開発/jawsug_cdk16
mhrtech
3
900
あなたのアプリケーションをレガシーコードにしないための実践Pytest入門/pyconjp2024_pytest
mhrtech
7
4.6k
静的サイトのCI/CDでも侮るなかれ!Docs as Codeに沿ったセキュアな開発プロセスの実践/secure-docsascode-cicd-for-static-sites
mhrtech
14
3.5k
IaCでセキュリティを強化しよう!~IAMが苦手な開発者でも簡単に権限を絞れる。そう、AWS CDKならね!~/secjaws32
mhrtech
5
3.2k
AWS Control Towerを2年弱運用して得たエッセンスと展望/securityjaws31
mhrtech
1
2.5k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2025年5月度サービス・アップデート
oracle4engineer
PRO
0
250
Rebase エンジニアリング組織の現状とこれから
rebase_engineering
0
110
SmartHRの複数のチームにおけるMCPサーバーの活用事例と課題
yukisnow1823
1
810
HA K8s Clusterのスタンダードが覆る!? Cilium 1.18の🔥激アツ🔥新機能
logica0419
0
120
OTel meets Wasm: プラグイン機構としてのWebAssemblyから見る次世代のObservability
lycorptech_jp
PRO
0
200
シンプルな設定ファイルで実現する AWS IAM Identity Center のユーザー管理と開発チームへの委譲 / Delegating AWS IAM Identity Center User Management with a Simple DSL
yamaguchitk333
3
450
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
8
65k
TerraformとGitHub Actionsで手軽に実装するECSのCI/CD
k___tkg
0
230
OCI Database Management サービス詳細
oracle4engineer
PRO
1
4.5k
大規模PaaSにおける監視基盤の構築と効率化の道のり
lycorptech_jp
PRO
0
130
エッジ活用の最適解とは? 新しいエッジ処理アーキテクチャ「Edge-as-a-Service」構想について
kakerucom
0
110
AIに実況させる / AI Streamer
motemen
1
1.1k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.8k
Side Projects
sachag
453
42k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
820
RailsConf 2023
tenderlove
30
1.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Code Review Best Practice
trishagee
68
18k
The World Runs on Bad Software
bkeepers
PRO
68
11k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Rails Girls Zürich Keynote
gr2m
94
13k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
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