40分かかっていたテストを15分に アプリの改善リードタイムを大幅に短縮
すべての開発プロジェクトにCIを導入
約10万社が利用する建築・建設業向けプロジェクト管理サービス「ANDPAD」。施工現場で必要な情報を、いつでも・どこでも確認・共有できるこのサービスを開発・運営しているのがアンドパッドだ。「幸せを築く人を、幸せに。」をミッションに、建設現場における業務の見える化・効率化を支援している。また、2021年5月には建設業法・電子帳簿保存法など関連法令に対応した電子受発注システム「ANDPAD受発注」もリリース。これまでと違う角度からも、建設現場の生産性向上に貢献していく。
これらのアプリやサービスを迅速にリリースし、継続的に機能強化や操作性の改善を図っていく上で欠かせないのが、CI/CDのアプローチだ。
「『100%自社開発』を標榜する当社にとって、CI/CDはプロダクト品質を担保する上で不可欠の取り組みです。特にCIは2018年頃から採用しており、現在はWebアプリからクラウドネイティブアプリまで、すべての開発プロジェクトで導入しています」とアンドパッドの鈴木心之介氏は語る。
CI導入が進めば進むほどユニットテストの件数は増加していく。そのため開発効率化に向けては、1回当たりのCI実行時間をできる限り短縮する必要があった。
「かつては完全マネージド型のビルドサービスである『AWS CodeBuild』を活用していました。このサービスは分単位の従量課金制なので、テスト件数の増減にあわせたコスト最適化が図れます。同時に、テストプログラムもチューニングすることで、それまで1回当たりに1時間以上を要していたユニットテストを40分程度まで短縮できました」と同社の佐藤竜之介氏は振り返る。
だが、さらに開発案件が増える中ではテストのカバレッジも増大。ふたたびテスト1回当たりの時間・コストが増大し始めた。さまざまな工夫を凝らしてきた同社も、さすがに手詰まりを感じ、別の方法を検討する必要性に迫られたという。
多くのテストの並列処理が可能だと判断
そこで導入したのがCircleCIである。
実はアンドパッドでは、AWS CodeBuildの導入以前にCircleCIを利用した経験があった。ただ、当時提供されていたプランではコンテナの同時実行可能数が少なく、デプロイの前日などにGitHubに駆け込みで Pull Requestが大量に積まれ、数時間待ちの“CI渋滞”が発生していたという。
「ただ、プラン以外の、CircleCIの機能や性能に不満はありませんでした。現在のプラン『Performance』ではコストを抑えながら大量のコンテナを割り合てられるようになっています。これなら、当社が求める並列処理能力を得ることができると考え、ふたたびCircleCIを利用することにしたのです」と佐藤氏。また同社は、コードの静的解析や開発ドキュメントの生成・デプロイには変わらずCircleCIを利用し続けていた。それらのプロセスとサービスを統一できることも後押しになったという。
「アプリの質を高め、お客様により良いサービス価値を還元していくには、エンジニアにとってベストなCI基盤を追い求め、ユニットテストを充実させる必要があります。その時々でベストな環境を柔軟に選択し、活用することが、最終的なユーザー満足度の向上につながると当社は考えているのです」と鈴木氏は強調する。
CIの平均実行時間を約15分に短縮
現在は、Ruby / Go / Vue.js / Reactといった開発言語を用いて、iOSおよびAndroid向けの各種プロダクトを開発している。CircleCIは、そのほぼすべてのユニットテストで活用されているという。
「導入・運用に当たっては、参考になるユースケースがCircleCI社から多数公開されています。おかげで新たなサービスを立ち上げる際もスムーズに導入できており、開発の信頼性を高めることができています」(鈴木氏)。社内の運用ナレッジも徐々に蓄積されている。例えば、並列化やローカルキャッシュ、Orbsなど、より高速にCIを実行するための仕組みがCircleCIには多数実装されているが、これらの機能の活用も広がっているという。
「現在、CIの平均実行時間は15分程度になっています。その結果、Pull Requestのマージも迅速に行えるようになり、開発効率が高まりました。特に並列化の最適化をワンライナーで実行できるようになったことは、プロダクト開発全体に大きな恩恵を与えています」と同社の木村勇太氏は説明する。顧客向けのサービス改善リードタイムも短縮傾向に あるといい、ひいてはこれがユーザー満足度の向上にもつながっていくはずだ。
さらに、こうしたCIの高速化は、開発チームメンバーのモチベーション向上にも寄与している。
「CI機能に特化したツールならではの使い勝手の良さをとても気に入っています。エンジニアの間にも、『自分たちで主体的にテストを実施していこう』『サイト信頼性エンジニアリング(SRE)のメンバーに負担をかけずに、自立してサービス品質の改善を進めよう』といった前向きな意識が広がっているように感じます」と佐藤氏は語る。
有償サポートも利用して一層の活用拡大を図る
今後もアンドパッドはCircleCI社との連携を強化しつつ、CI基盤のさらなる高度化を推進していく。その際、注目しているのが、CircleCI社が提供する有償の「プレミアムサポート」だ。専任のカスタマーサクセスマネージャーが付き、問い合わせ対応の速度にもサービス品質保証(SLA)を設けている。
「万一、CI基盤に何らかのトラブルが起こった場合、早期復旧を図るための後ろ盾になるのはベンダーのサポートにほかなりません。また、将来的にはリポジトリをまたいだワークフローを構築したいという思いを持っていますが、このような他社であまり実績のない活用方法にチャレンジする際も、ベンダーからの情報提供や技術面のアドバイスは不可欠になるでしょう」と鈴木氏は期待を込める。すでにサービスの契約を結んでおり、機会があれば活用していく予定だという。
さらにアンドパッドは現在、サービス規模の拡大にあわせた開発効率向上を図るため、開発基盤全体のマイクロサービス化を検討している。これを実現するには、マイクロサービス同士を結合した状態でのCI運用ノウハウが必須になる。「これも、CircleCI社との緊密なコミュニケーションのもとで進めていければありがたいですね。引き続き、サービス向上に向けた相談に乗ってもらえればと思います」と鈴木氏は最後に語った。
「もしもCircleCIを利用していなければ、 アプリケーション規模の拡大に伴って増加する テストに膨大な時間を要してしまって、 開発効率は著しく下がっていたでしょう。」
木村 勇太 氏 | SWEセキュリティチームリーダー | ANDPAD
株式会社アンドパッド
「ANDPAD」 は、現場の効率化から経営改善まで一元管理していただけるシェアNo.1※クラウド型建設プロジェクト管理サービス。2016年のサービスリリース以来、直感的で使いやすさにこだわった開発と導入・活用への徹底したサポートで利用社数100,000社を超えている。国土交通省のNETIS(新技術情報提供システム)にも登録されており、26万人以上の建設・建築関係者が利用しているクラウド型建設プロジェクト管理サービスとなっている。 ※「クラウド型施工管理サービスの市場動向とベンダーシェア」(デロイト トーマツ ミック経済研究所調べ)