Cruise 社の自動運転自動車の推進力となるテクノロジー
CircleCI と GitHub Enterprise が選ばれる理由とは?
コンシューマー向けの自動運転車を最初に生産するための競争が始まっています。Cruise Automation 社(GM の子会社)は、電動のシボレー・ボルトを完全に自律走行させる業務を担っています。競争の激しい自動運転技術を巡って、他社をリードするために、何が必要でしょうか? Cruise 社の場合、競合他社との差別化を図るための戦略の 1 つは、チームに不必要な軋轢を引き起こすことなく、開発を加速できるように、主要なシステムとツールをセットアップすることでした。
Cruise 社は、実際の路上で自動運転車を迅速かつ安全に実用できるようにするべく開発を進めていますが、そのための開発支援ツールとして、CircleCI Enterprise と GitHub Enterprise を選択しました。
「If you want to get up and running quickly, CircleCI makes it easy for you to get building, instead of spending time trying to make your tools work.」
Adrian MacNeil | インフラストラクチャ エンジニアリング担当ディレクター | Cruise
CircleCI 導入前の課題
自動運転車の実用化は、困難を極める挑戦です。自動運転ソフトウェアは、車両を物理的に制御し、交通法を順守し、地図の指示に従い、道路上のあらゆる状況に即座に対応できなければなりません。
Cruise 社のチームは、GitHub Enterprise を使用する前は、GitHub.com を使用していました。Cruise 社のチームは、GitHub.com に非常に精通していましたが、コードと、コードにアクセスできるユーザーをより厳密に制御できることを求めていました。
継続的インテグレーションで使用していた以前のツールは信頼性に乏しく、Cruise 社のチームは、大量のカスタムコードを維持する必要がありました。さらに、エンジニアが現在実行中のビルドを確認することは難しく、チームが障害の原因を診断する必要があっても、ログ出力やビルドアーティファクトにアクセスするための簡単な方法がありませんでした。
Adrian Macneil 氏が、Cruise 社でインフラストラクチャエンジニアリング部門のディレクターとして働き始めたときに、より優れた方法があることが分かりました。チームの貴重な時間は、ツールをメンテナンスすることよりも、ソフトウェアをビルドすることに費やした方がはるかに有用です。GitHub の使いやすさと必要なセキュリティ機能のバランスを取る方 法は必ずあると、Macneil 氏は考えました。
ソリューション
Macneil 氏は、すぐに、GitHub Enterprise と CircleCI Enterprise が同社のチームに最適なツールであることに気が付きました。これらの 2 つの製品は、シームレスに統合されていることから、この選択によって業務がさらに容易になりました。Cruise 社のチームは、コードへのアクセスが GitHub Enterprise のファイアウォールで保護されていることに安心感を感じています。Macneil 氏は次のように述べています。「当社のコードは、秘伝のソースとも言えるものです。自社で完全に管理しているサーバーとネットワークでコードを実行できることは安心で素晴らしいことです。」
CircleCI Enterprise に目を向けると、柔軟性とパフォーマンスが向上しており、非常に複雑なビルドおよびテストスイートを実行できるようになりました。Macneil 氏は次のように述べています。「ご想像のとおり、自動運転車を作り出すことは非常に複雑な作業です。車両ソフトウェアをシミュレートするには、強力なマシンを実行しなければなりません。CircleCI には、AWS GPU インスタンスをロードしており、これにより、以前よりも多くのテストとシミュレーションを実行できるようになりました。」
Cruise 社にとって、CircleCI を導入した最大の利点は、品質や安全性を犠牲にすることなく、チームがより機敏に活動できるようになったことです。Cruise 社のすべてのコードは、自動車のエンジニアが実施する物理的なロードテストを経て、マスターに統合されます。CircleCI によって、Cruise 社は以前よりも多くのシミュレーションを実行できるようになり、ロードテストでコードを使用するときの信頼性が高まっています。テストとシミュレーションを複数のコンテナに簡単に分割できることは、Macneil 氏が本当に評価している能力の 1 つです。「当社にとっての究極のテストとは、路上でコードを実行することです。すべてのコードは、ロードテストを経て、マスターに統合されます。CircleCI を使用すると、ビルドしたソフトウェアに対して自信を持つことができ、新しいソフトウェアを利用して自律走行を行うことができます。」
CircleCI チームのサポートについても、Cruise 社は重視しています。Macneil 氏は次のように述べています。「CI は常に進化しています。当社では、常に環境を調整し、独自のワークロードを実行しています。CircleCI のサポートにいつでも問い合わせることができ、実現しようとしていることを伝えて、助言を求めることができることは本当に大切なことです。」
また、Macneil 氏は、GitHub Enterprise と CircleCI を組み合わせたことにより、チームのコラボレーションが促進されたと感じています。「GitHub Enterprise と CircleCI の両方を使用することのシナジー効果の 1 つは、チームとプロジェクト間のコラボレーションが増加したことです。当社のエンジニアは、小規模なプロジェクトやライブラリ用の新しいリポジトリを簡単に作成し、インフラストラクチャ部門のサポートを受けることなく、CI をセットアップできます。すべてが社内で完結していることから、チームの創造性と柔軟性が向上しています。」
GitHub と CircleCI がシームレスに連携するため、オンボーディングも高速になり、1 日ですべての新しい従業員の生産性が向上します。「新しい開発者はツールの習得するために奮闘したり、ソースコードをリポジトリにコミットする方法をトレーニングコースを受ける必要もありません。これは、多くの大企業が抱えている問題です。大企業では馴染みのないツールを実行していることが多く、トレーニングとオンボーディングに多くの投資をしなければならなくなっています。CircleCI と GitHub をツールとして使用すると、習得時間が短縮され、競争上の優位性となります。」
「CircleCI のサポートを利用すると、ツールを機能させるために試行錯誤して時間を浪費することもなく、迅速に CircleCI プラットフォームを稼働させ、簡単にビルドできるようになります。これが、独自にビルドするのではなく、CircleCI を採用している大きな理由の 1 つです」と Macneil氏は述べています。「もちろん、それに多くの作業を行えば、自社の要件に合ったものを構築できるでしょう。しかし、それには数か月の作業と何人ものエンジニアが必要です。問題を抱えているときに、これだけの貴重な時間とリソースを費やすことは合理的ではありません。エンジニアリングの時間は、自社独自の問題を解決するために費やすべきです。」
Cruise Automation 社について
Cruise 社は、世界最高レベルの自動運転車の開発を進めており、優れたエクスペリエンスで、ユーザーを安全に目的地に移動させることを目的としています。