Kubernetesベースの最新CI環境を確立 エンジニアの声に応えつつ、管理の負担も低減
LINEの大規模な開発体制を支えるCI/CD
国内9,000万人(2021年12月時点)が利用するコミュニケーションアプリ「LINE」をはじめ、ニュース、決済、マンガなどの多彩なサービスを展開するLINE。サービスの開発体制は巨大で、日々のビルドは4,500〜6,000回にも及ぶという。
そんな同社が、システム開発の生産性を向上するために必要不可欠と考えているのがCI/CDである。できるだけ外部に依存せず自社内でアプリ開発を完結させること、および全社のセキュリティポリシーを満たすという要件に基づき、長年、オンプレミス版である「CircleCI Server」を活用。かねて導入していた他のCIツールとともに、個々の開発チーム/開発者が用途や目的に合わせて選択できるようにしている。さらにCD領域では独自ツールを内製で開発し、活用しているという。
「サービスリリースの迅速化はもちろん、開発体制が大規模になるほど、属人化の回避や人的ミスの削減が重要な課題になります。これらを実現する上で、CI/CDは不可欠なものです」と同社の北村壮大氏は語る。
CircleCIを採用した最大の理由は、高い管理性だった。複数のテストジョブのパイプラインをYAMLで簡単に設定し、ソースコードと同じリポジトリで管理できる。これにより、以降のCIの設定変更やプルリクエストなどのレビューが行いやすくなる。さらに、過去の変更履歴がすぐ参照できる点も評価したという。
一方、さらなる活用拡大に向けては叶えたい要望もあった。
例えば、OSの環境依存からの解放。これまで同社が利用してきたCircleCI Server version 2で は、iOS用アプリの開発に必須となるmacOS上でのビルドが行えなかった。また、エンジニアの中には、構成をパッケージ化して再利用可能にする「CircleCI Orbs」を使いたいという声もあったという。「当時は、いずれもクラウド版(CircleCI Cloud)のみに実装された機能だったため、当社では使えませんでした。そのため、iOS用アプリのテストなどは、別環境で実施する必要がありました」と北村氏は振り返る。
CircleCIの手厚い支援の下で新バージョンへ移行
新たに発表されたCircleCI Server version 3では、システムアーキテクチャがKubernetesベースへ全面的に刷新され、クラウド版と同一になった。これにより、各種機能もクラウド版と同様のスピード感で実装されるようになっている。この情報を入手したLINEは、CircleCI Serverの新バージョンへアップグレードを決断した。
「CircleCIがリリースする最新機能をクラウド版と同じタイミングで使えるようになることは、エンジニアにとって大きなメリットだと感じました」と北村氏は理由を述べる。
運用管理面でもメリットがあると判断した。LINEでは、社内の別システムでもKubernetesの活用を強力に推進している。プライベートクラウド環境にKubernetesクラスタを構築し、必要に応じて使えるようにする“Kubernetes as a Service”を実現。この環境を基に、ユーザーへの迅速なサービス提供などを具現化しているという。
「一方、従来はそれらの環境とCircleCI Serverの環境が異なっていたため、管理者側には特殊な運用作業が発生していました。CircleCI Serverをアップグレードすれば、同じKubernetesベースになり、同様の管理が可能になると考えました」(北村氏)
アップグレードに当たっては、移行の手順や所要時間を確認したのはもちろん、CircleCI Server version 3の検証環境も立ち上げて入念なチェックを実施した。様々な操作パターンを試して動作を確認し、その結果をドキュメントにまとめた上で本番の移行作業に臨んだという。
加えて、このプロセスで役立ったのがCircleCIのサポートである。「様々な問い合わせに対し、メールやリモート会議で的確な回答をすぐ返してくれました。本番移行の当日も、万一のトラブルに備えてCircleCIのエンジニアがリモート接続で待機してくれました。結果、大きな問題はなく終えられ、とても安心して作業を進めることができました」と北村氏は強調する。
エンジニアの求めに応えるCI環境を実現
こうしてLINEはCircleCI Server version 3の利用を開始した。エンジニアから要望が出ていたmacOS上でのビルドやCircleCI Orbsの活用はいずれも可能になった。これにより、一層多様な開発現場のニーズに応えられるCIの仕組みが実現できている。
「特にCircleCI Orbsはエンジニアが続々と使い始めているようです。また、以前はJenkinsで行っていたmacOS上でのビルドを、CircleCIで実施するエンジニアも出てきています」と北村氏は紹介する。
システムのスケールアウトも容易になった。従来、「テストジョブのパイプライン数を増やす」などのスケールアウトを行う際はいくつかの操作が必要で、準備には数日から1週間程度かかっていた。それが現在は、Kubernetesクラスタと社内ネットワーク内で柔軟なスケーリングが可能になっている。「今後、さらにテストのワークロードが増えても、1~2時間あれば対応できるはずです」と北村氏は言う。
なお、CircleCI Server version 2とversion 3ではアーキテクチャが大きく異なるため、導入/アップグレードに不安を感じる企業もあるだろう。また、Kubernetesの運用に向けてはコンテナなどの技術の理解も必要になる。「しかし、裏を返せば、これは“今どき”のアーキテクチャを自社システムに取り入れる絶好のチャンスといえます。紹介した通り、導入に当たってはCircleCIの親身なサポートが後ろ盾となってくれるため、過度に不安を感じる必要はないと思います」と北村氏は述べる。
ほかにもCircleCI Server version 3では、ワークフローのスケジュール実行やマトリックスジョブなど、多彩な最新機能をフル活用できる。格段に強化されたCI/CD環境が、よりユーザー満足度の高いサービスを目指すLINEのビジネスを支えている。
「CircleCI Server version 3 への本番移行の当日も、CircleCIは万一のトラブルに備えてリモート会議ツールで待機してくれました。」
北村 壮大 氏 | Engineering Infrastructure室 | LINE
LINE株式会社について
コミュニケーションアプリ「LINE」を機軸として、コミュニケーション・コンテンツ・エンターテイメントなどモバイルに特化した各種サービスの開発・運営・広告事業を展開。加えてFintech事業、AI事業も展開する。ミッションに「CLOSING THE DISTANCE」を掲げ、世界中の人と人、人と情報・サービスとの距離を縮めることを目指す。