BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース マージキューでGitHubのデプロイを改善する

マージキューでGitHubのデプロイを改善する

原文リンク(2024-03-31)

GitHubは先日、マージキューを使ってコード更新を実装する話題に触れた。マージキューはGitHub.comで 30,000 件以上のプルリクエストとそれに対応する450万回のCI実行を管理するために開発され、拡張を続けてきた。

マージキューシステムは、プルリクエストをデプロイ可能なバッチに整理し、GitHub Actionsを通じてビルドとテストを行う。ブランチ保護規則に従って、失敗したコミットによる更新を防止することで、メインブランチの整合性を維持できる。キュー内で競合するプルリクエストは自動的に識別・除外され、必要に応じてシステムが再グループ化を行う。

GitHubのプロダクトマネージャーであるWill Smythe氏とスタッフエンジニアであるLawrence Gripper氏は、GitHubがマージキューを導入した経緯について、ブログ投稿で詳しく説明している。マージキューへの移行は、開発者の作業速度を向上させるだけでなく、開発者が成果物をリリースする際の全体的なエクスペリエンスを向上させ、問題のあるプルリクエストがより広いチームに影響を及ぼすのを防ぎ、すべてのサービスとリポジトリで一貫性のある高度に自動化されたプロセスの確保を目的としていた。

2021年半ばまでに、GitHubはいくつかの小規模な内部リポジトリでマージキュー機能を試験的に運用開始した。彼らは段階的にプロセスの変更を実施し、開発者の大半が始業する前の早朝にテストと修正の差し戻しを行った。時間をかけて、GitHubは2023年までに、大規模なモノレポと、本番サービスにリンクされているすべてのリポジトリをマージキューシステムに体系的に移行した。

マージキューはGitHubの既存のプルリクエストのワークフローに溶け込み、開発者が特定のChatOpsコマンドを学び、状態管理のためにラベルや特定のコメント構文を利用する必要がなくなり、GitHubの開発エクスペリエンスを向上させた。開発者は簡単にプルリクエストをキューに入れることができ、変更に問題があればワンクリックでキューから抜けることができる。

2023年第3四半期頃、GitHubがマージキューを一般公開した後、Hacker Newsで関連する議論を偶然見つけた。技術コミュニティはこの議論に積極的に参加し、あるユーザーmonorepoプルリクエストのマージにこのシステムを数ヶ月間使っていることを強調し、プロセスの大幅な改善を認めていた。また、彼らはこのシステムの優れた能力と信頼できるトランクベースのリリースを賞賛し、この機能の開発チームへの感謝を表明した。

別のユーザーからは、マージキューがAzure DevOpsに導入されるかどうかという問い合わせがあり、その可用性に関心を示していた。ある参加者はこのスレッドで、Azure Reposのアップデートが不十分だと指摘し、SSH Gitのためのssh-rsaホストキーに依存し続けていることを問題視している。

毎月500人以上のエンジニアがマージキューを利用して、2,500のプルリクエストをGitHubの大規模なモノレポに統合しており、その結果、変更のデプロイにかかる時間が平均で33%短縮されている。GitHubが定期的に行っている開発者の満足度調査では、あるエンジニアがマージキューを "GitHubで目撃した変更のデプロイにおけるもっとも重要な品質向上機能だ!"と称賛している。

作者について

この記事に星をつける

おすすめ度
スタイル

BT