クラウドでのソフトウェア開発では欠かせなくなってきたCI(継続的インテグレーション)を支えるツール「CircleCI」。米CircleCIのジム・ローズCEOは、複数のスタートアップを立ち上げる中、CIツールを自ら開発するようになったという。
Webからモバイルまで幅広くカバーするクラウド型CIの必要性
――まずはローズさんがCIに関わるようになった経緯を教えてください。
1998年からスタートアップをいくつか立ち上げ、数々の製品のデザインに関わってきた。こうしたスタートアップでは製品をスピーディに作って顧客に届ける必要があるため、開発に大きなプレッシャーがかかっていた。こうして15年くらいは製品をデリバリする側にいたのだが、Eコマース企業を立ち上げた際、モバイルアプリ開発でCIが必要になった。でも、よいCIツールがなかったので、自らCIツールを作り始めた。これがDistillerだ。
――当時、モバイル開発でのCIにはどのような課題があったんでしょうか?
2つの課題があった。まずはモバイルアプリ開発は異なるハードウェアをターゲットとして定めなければならないとことだ。異なるハードウェアを管理するのは困難が伴う。
もう1つの課題は、iOSの場合、マニュアルでレビューするプロセスが必ず入るということだ。たとえばアップルにアプリを提出すると、レビューの回答がくるまでに4~10日かかるのだが、1つでも不具合があると戻ってくる。ミスがあると、結局リリースが遅れてしまうのだ。だから、よいツールを使って、正しくテストを行ない、きちんと動くことを証明できなければ、アップデートすら難しい。
――モバイル開発はもちろんですが、Webの開発も重要ですよね。
2011年の創業当初は、多くの新興企業はWebファーストの方針だったが、2014年にはみんなモバイルファーストになった。そのため、CircleCIはモバイルアプリ向けのDistillerを買収し、すべてをカバーできるようにした。
もともとCircleCIの1.0は汎用的でシンプルなCIツールで、1種類のコンピュートにしかサポートしていなかった。しかし、2.0ではLinux、MacOS、Windowsなど、あらゆるコンピュート、さまざまなに対応した。また、複雑なビルドに対応するためのワークフローを追加し、複雑なパイプラインを分割してCIを管理できるようになった。今のCircleCIはクラウドサービスからモバイルまで幅広くカバーするCIプラットフォームだ。
ソフトウェア開発のクラウド化とGitの普及
――昨今のCIの市場やユーザー動向についても教えてください。
ソフトウェア開発とCIには大きな2つの変化がある。1つ目は、アプリケーションがオンプレミスからクラウドへ移行しているという点だ。これは開発者はコンピュートに即座にアクセスできるようになっていることを意味している。
2つ目はGitHubが普及したことだ。今では、多数のユーザーが開発やテストの環境を共有することで、変更のスピードが格段に速くなっている。つまり、CIシステムそのものの負荷が大きくなっているというこどだ。オンプレミスベースのJenkinsのようなCIツールでは、このスピードに付いていくのが困難になっている。インフラやオペレーションのチームは、クラウドに移行し、サードパーティのツールを使った方が簡単だ。
――開発がスピードアップし、CIの負荷も大きくなっているということですね。
そうだ。エンタープライズ企業もモノリス(単一的)なシステムからマイクロサービスに移行している。多くの開発者がDockerやKubernetisなどコンテナを利用始めている。
――こうした市場動向の中、競合ツールとの差別化を教えてください。
やはり1つのプラットフォームで、あらゆるタイプのコンピュートに対応しているので管理が1箇所で済むということだ。
以前、ほとんどのアプリケーションはカスタムで書かれていたが、今はOSSを使ったり、サードパーティのAPIを使っている。だから、自社のアプリケーションをリリースするときに、さまざまなコンポーネントの状況を知ることが重要になっている。CircleCIはクラウドネイティブであり、単一のプラットフォームでコンポーネントの関係性を管理できる。
また、CircleCIのプラットフォームと他のツールを統合してパッケージする「Orbs」というテクノロジーを持っているのもメリットだ。ユーザー自身が作ったOrbsをOrb Registryで他のユーザーに共有することもできる。
――さまざまなツールを使えるのもCircleCIのメリットですが、逆にテストやチャットなどの機能をユーザーから求められたりしませんか?
われわれはあくまでデリバリパイプラインを最適化する。ツールやテクノロジーは日進月歩で進化していくので、開発者自身がベストのツールを自由に選べるようにした。
5年前スタートアップのものだったCIがエンタープライズにも
――顧客について教えてください。
3人くらいのスタートアップから、FacebookのようなWebジャイアンツ、GMのようなグローバルエンタープライズまで幅広く導入されている。5年前、CIはスタートアップやハイテク企業しかなかったが、ほとんどの業界のエンタープライズがCIに移行するようになっている。日本ではLINE、メルカリ、サイバーエージェント、ZOZOなどが導入しているが、最近では変革を目指しているエンタープライズの導入も増えている。
――今後の進化について教えてください
今日でも多くの人がCIをツールとしか見なしていない。でも、実際は開発者自身が簡単にアプリケーションを作って、リリースできる方法論だ。ツールも重要だが、重要なのはアプリケーションがどのように構築されているかという情報を得ることだ。CircleCI上ではうまくいくのか、いかないのかをいち早く知ることで、ソフトウェア開発のプラクティスを変えることになる。