ZuulでGitHubとGerritを使用する ~Le Bon Coinのケーススタディ~ 第36回 19年11月 / 最終更新:2019.11.29

オンラインフリーマーケットといわれる[Le Bon Coin](https://www.Le Bon Coin.fr/)は、個人が地域コミュニティで新品や中古品をオンライン売買できるようにするポータルサイトです。Le Bon Coinはフランスで最も検索されたウェブサイトのトップ10の1つで、Google、Facebook、YouTubeなどに続いてます。

私たちはGuillaume Chenuet氏と話をし、Le Bon CoinがZuulを選んだ理由や、どのようにGitHub、Gerrit、OpenStackとZuulを使用しているのかについての回答を得ました。

Le Bon CoinはどのようにZuulを始めましたか?

2年前にZuulv2とJenkinsと一緒にオープンソースのCIツールであるZuulを使い始めました。当初はGerritとJenkinsのみを使用していましたが、新しい開発者が毎日Le Bon Coinに参加したため、このソリューションでは不十分でした。いくつかの調査や実証実験の後、Zuulを試してみました。GerritとJenkinsの間で動かしました。1か月も経たないうちに(公式の分厚いドキュメントを使わずに)、完全に新しいスタックをセットアップできました。Zuulv3に移行するまで1年間実行していました。Zuulv3はセットアップの点ではより複雑ですが、AnsibleやOpenStackのような最新のツールを使用してより多くの機能をもたらしてくれます。

どのように利用しているか教えてください

Zuulv3とGerritを使用しています。私たちのワークフローはOpenStackのワークフローに近いものです。レビューごとに、品質、統合、ビルドという3つの「チェック」パイプラインをZuulはトリガーします。結果が正しい場合はゲートシステムを使用してコードをリポジトリにマージし、アーティファクトをビルドします。

各データセンターで2つの小さなOpenStackクラスター(3 CTRL / 3 STRG / 5 COMPUTE)を使用しています。Zuulは現在、すべてのGerritプロジェクトといくつかのGitHubプロジェクトでもセットアップされています。以下は、本番環境でのZuulv3インフラと、データセンターが失われた場合のZuulv3インフラです。

 

本番環境でのZuulv3インフラ

 

データセンターが失われた場合のZuulv3インフラ

現在の規模はどのくらいですか?

コンピューティングリソースに関しては、現在、480コア、1.3To Ram、および80ToがCephクラスターで使用可能です。ジョブに関しては、1か月あたり約60,000のジョブを実行しました。これは1日あたり約2,500のジョブになります。ジョブの平均時間は5分未満です。

Le Bon CoinはZuulにどのような利点を感じましたか?

Le Bon Coinが非常に急速に成長しているなか(そしてマイクロサービスも🙂)、Zuulはすべてを、大規模にテストできるようにしてくれます。ZuulはGerritやGitHubと連携することもできます。これにより、CIをより多くのチームとワークフローに開くことができました。

課題は何でしたか(また、どのように解決しましたか)?

私たちの大きな課題は、Zuulv2からZuulv3に移行することでした。すべてがAnsibleを使用していても、すべてのCIジョブ(約500のJenkinsジョブ)を移行するのは非常に面倒でした。IRCにいるZuul利用者の協力を得て、OpenStackが使っているAnsibleのロールとプレイブックを利用しましたが、移行には約1年もかかりました。

Zuulでの今後の計画は何ですか?

次のステップは、linterのような小さなジョブにKubernetesバックエンドを使用することと、GitHubでZuulを改善することです。

Zuulに興味のある組織は、どのようにしてさらに学び、参加することができますか?

私はOpenStackから来たので、サミットやIRCでコミュニティと会うことは良いスタートだと思います。しかし、Zuulにはもっと良い可視性が必要です。Zuulは強力なツールですが、オンラインで得られる情報は限られています。

Zuulには何か魅力的な機能はありますか?

スケーラビリティ! また、すべてのコミットがリポジトリにマージされるのが明確で、破損しないことです。

Zuulアップストリームコミュニティに何を求めますか?

Gerrit 3とのより良い統合、新しいノードプール機能とプロバイダー、完全なHA、そしてインターネット上での可視性の向上に取り組んでほしいです。

※本コラムは以下の文章を意訳したものです。

引用元 https://superuser.openstack.org/articles/using-github-and-gerrit-with-zuul-a-leboncoin-case-study/

※本コラムは原文執筆者が公式に発表しているものでなく、翻訳者が独自に意訳しているものです。