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
PipeCDでGitOpsやってみよう!
Search
Kenta Kozuka
June 16, 2023
Programming
0
660
PipeCDでGitOpsやってみよう!
Kenta Kozuka
June 16, 2023
Tweet
Share
More Decks by Kenta Kozuka
See All by Kenta Kozuka
フィーチャーフラグ&ABテストツールBucketeer開発の経緯 〜社内基盤としてのプロダクト戦略〜
kentakozuka
0
97
事業部を超えた 開発生産性向上に挑戦する
kentakozuka
7
1.4k
1000人を超えるエンジニア組織へのGitHub Copilot導入促進
kentakozuka
0
310
KubeCon 2023 China Recap & ブースを出展してきました
kentakozuka
1
200
PipeCD Good First Issues
kentakozuka
0
18
サイバーエージェントでCDツールを内製した話
kentakozuka
1
420
サイバーエージェントのフィーチャーフラグを活用した高速開発
kentakozuka
0
35
リアルタイムデータ分析基盤をKafka(Strimzi) & Druidで構築し
kentakozuka
0
76
フィーチャーフラグを使用した開発で 迅速かつ安全にリリースする
kentakozuka
0
51
Other Decks in Programming
See All in Programming
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
1
560
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
270
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
2
170
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
330
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
4
1.1k
Go の GC の不得意な部分を克服したい
taiyow
2
770
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
720
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
730
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
140
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
130
暇に任せてProxmoxコンソール 作ってみました
karugamo
1
720
Featured
See All Featured
Thoughts on Productivity
jonyablonski
67
4.4k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Designing for Performance
lara
604
68k
Site-Speed That Sticks
csswizardry
2
190
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Embracing the Ebb and Flow
colly
84
4.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
Fireside Chat
paigeccino
34
3.1k
Music & Morning Musume
bryan
46
6.2k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Transcript
PipeCDで GitOpsやってみよう! Kenta Kozuka
@kentakozuka @kenta_kozuka CyberAgent PipeCD maintainer #DevOps, #DeveloperProductivity About me
3 GitOpsとは?
4
基本的なCI/CDの役割
gitops 6
GitOpsはCDの1つの手法
GitOpsのメリット • 直接環境にアクセスしなくてよい • 全ての構成変更はGit(PR)を通して行われる • 今Gitで確認できる構成 == 今動いている構成 ◦
Giterminism: What you Git is what you get! (werf) • 全ての変更は追跡可能
9 PipeCDで GitOps やってみよう
10
PipeCD • GitOpsスタイルのCD • k8sだけでなくECS, Lambda, Cloud Run, Terraformなどを統一 したUXで管理できる
PipeCD
シンプルなUIと可視性 UIはアプリケーションの状態をリアルタイムで可視化し、 どのタイミングで何が発生したかが明示される
マルチクラウド & マルチテナント 様々なプラットフォーム、アプリケーション、テレメトリーに対応 マルチクラスタ・テナンシーでの運用が可能
Kubernetesエコシステムとのインテグレーション
高度な自動化 エラーレートに基づく 自動ロールバック 構成変更の自動検知
Control Plane & Agentモデル デプロイはクラスタに配置するpipedにより行われ、 アプリケーションのクレデンシャルが外部に漏れることがない
DevOps指標の可視化
Plan Preview
セキュリティ • ビルトインのシークレット管理 • RBAC • SSO
EventWatcher UPDATE
22 実際に見てみよう! pipecd.dev
23 プログレッシブデリバリー もやってみよう
プログレッシブデリバリー • 機能を段階的に公開していく • ユーザーへの影響を細かく制御する • 全てのプロセスを自動化 commit rollout analyze
release deploy rollback
プログレッシブデリバリーのプロセス • トラフィック制御(カナリアデプロイメント) • 分析(カナリア分析) • 自動化されたロールバック
分析 • モニタリングシステムからメトリクス(ログ)を取得 • 悪い状態を自動で検出する
27 PipeCDで どのように行うか
28 ADA
ADA • Automated Deployment Analysis (ADA) という機能が分析を担う • ユーザーのモニタリングシステムからメトリクスを取得 •
パイプラインの1つのステージとして設定に追加するだけ • 追加コンポーネントは不要
ADAの有効化 • Automated Deployment Analysis (ADA) という機能が分析を担う • ユーザーのモニタリングシステムからメトリクスを取得 •
追加コンポーネントは不要 • パイプラインの1つのステージとして設定に追加するだけ
Configuration
Configuration ANALYSIS ステージへ →
Static Rules
Analysis
Analysis Template リポジトリ共通のADA設定をテンプレート化できる
Supported providers • Prometheus • Datadog Incubating • CloudWatch •
NewRelic • Google Cloud Monitoring 36
Deployment chain
Deployment chain 38 dev stg prd asia us europe
今やっていること
Custom Sync 40
pipe-cd/pipe @pipecd_dev https://pipecd.dev/ We always welcome your contributions!
CNCF Sandboxになりました!
さいごに Developer Productivity室では全方位でエンジニア募集中! #PipeCD #DevOps #開発生産性 #PipeCDのステッカー に興味があれば、 「Developer Productivity室」で検索か、
@kenta_kozukaまでDMください🙋
参考 • https://opengitops.dev/ • https://www.weave.works/blog/gitops-operations-by-pull-request 44