The Zebra社がセキュアなパイプラインを確実に実現した方法
The Zebra社は、ソースコード管理、CI/CD、セキュリティのために、GitHubとJenkinsの代わりとしてGitLabを採用しました。
オンライン保険比較サイトを運営するThe Zebra社は、SCM、CI/CD、SAST、DASTを行うためにGitLabを採用しました。
適切な保険を提示するThe Zebra社
The Zebra社は、保険会社を簡単に比較できるようにすることを目的に設立されました。2012年創立の同社は、自動車保険のオプションを調査し、利用可能な最良の料金を提示するオンラインの保険比較ショップです。The Zebra社は最近、住宅所有者保険と賃貸保険にもその業務を拡大しました。
利点のないプラグインが散在していた状況
The Zebra社は、GitHubをリポジトリとして、Jenkinsをデプロイのために使用していました。同社チームはまた、Terraformを使用してAWSにデプロイしていました。Jenkinsのプラグインの数により、圧倒的な量の管理作業が生じていました。その上、さまざまなプラグインの存在は、一部のツールがサポートされなくなったり、デプロイ環境で更新できなくなったりするなど、セキュリティ上の脆弱性を引き起こしていました。
「私たちが抱えていた最大の問題は、GitLabの導入前にJenkinsを使用してデプロイしていたことでした。プラグインの数が非常に多く、非常に壊れやすかったため、誰も触れようとしませんでした」と語るのは、シニアソフトウェアマネージャーのDan Bereczki氏。「あえて触れた人々がいると破損し、半日~1日も修正やアップグレードを行う必要があったため、一時的にデプロイを保留にせざるを得ませんでした」
チームは既存のCI/CDプロセスを改善したいと考えていましたが、それはJenkinsにプラグインを追加することを意味し、それまで行っていたメンテナンス作業がさらに複雑になるおそれがありました。The Zebra社は、テストとセキュリティを統合してさまざまな異なるプラットフォームへのデプロイを可能にする新しいソリューションを必要としていました。
プラグインが不要な高速移行
The Zebra社は、既存のプラグインを置き換え、管理のストレスを軽減するために、さまざまなプラットフォームを検討しました。その結果、プラグインを管理する必要がなく、強化されたリポジトリを提供するGitLabを採用しました。CI/CD機能があったのも魅力でした。
それだけでなく、組み込みのセキュリティなど、他のソリューションにはない機能が提供されていたことから、チームはGitLabの採用に熱い期待を抱いていました。「チームはプロセスを制御できる範囲が増えたという実感を得ただけでなく、移行が非常に簡単であったと感じました。移行は3か月以内で完了することができました」とBereczki氏。Jenkinsのコードの95%が3か月以内に移行され、現在ではJenkinsとGitHubからの完全な移行が実現しました。
6つあるアプリケーション開発チームのすべて、そして開発以外の複数のチームがGitLabを使用しています。「Jenkinsの複雑さを理解し、問題を修正できるのはわずか1~2人でしたが、GitLabパイプラインの使用方法は誰もが知っています」とBereczki氏。GitHub、Codeship CI、Jenkins Deployの3つのツールを使用していたチームは、完全に統合・自動化されたGitLab CI/CDだけを使用するようになりました。
多くのソリューションを提供する単一プラットフォーム
GitLabを使用すると、チームは他のスケジュールを待たずに自由にデプロイできるため、The Zebra社は継続的なデプロイへの移行に集中できるようになりました。すべての開発チームはCIパイプラインの仕組みを把握しており、パイプライン内で作業できるため、デプロイプロセスにおいてより大きな役割を担うようになっています。その上、インフラストラクチャはもはやデプロイにおけるボトルネックではありません。
ワークフローは通常、マーケティングチームのリクエストから始まります。その後、技術的な概要が作成され、Jiraチケットに分割されてから、適切なチームに割り当てられます。そして作業が行われてコードが生成され、GitLabのリポジトリに入ります。その後、チームはGitLab CI/CDパイプラインを使用して開発環境にデプロイします。テストおよびデプロイプロセス中に構成の変更が確実に維持されるようにするために、Infrastructure as Codeの実装にはTerraformを使用しています。
チームはRDSとともにAmazon EKSを使用しています。トラフィックのルーティングは、まずはCloudflareによって処理された後、内部のElastic Load Balancingによって処理されます。デベロッパーがThe Zebra社のサービスを外部に接続する必要がある場合、サードパーティのサービスであるAmazon Virtual Private Cloudを使用します。「私たちは、誰もどのように機能するかを知らないブラックボックスのようなシステムは望んでいません。今、そういった状態から徐々に脱却しているところです」とBereczki氏。
GitLabにより本番環境まで独自のコードを管理できるようになったため、開発チーム間の部門横断的な関係が実現しました。デベロッパーはデプロイの各ステップを理解し、ワークフローの他の部分が中断されてしまうことを心配せず、あらゆる問題を解決して変更を加えることができます。
GitLabのSASTとDASTを使用すると、SOC2タイプ1認証のコンプライアンスを容易に実現できます。現在、同社チームはSOC2タイプ2認証の最中にあります。さらに、リスクを軽減する追加のテストとセキュリティ対策も提供されます。「最も大きな影響は、あまりにも多くの脆弱性が潜んでおり、それに対処できるようになったことです。現在修正を行っているところです」とBereczki氏。これまでに、4つのプロジェクトで見つかった「深刻」および「高」の重大度の問題をすべて修正しました。「嬉しいことに、今ではこのプロセスはパイプラインの一部となっているため、侵入テストや、四半期や年2回ごとのテストの実施時になってから慌てて修正する必要がなくなりました」とBereczki氏は付け加えています。
ケーススタディに記載されている情報や関係者はすべて、発表時点のものです。