BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース PinterestによるCI可視性向上とビルド安定性強化のためのHoneycomb活用

PinterestによるCI可視性向上とビルド安定性強化のためのHoneycomb活用

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

最近、Pinterest社のMobile BuildsチームはHoneycomb、データ可視化プラットフォームを活用して継続的インテグレーション(CI)プロセスの効率と安定性を向上させた方法について議論した。チームは2021年にHoneycombを導入し、ビルドメトリクスを監視し、トレンドを分析し、パフォーマンスのボトルネックに対処できるようになった。

Pinterest社のスタッフソフトウェアエンジニア Oliver Koo氏はブログ記事で可視性へのデータ駆動型アプローチについて議論した。HoneycombはPinterest社にCI監視能力を向上させる高度なデータ可視化ツールを提供している。派生カラムや高速クエリパフォーマンスなどのHoneycombの機能を使用することで、チームは毎日数百万のイベントを処理し、ビルド時間やパイプラインパフォーマンスの異常をほぼリアルタイムで特定できる。

これにより、チームは問題を迅速に診断し、ターゲットを絞った改善を実施できる。例えば、Koo氏はHoneycomb トレースビューを使用して特定のビルドを分析し、CIパイプラインを遅延させる問題のあるジョブやプロセスを特定する方法について議論した。継続的インテグレーション(CI)パイプラインの分析では、ビルドカウントとp95およびp50ビルド時間を調査する際に2つのシナリオが際立った。1つの事例ではビルドカウントが急増したにもかかわらずビルド時間に変化がなかったため、チームは他のタスクに集中できた。しかし別の事例では、ビルドボリュームは一貫していたもののp95ビルド時間に顕著なスパイクが見られ、さらなる調査が必要であることが明らかになった。

Honeycombのトレースビューを使用して、チームは「super secretive tests」とラベル付けされたジョブがp95ビルド時間のスパイクを引き起こしているボトルネックであることを特定した。これにより、他のビルドでも同様の遅延が発生している可能性があるという仮定につながった。さらなる調査のために、チームはHoneycombのweb_url属性を使用してBuildkite内でより多くのビルドを直接分析した。

出典:How Pinterest Leverages Honeycomb to Enhance CI Observability and Improve CI Build Stability

Honeycombのトレースビューは、2023年に導入されたBuildkiteのウォーターフォールビューに似ているが、そのシームレスな統合性と柔軟性から好まれている。トレースビューはビルドをエージェント待機時間やスクリプト実行などの詳細なセグメントに分解することを可能にし、重要なビルドおよびジョブプロセスのロギングと分析を可能にする。

以下の画像は、各Buildkiteジョブがどのように実行シーケンスに分解されるか、そしてBazelビルドスクリプトが特定の実行時間をログに記録するためにどのように計測されるかを示している。このアプローチは、平均リポジトリクローン時間やビルドステージのp50およびp95時間といった重要な質問に答えるのに役立つ。

出典:How Pinterest Leverages Honeycomb to Enhance CI Observability and Improve CI Build Stability

このブログ記事はLinkedInで共有され、テックコミュニティの注目を集めた。HoneycombのCEO Christine Yen氏はこの記事を共有し、言及した。

Pinterest Engineeringの 友人たちがHoneycombを活用してビルドを高速に行い、予期せぬ動作があった場合にエンジニアがトラブルシューティングできているのは素晴らしいことです!

Koo氏は別のユースケース-CIジョブのボトルネック特定についても議論した。ビルドトレースを分析する中で、Pinterest社のエンジニアたちは特定のジョブがビルド時間のスパイクを引き起こしていることを発見した。彼らはHoneycombの相関機能を使用して、複数のダッシュボードからのデータを重ね合わせ、CIエージェントの待機時間の増加などの根本原因を特定した。この包括的なアプローチは、手動分析と比較してトラブルシューティングに必要な時間を大幅に短縮した。

さらに、Pinterestはオンコールワークフローを効率化し、障害管理を改善するためにHoneycombを使ってエラー分類を実装した。リアルタイムでエラーを分類することでチームはアラートを自動化し、適切なチームにルーティングすることが可能となった。これによりノイズがさらに減少し、応答効率が向上した。このシステムは不安定なテストやネットワーク障害などの重要な問題を優先しつつ、エンジニアリングチームへの不要な中断を最小限に抑えるのに役立っている。

CIワークフローを超えて、Pinterest社はHoneycombを使用してハードウェアアップグレードを最適化するためにiOS開発者のローカルビルドメトリクスを分析したり、さらなる洞察を得るためにAndroidビルドパフォーマンスデータを追跡している。

作者について

関連するコンテンツ

BT