CircleCI +

CircleCIは複数プラットフォームのCI環境統一に最適

CI環境をCircleCIに統一したことでノウハウの共有を実現

CI環境をCircleCIに統一したことでノウハウの共有を実現

スタディプラスは学習者向けに「Studyplus」、教育機関向けに「Studyplus for School」を提供している。「Studyplus」は学習時間を可視化し、友達同士で励まし合うなど、学習の習慣化を支援する。今では受験生にはお馴染みのアプリとなり、2020年1月には累計登録者数が500万人を超えた。「Studyplus for School」は教師が在籍生徒の学習状況を把握し、生徒とのコミュニケーション促進に役立てている。また、大学受験生向けに電子参考書のサブスクリプションサービス「ポルト」を展開している。

スタディプラスでは、サーバーサイドの開発でCircleCIの導入が始まり、次にiOSアプリ開発でもCircleCIを採用することとなった。新規事業開発やiOSアプリ開発に携わる須藤氏によると、「iOSアプリの開発では、CircleCIを導入する以前のCIはローカル環境で、かつ手動で行っていました。自動化するにあたり、社内でCIサービスを乱立させた運用をしたくないということと、会計処理をまとめるほうが面倒が少ないだろうということで、サーバーサイド側ですでに導入していたCircleCIを選択しました。」(須藤氏)

その後、別のCIサービスを使っていたAndroidアプリ開発もCircleCIへと移行した。Androidチームの若宮氏はCircleCI導入に至る経緯を次のように話す。「一週間で大枠の移行を終え、それからキャッシュの調整などを一ヶ月ほど行いました。移行の理由として、CI環境がチームによって分断されていることで、CI環境に対する投資対効果が低いと感じていました。CircleCI の conifg.yml を書くときにiOSチームの記述を参考にしたので、ノウハウの共有ができていると感じます。」(若宮氏)

社内でCI環境が統一されることのメリットは須藤氏も言及している。「一つの画面を見るだけで弊社のプロダクトのCIの動きがすべてわかります。一部のエンジニアは複数のプロダクトを並行して見なければいけないことがあるのですが、その時に複数のCIサービスを切り替えて確認するのはとても面倒です。CI環境が統一されていれば、config.yml の書き方も共通しているので楽になります。」(須藤氏)


「CircleCIは特定のプラットフォームに特化していることがなくて使いやすく、契約プランの内容も分かりやすいので、弊社のように複数のプラットフォームで展開している会社が一つのCIサービスに収めたい場合にCircleCIは最もバランスが良いと感じました。」

島田喜裕 氏
Studyplus | CTO

「iOSアプリの開発では、CircleCIを導入する以前のCIはローカル環境で、かつ手動で行っていました。自動化するにあたり、社内でCIサービスを乱立させた運用をしたくないということと、会計処理をまとめるほうが面倒が少ないだろうということで、サーバーサイド側ですでに導入していたCircleCIを選択しました。」

須藤将史 氏
Studyplus | 事業本部 開発部 iOSエンジニア

「Androidアプリのアーキテクチャを変更した際に、使用するメモリ領域が大きくなったためにOOM(メモリ不足)が発生してビルドが通らないことがありました。その時にリソースクラスを変更することで対応できました。」

若宮浩司 氏
Studyplus | 事業本部 開発部 Androidエンジニア


Flutterやfastlaneといったモバイル開発独自の環境にも対応

スタディプラスのAndroidアプリ開発では、Flutter、fastlaneといったツールを利用している。それらのツールをCircleCIで利用する場面を聞いてみた。「Flutterのときに config.yml に一行書くだけで公開されているDockerイメージを利用することができ、その環境で CI を走らせられるのはかなり楽です」と須藤氏は語る。

若宮氏もモバイル開発ツールをCircleCI上で使用するケースに触れて「Androidアプリ開発でもRuby製ツールであるfastlaneを使っているのですが、CircleCIで提供されているDockerイメージにRubyがプリインストールされているのですぐに動かせますし、パス指定することでキャッシュの利用もスムースです」と話す。Docker をサポートしていることで様々な技術に対応したCI環境を柔軟に構築できるという CircleCI の長所が活かされている。

ビルド時間、テスト時間が半減 CircleCI で統一して効率化

スタディプラスでは、CircleCI のサービスプランのうち、 Performance プランを利用している。Performanceプランは大量のコンテナを割り当てられるので並列処理の能力が高く、ビルドのキューが詰まって待ち時間が発生してしまうこともない。開発者の生産性向上には最適なプランとなっている。また、Docker Layer Caching やリソースクラスといった Performance プラン専用の機能も存在する。

リソースクラスは、より上位のマシンスペックでジョブを実行する機能だが、スタディプラスでも活用されている。「Androidアプリのアーキテクチャを変更した際に、使用するメモリ領域が大きくなったためにOOM(メモリ不足)が発生してビルドが通らないことがありました。その時にリソースクラスを変更することで対応できました。」(若宮氏)

また、島田氏は「Performance プランは他のサービスと比べて費用構成が明朗だと感じました。また、GitHubのOrganizationのユーザー権限をそのまま使えるのは便利だと思いました。」と語る。そして、CircleCIの導入を振り返り、「CircleCIは特定のプラットフォームに特化していることがなくて使いやすく、契約プランの内容も分かりやすいので、弊社のように複数のプラットフォームで展開している会社が一つのCIサービスに収めたい場合にCircleCIは最もバランスが良いと感じました。」と島田氏は話す。

スタディプラス株式会社について

学習者向けの学習支援サービス「Studyplus」、教育機関向けの学習管理サービス「Studyplus for School」、大学受験生向けの電子参考書のサブスクリプションサービス「ポルト」などを開発、提供。

※ 文中の役職等は取材当時のものです。

スタック

CircleCI Cloud
GitHub Cloud
AWS(S3, Route53, CloudFront, Athena, EC2, CloudSearch, Elastic Search, Kinesis, Elastic Beanstalk)

close

Thank You for Submitting Your Info


You should receive an automated response notifying you that we received your info. Someone from our Enterprise team will be reaching out to you shortly.


CircleCI Success Logo