ExtraHopは、エンタープライズのセキュリティとパフォーマンスを大規模に向上させる分析・調査ソリューションを提供しています。Microsoft、PayPal、Sutter Healthをはじめとする世界有数の組織が、セキュリティ、ITモダナイゼーション、アプリケーションサービスデリバリーなどの中核的なデジタルビジネスイニシアチブを支援するためにExtraHopを信頼しています。
GitLabの高度な統合ツールがExtraHop開発チームの連携を促進し、CI/CDへの移行を加速
GitLabにより、異なるエンジニアリングワークフローに対応するだけでなく、真の継続的インテグレーションを実現できる単一のツールを手に入れることができました。
ExtraHopは、すべてのビジネストランザクションにリアルタイム分析と高度な機械学習を適用し、セキュリティチームとITチームが迅速かつ自信を持って行動できるよう、かつてない可視性、明確なインサイト、即座の回答を提供しています。Microsoft、PayPal、Sutter Healthをはじめとする世界有数の組織が、セキュリティ、ITモダナイゼーション、アプリケーションサービスデリバリーなどの中核的なデジタルビジネスイニシアチブを支援するためにExtraHopを信頼しています。
多くのエンジニアリング組織と同様に、ExtraHopの開発チームはコード変更の最適な実行方法について深く分断されていました。組織は従来Gerritを使用していましたが、新世代のエンジニアたちはBitbucketを試験的に導入し始めたのです。6か月の試用期間のはずが4年間の膠着状態に発展し、会社は一括コミットと単一コミットという、それぞれが好むコミット方法を可能にするツールを支持する2つのエンジニア派閥の間で板挟みになっていました。
ExtraHopのITディレクターであるBri Hatch氏は次のように述べています。「Gerritでは基本的に、変更のたびに修正される単一のコミットのみを扱っていました。これは、各コミットが完全に機能する整然とした線形のコミット履歴を好む私のような古参エンジニアにとっては最適でした。一方、GitHubモデルで育った人々が支持する同様に有効な選択肢は、行き止まりも含めて複数のコミットを繰り返し、単一のマージリクエストでまとめてプッシュする方法です。」
ExtraHopは、ベテランエンジニアと新しいエンジニアの両方の満足度を維持するバランスを見つける必要がありました。
Hatch氏は続けます。「エンジニアは意見が強い集団であり、修正コミット(Gerrit)対マージリクエスト(Bitbucket)を巡る聖戦が繰り広げられていました。しかし、viとemacsの対立とは異なり、すべてのエンジニアが好みのツールを使用しても互いのワークフローに干渉しないという状況ではありませんでした。ここでは、意味のあるチーム間コラボレーションをサポートする単一の本番システムが必要だったのです。」
コミットモデルに関する分断は、エンジニアリングチームがCI/CDモデルを完全に採用する能力にも影響を与えていました。マルチツールアプローチでは継続的デリバリーは可能でしたが、継続的インテグレーション、つまりコードがテストに到達する前に問題を特定する能力は、まだ大部分が理想にとどまっていたのです。
Hatch氏は述べています。「真のCI/CDモデルを達成することは、ある意味涅槃のようなものです。到達できれば素晴らしいですが、実現するのは非常に困難です。プロセスの多くは整っていましたが、モデルをサポートするための重要な連携と適切なテクノロジーが欠けていました。」
数年にわたるGerrit/Bitbucketの膠着状態に終わりが見えない中、エンジニアリングマネジメントは他の選択肢を検討する姿勢を見せていました。GitLabとの最初の出会いは、ExtraHopの年次ハッカソンでのことでした。ExtraHopのITシステムエンジニアであるKevin Tatum氏は次のように語っています。「あるエンジニアが自分のワークステーションに独自のGitLabインスタンスを立ち上げました。いくつかのリポジトリを移行し、システム間で並行して作業しながら、すべてのコードレビューをGitLabで密かに行っていたのです。」
チームが結果を確認したとき、有望な妥協点が見えてきました。GitLabは、長年開発チームを分断してきた2つの異なるワークフロー、つまり単一コミットと一括コミットの両方に対応するモデルを提供していたのです。
また、GitLab Auto DevOpsは、真のCI/CDに必要なテクノロジーコンポーネントを提供し、すぐに使えるエンドツーエンドのパイプラインで製品デリバリーを加速しました。
Hatch氏は述べています。「GitLabにより、異なるエンジニアリングワークフローに対応するだけでなく、真の継続的インテグレーションを実現できる単一のツールを手に入れることができました。」
ExtraHopは数年間CI/CDモデルに従っていましたが、異なる開発者ツールの使用によりモデルにギャップが生じていました。さらに、使用していたツールは継続的デリバリーをサポートしていましたが、重要な継続的インテグレーションの部分ではうまく機能していませんでした。
GitLabにより、ExtraHopはプロセスとツールの両面からCI/CDモデルを完全に採用する道を順調に進んでいます。エンジニアリングチームがGitLabで作業を始めたとき、GitLab CI/CD Runnerが強力でありながら管理が容易であることを発見しました。
「私たちのITエンジニアの一人が会議中に『空き時間』を見つけ、Gerritの世界で手動で実行していたユニットテストに対してCIを実装しました。チームの残りのメンバーをトレーニングする際、何か問題が起きるのを待っていましたが、実際に見た通りシンプルだったのです。」
現在、ExtraHopのエンジニアリングチームはビルドの失敗についてWebとメールで通知を受け取り、本番環境で動作しないコードをコミットできなくなっています。
Hatch氏は述べています。「当初のGitLabの範囲には、CI/CDの追加や移行は含まれていませんでした。しかし、使いやすさを考慮して、GitLabのCI/CDへの移行の優先度を上げ、現在積極的に取り組んでいます。チームにとって何が可能かを見たとき、それは当然の選択でした。」
GitLabへの移行により、ExtraHopは開発チーム全体のコードレビューの好みに容易に対応できるようになりました。GitLabの統合機能により、単一コミットと一括コミットの両方が開発チーム全体で利用可能になっています。この汎用性は、GerritよりBitbucketを好む、またはその逆のExtraHopエンジニアの多様なワークフローニーズを満たしています。
直感的なユーザーインターフェース(UI)も、ExtraHopチームにとって大きなメリットでした。
Hatch氏は述べています。「UIを検討する際、非常に直感的で使いやすく、新鮮でダイナミック、そして進化し続けるものを求めていました。GitLabは素晴らしかったです。GitLabのUIは、BitbucketのUIよりもはるかにアクセスしやすいと感じています。」
ExtraHopはまだGitLabへの移行途中であり、リポジトリの80%がアプリケーションに移行されています。現在、レガシービルド環境を移行中であり、GitLabのKubernetes機能にも関心を持っています。
「GitLabは私たちにとって正しい選択でした。すべてのツールには違いがあり、長所と短所があります」とHatch氏は述べています。「しかし、私たちにとって、GitLabは多くの面で機能しました。」
ケーススタディに記載されている情報や関係者はすべて、発表時点のものです。



