2021年12月7日に、『Kubernetes Casual Talk 〜Ubie、CA、メルペイ各社のCI/CD事情〜』 を開催しました。
この記事はイベントレポートです。配信当日の内容を簡単に紹介します!
詳しくはYouTube上にある配信アーカイブ動画をご視聴ください。
イベント概要
今回のイベントでは、Kubernetesを活用し開発している企業(Ubie、サイバーエージェント、メルカリグループ)のエンジニアたちが集まり、CI/CDをテーマに各社の取り組みをプレゼンテーションで簡単に紹介し、さらにパネルディスカッションで深堀りしていきます。
想定対象者は以下のとおりです。
- Kubernetes を使っている / これから使おうとしている方
- Kubernetesを活用したCI/CDについて興味がある方、すでに取り組みをしている方
- Kubernetes にまつわる話を聞きたい方
- 各社の開発体制に興味がある方
イベント詳細はイベントページを参照してください。
前回のKubernetes Casual Talk のレポート記事はこちらからご覧ください。
登壇者とモデレータ
今回の登壇者&モデレータは、以下の4名です。
登壇者
- 坂田 純/ 株式会社Ubie Software Engineer, Site Reliability
- 漆田 瑞樹/ 株式会社サイバーエージェント CIU Dev Division ML 基盤チーム
- 長谷川 誠/ 株式会社サイバーエージェント CIU
- 伊藤 雄貴/ 株式会社メルペイ Architectチーム Backend Engineer
モデレータ
- @deeeet / Mercari, Inc. Engineering head of Developer productivity engineering
各社の取り組みについてざっくり解説
まずはじめに各社のCI/CDツールの使い方や運用の仕方などをざっくりと紹介し合いました。この内容は後のディスカッションで様々な質問のための概要紹介となります。
UbieのKubernetes CI/CD事情 – 坂田 純
Ubie社内ではどのようにKubernetesのCD/CIを行っているのかを紹介しました。
Kubernetesのmanifestをたくさん抱えた Monorepoによる管理で、BOTでバージョン情報などを書き換えるような運用をしており、そのmonorepoの簡単な説明を行いました。
manifestの話題では将来的な progressive delivery のためにArgo Rollouts 等の Argo シリーズを全体に展開しています。
冒頭で説明したGitHubでイメージを書き換える箇所の仕組みは、自身のOSSとして公開しています。
サイバーエージェントにおけるProwの運用事例 ‐ 漆田 瑞樹
サイバーエージェントの社内で使用している Prow の運用事例について説明しました。今回の説明では、CyberAgent CIU での運用ポイントを3つ紹介しました。
- Inrepoconfigをメインで利用する
- 複雑なジョブは Tekton Pipeline を利用して処理する
- GitHub App とリポジトリ Webhook のハイブリッド
その後、Prowを1年半ほど使ってみて感じたメリット・デメリットについてまとめました。自身は ChatOptは最高なので使っていこう!という評価でした。
メルカリグループのCI/CDについての取り組み – 伊藤 雄貴
メルカリグループはGCPをフルに使っていてKubernetesエンジン上に、GOで書いた多くのマイクロサービスをデプロイしているという運用です。
最近ではCIをGitHub Actionsで設計するチームが増えてきたこと、そしてまだアルファステージの開発段階ですが GitHub の Self-Hosted runnner を使おうという取り組みを進めているお話をしました。
CDは、Spinnakerを使っていて、Cloud Pubsubのイベントを拾って必要なデプロイを開始していく方法をとっています。Manifest は1つの Monorepoで管理していて、Spinnakerはこれを見ているという仕組みです。
セッション中で話題に上がった、「deeetさんチームで作成している便利なキット」についてのお話は以下の動画でも解説されています。
ディスカッションパート
次に、登壇者と事前質問への回答や、Kubernetesに関するCI/CD事情のディスカッションを行いました。各社の発表に関する話題やを中心に、Kubernetes周辺の様々な技術についての質問や議論が行われました。
パネルディスカッションのトピックやQ&Aの内容の一部は以下のとおりです。
- Q. それぞれの会社が開発チームにどれだけKubernetesのmanifestやDeliveryの設定を公開していますか?(チームの責任範囲についての確認)
- Q. Self hosted runner は job の数に応じてスケールアウト/イン等の対応はしているのでしょうか?
- Q. Canary の Baseline ってどういうコードなんでしょうか?
- Q. なぜ Prow を導入したんですか?(どのような課題があった?)
- Q. Prow の運用で大変なこともともとPolyrepoで管理していたKubernetesのmanifest管理をMonorepo的にしたのはなぜですか?
- Q. サービス数が多いとGithubの管理などはどうしているのか?
- Q. 管理しているマニフェストのMonorepoについてサービスグループごとにマニフェストのリポジトリを分けていたりしますか?
- Q. サプライチェーンアタック対策の取り組みがあればお聞きしたいです
- Q. メルカリでは production readiness checklistがあってそれを満たしてないものはリリースさせないというルールについて
Kubernetesを使った運用や開発の工夫などがテーマだった前回に引き続き、今回も多くの質問を頂きまして残念ながら時間切れとなってしまい、すべての質問にお答えできませんでした。機会があればまた次回か、どこかで回答したいとのことです。
最後に
2月24日(木)に「Kubernetes Casual Talk 〜Ubie、CA、メルペイのカスタムコントローラー〜」を開催します。
今回はカスタムコントローラーをテーマに、各社の取り組みをお話しますので、是非ご興味ある方はご参加ください。
また、メルカリグループはTech Talk をはじめとしたエンジニア向けのイベントを定期的に開催しています。イベント開催案内を受け取りたい方は、connpassグループのメンバーになってくださいね!