Slide 1

Slide 1 text

PipeCDを導入してリリースフローを改 善した話 @tom-256

Slide 2

Slide 2 text

自己紹介 @tom-256 インフラ・SRE

Slide 3

Slide 3 text

最近やってきたこと 本業 TypeScript monorepoのCI/CD構築 PipeCD導入 Terraform monorepoのCI/CD構築 Terraform monorepoのAtlantis導入 ArgoCD導入 Renovate導入

Slide 4

Slide 4 text

業務委託 Terraform monorepoのAtlantis導入 CI/CD改善 CDリポジトリ分離 ecspresso導入 Renovate導入

Slide 5

Slide 5 text

今日話すこと PipeCDを使ってリリースフロー改善を実施 8ステップから1ステップに 作業時間を20分から3分に

Slide 6

Slide 6 text

背景 ECS CI...GitHubActions CD...Terraform

Slide 7

Slide 7 text

課題 作業が複雑でリリースに時間がかかる Terraformによるデプロイのため自動化できない アプリケーションによってワークフローが異なっている

Slide 8

Slide 8 text

やったこと

Slide 9

Slide 9 text

PipeCDの導入 PipeCD Pull型のデプロイツール ECS, EKS, Lambda, Terraformなどに対応 ECSの場合下記で構成 PipeCDのアプリケーション定義(app.pipecd.yaml) ECSサービス定義 ECSタスク定義

Slide 10

Slide 10 text

ディレクトリ設計 aws-account-id/ecs-cluster/ecs-service 将来的に他のリソース(Lambdaとか)を考慮する必要 全体像 PipeCDリポジトリ アプリケーションリポジトリA アプリケーションリポジトリB

Slide 11

Slide 11 text

移行方法検討移行 Deployment ControllerがEXTERNALになるのでサービスを作り直 す必要があった EXTERNALは複数ターゲットグループが紐づけられないので設計 を変更 移行作業はALBの加重ターゲットグループでリクエスト切り替え チームと連携しながら移行実施

Slide 12

Slide 12 text

CI連携 pipe-cd/actions-plan-preview

Slide 13

Slide 13 text

pipe-cd/actions-event-register PipeCDのアプリケーション定義にどのイベントを受け取ってど こを更新するか定義 GitHubActionsでどのイベントをどの値で発行するか定義 Git commitしてくれる dev, stg環境のタスク定義のイメージ更新に利用

Slide 14

Slide 14 text

実際のワークフロー dev環境 mainブランチマージでデプロイ

Slide 15

Slide 15 text

stg環境 Gitタグ作成でデプロイ

Slide 16

Slide 16 text

prd環境 リリース作成でPipeCDリポジトリにPR作成 PRマージでデプロイ

Slide 17

Slide 17 text

他の工夫点 リリース時に必要なDB系のバッチを自動化 ECRはクロスアカウントアクセスに変更 イメージビルドでRegistry cache導入

Slide 18

Slide 18 text

まとめ PipeCDを導入してリリースワークフローを改善した Pull型はCIの記述量が減る いくつか考慮点があるので注意 DeploymentControllerが変更 テンプレート機能がない

Slide 19

Slide 19 text

課題:作業が複雑でリリースに時間がかかる 冪等性を考慮して不要な判断を削る 通知を整備して確認作業を削る Repository Dispatchを使ってアプリケーションリポジトリと連携す る

Slide 20

Slide 20 text

課題:Terraformによるデプロイのため自動化できない Pull型のデプロイを利用することで不要な考慮点が減った 課題:アプリケーションによってワークフローが異なっている デプロイ方法を統一することでコンテキストスイッチを減らした

Slide 21

Slide 21 text

リリース作業は毎回やるのでCI/CDパイプラインを整理するとレバレ ッジが効く 改善の方向性は見えていたが優先できなかった

Slide 22

Slide 22 text

おわり