Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PipeCD LT 会 #2 プラグインアイデア大会!!

PipeCD LT 会 #2 プラグインアイデア大会!!

PipeCD LT 会 #2 プラグインアイデア大会!!

- ABEMA における SCRIPT_RUN x Event contexts 活用事例
- 作ってみたい PipeCD Plugin

Shohei Ueda

March 05, 2025
Tweet

More Decks by Shohei Ueda

Other Decks in Programming

Transcript

  1. AbemaTV, Inc. All Rights Reserved
 AbemaTV, Inc. All Rights Reserved


    1 PipeCD LT 会 #2 プラグインアイデア大会!! 2025-03-04 株式会社 AbemaTV, Shohei Ueda
  2. AbemaTV, Inc. All Rights Reserved
 2 • 自己紹介 • ABEMA

    における SCRIPT_RUN x Event contexts 活用事例 • 作ってみたい PipeCD Plugin INDEX
  3. AbemaTV, Inc. All Rights Reserved
 Shohei Ueda 2022 年度に株式会社サイバーエージェントへ新卒入社し た後、株式会社

    AbemaTV へ配属。バックエンドエンジニ アとして ABEMA の開発に従事。 現在は Developer Productivity Engineer として ABEMA における開発生産性に向き合っています。 趣味で各種 OSS を公開しています。 peaceiris.com テニス、フットサル、筋トレ (咳喘息 & 肋骨骨折) 3 Profile
  4. AbemaTV, Inc. All Rights Reserved
 6 • いつ WAIT_APPROVAL stage

    に到達したのか分からずタイムアウトさせ てしまう。再度 Sync するトイルでリードタイムが悪化 • 大量の PipeCD Deployment が作成されるが、どれが自分のものか分から ず、間違って人の Deployment のリリースを進めると危険 • Deployment がどの commit, pull-request で発火したのか特定が大変。 特に source repo までたどるのが難しい • 現状の PipeCD はグループメンションのみサポートしており、個別メン ションができない 課題に感じていたこと
  5. AbemaTV, Inc. All Rights Reserved
 7 • WAIT_APPROVAL stage に到達したタイミングで担当者に

    Slack 通知が届くようになりトイルを削減! • 一つの commit から大量の Deployment が作成されても自分のも のが一目瞭然に! • Deployment がどの commit, pull-request で発火したのか特定 が容易に! • PipeCD で個別メンションを実現! SCRIPT_RUN x Event contexts で解決したこと
  6. AbemaTV, Inc. All Rights Reserved
 13 pipectl event register -\-contexts

    で contexts に指定した key, value が piped の 作成する Git commit body に Git Trailers と して記載される。 merging-actor を仕込んで pull-request を マージ(PipeCD Deployment を起動) した開発者を特定 GitOpsの効率化:commit追跡を簡単にするア イデア集 PipeCD Event contexts a
  7. AbemaTV, Inc. All Rights Reserved
 14 Deployment の任意のタイミングでコマンドを実行できるステージ 用途は •

    Slack 通知を送信 • curl で E2E test の起動 など様々に利用できます https://pipecd.dev/docs-v0.50.x/user-guide/managing-application/cust omizing-deployment/script-run/ SCRIPT_RUN stage
  8. AbemaTV, Inc. All Rights Reserved
 16 Slack ID 登録用の Shell

    Script を実装 .pipe/script_run/shared/setup_slack.sh
  9. AbemaTV, Inc. All Rights Reserved
 20 • SCRIPT_RUN stage で共通の

    Shell Script を利用する場合に、相対パス で参照するのが辛い! • 現状は Shell Script でなんとかなっているが、さらに高度な実装をした い場合は Go などで書きたい! • 同じ commit から発火した Deployment 群をまとめて一つの Slack メン ションで通知したい! • 同じ commit から発火した Deployment 群の WAIT_APPROVAL を一括 で承認したい! Plugin なら... より高度な SCRIPT_RUN として Plugin に期待!