CARFAX社は、GitLabを活用してセキュリティを改善し、パイプライン管理とコストを削減
CARFAXは新機能の提供ではなくDevOpsツールチェーンのサポートに多大な時間と費用を費やしていましたが、GitLabを採用したことでツールチェーンは縮小され、同時にセキュリティも強化されました。
米国企業のCARFAX社は、何百万もの人々の自動車購入を日々支援しています。310億件を超える記録を持つ同社は北米で最も包括的な車両履歴データベースを保有しており、走行距離計の読み取り値、所有者の数、損傷履歴といった車両情報をユーザーに提供しています。CARFAXは、米国およびカナダのすべての州の自動車代理店を含む139,000件を超えるデータソースからこの情報を受け取っています。
ツールチェーンのトラブルを軽減
CARFAXの顧客の多くはオンラインで同社とやり取りしているため、顧客との関係を維持し、成長させ、競合他社をリードする上で、同社はソフトウェアに依存しています。そのためには、最も人気のあるソフトウェア製品の新機能とともに、革新的かつセキュアで新しいソフトウェアを効率的かつ安全に作成する必要があります。長年にわたり、CARFAXの開発チームはDevOpsツールのツールチェーンを蓄積してきましたが、これらは会社のニーズをすべて満たすものではなく、さらに悪いことに、さらなる課題を生み出していました。
「当社ではツールチェーンの調達とサポートに多大な時間と予算を費やしており、最終的なツール数は12個にまで膨らんでいました」とCARFAXプラットフォームエンジニアリングディレクターのMark Portofe氏は述べています。「チームがこれらすべてのツールを管理する代わりに、新機能の開発と展開に集中できるようにするには、ツールチェーンのメンテナンスとサポートを最小限に減らす必要がありました」
効率性や生産性に関する懸念のみならず、CARFAX 開発チームは、ソフトウェア開発ライフサイクルの早い段階で脆弱性を発見する方法も必要としていました。開発プロセス中ではなく定期的な手動スキャン中に問題が表面化していたことから、組織は時間とコストの浪費を強いられていました。このような事態を逆転させることがCARFAXの願いでした。
GitLab DevSecOpsプラットフォームの活用
必要な変更を行うために、CARFAXは2020年半ばにGitLabのDevSecOpsプラットフォーム、その中でもGitLab Ultimateの採用を決定しました。「GitLabを使用すれば、さまざまなツールをつなぎ合わせなくても活用できる機能が数多くあることを理解していました」とPortofe氏は言います。まず、CARFAXはコードベースをGitLabにミラーリングし、すべてのコードでGitLabセキュリティスキャンを活用することに焦点を当てました。これは、最初の6か月以内に完了しました。次に、同社はコードリポジトリとCI/CDパイプライン機能にGitLabを使い始めました。厳格な移行の義務や明確な締め切りはありませんでしたが、ソフトウェア開発チームは個々の製品ロードマップ内でGitLabプラットフォームを使用する計画を作成しました。そしてGitLabを使い始めていた開発チームを支援するため、CARFAXは中央チームを設立し、直接連携を開始しました。
同社でのGitLabの使用は、主に顧客向けアプリから始まりました。同時に、チームは同じアプリケーションに対応するパイプラインの移行を開始しました。顧客向け以外のソフトウェアや大規模なレガシー アプリの場合、移行パスは長くなります。
「開発チームが自分たちで計画できるようにしました」とPortofe氏は続けます。「多くのロードマップがすでに作成されていたため、開発チームには柔軟性を与えることにしました。この方法の採用により、セキュリティスキャンやコードのより詳細な分析などのメリットが浮かび上がり、チームにやる気が生まれました」
ツールチェーンと脆弱性の低減
GitLabを使用する初期段階で、CARFAXはツールチェーン内のさまざまなDevOpsツールを置き換えました。Portofe氏によれば、ツールチェーンを約半分にまで削減することを計画しているそうです。
「ツールチェーン全体でライセンスコストと非効率性の両方の問題が発生していました」とPortofe氏。「GitLabを使用すると、面倒な手作業なしでコードベース全体をスキャンできるため、セキュリティスキャンの回数を大幅に増やすことができました。さらに、セキュリティの脆弱性をより明確に把握することができるようにもなりました。コストの削減と、セキュリティの向上を実現できました」
また、ツールチェーンを削減することでエンジニアの作業負荷が合理化され、生産性と効率を向上させ、開発とデプロイの作業全体をより安定させることができたことも指摘しています。
「過去に使用した他のツールには一般的な脆弱性がありましたが、GitLabではそのような問題は見られません」とPortofe氏。「事業全体にも間接的なメリットがもたらされます。大切なのは、いかに効率的に機能をお客様に届けられるか、ということにあります」
自動化とシフトレフトによりセキュリティを向上
効率を向上させたGitLabのDevSecOpsプラットフォームのもう1つの側面は、まったく新しい水準のセキュリティをもたらしたビルトインの自動化機能でした。
CARFAXは、GitLabの自動セキュリティ機能を使用して、依存関係とコンテナのスキャン、シークレット検出を行うことができました。「GitLabを使用する前は、コードベースでセキュリティスキャンを実行するには面倒な手作業が必要でした。現在ははるかに簡単になっています」とPortofe氏。「セキュリティは常に取り組むべき問題ですが、GitLabのセキュリティ機能により、開発者は問題を容易に早期発見できます」
プラットフォームの自動スキャン機能により、CARFAXは脆弱性の3分の1近くを過去1年間の開発ライフサイクルの非常に早い段階で見つけることができました。
またPortofe氏は、プラットフォームの使用により、開発チーム全体がソフトウェアライフサイクルの最も早い段階でセキュリティについて考えることができるようになったことも指摘しています。セキュリティに焦点を移行し、限りなくシフトレフトすることで、最終段階ではなくコーディング中にセキュリティのニーズと影響を考慮することができるため、修正がより困難で、コストがかかり、効率が低下する段階にまで問題が引き伸ばされることはありません。
「ソフトウェアの設計と構築の際には、常にセキュリティについて考えています」とPortofe氏。「機能をリリースしようとするだけでなく、それらの機能の安全性を確保することが重要です。これはソフトウェア開発ライフサイクルのあらゆるステップにおいて必要となります。これが、時間の節約とセキュリティの向上につながります」
より小規模なチームでデプロイの拡大に対応
CARFAXはDevSecOpsで生産性を大幅に向上させました。プロセスの自動化、セキュリティのシフトレフト、ツールチェーンの複雑さの軽減により、チームはプロセスをシンプルにし、生産性を向上させ、デプロイの速度を向上させることができました。2022年だけで本番環境のデプロイが14%増加しています。
「コードを本番環境に移行する際など、すべてがよりクリーンになっています」とPortofe氏。「チームはパイプラインの実行の確認ではなくコードの作成に多くの時間を費やすことができるようになり、より多くの新しい製品機能をリリースできています」
デプロイの増加についてさらに印象的なのは、CARFAXが小規模なチームでそれを実現していることです。
同社のツールチームは、CARFAXの約250人のソフトウェアエンジニアがコードを構築するために使用できる共通のパイプラインやユーティリティの構築に重点を置いており、通常5人のメンバーで構成されています。今では生産性とデプロイの向上を実現しつつ、たった2人までそのメンバー数を減らすことが可能になりました。「このプラットフォームのおかげで、2人だけのチームで運営しながら業務を継続することができています」とPortofe氏。「実際に、2023年の最初の5ヶ月間の本番デプロイは、その前の5ヶ月間と比較して約25%増加しました。驚くべき数字です」
クラウドへの移行を容易に
Amazon Web Services(AWS)を活用するCARFAXは、時間の経過とともに、クラウド上で異なるアセットを持つさまざまなチームを抱えるようになりました。さらには、オンプレミスのインフラストラクチャもいくつかありました。非常に混乱した環境でしたが、今ではGitLabの助けを借りてインフラストラクチャ、サーバー、コードベースのほとんどをクラウドに移行しています。
Portofe氏は「GitLabにはクラウドへの移行を容易にするツールがあるため助かります」と述べ、同社ではクラウドコンピューティングプラットフォームも統合中であることを付け加えています。
さらに、GitLabのプラットフォームによってCARFAXのクラウド依存を避けることが可能になるとも教えてくれました。「CI/CDパイプラインを共通化する場合、共通のオンランプを使用して移行できるため、作業が容易になります」とPortofe氏。
ケーススタディに記載されている情報や関係者はすべて、発表時点のものです。
お客様成功事例
すべてのストーリーを見るご不明な点がありますか? お気軽にお問い合わせください。
お問い合わせ