田辺大樹のブログ。それゆけ東京起業家物語

利用者600万人のWebサービスをCakePHPからLaravelに移行した話

2017年07月24日

こんにちは。

今年の5月にciatr[シアター]の大きなシステムの移行を行ったのでその時の話をしたいと思います。

最近『Laravel Meetup Tokyo』という開発者向けのイベントで5分ほど話をさせてもらった内容となります。

はじめに

私が大学を卒業する直前である2012年3月にviviane社を設立し、そこからciatrというサービスはスタートしました。「いつでも面白い作品と出会える場所」を作りたいと考えスタートしました。

最初は「気になる作品をメモする」というニーズにフォーカスして、観た映画や観たいと思った映画をメモできる映画レビューサービスの開発をCakePHPで行っていました。しかし、「面白い作品について知りたい」というニーズのほうが圧倒的に大きく、当時は売上もまったくない状態だったので、会社存続のためにも大きなニーズである「作品について知りたい」というニーズに応えるのが急務だという決断に至りました。

そこで開発コストや素早くニーズの検証をする必要があるということで、WordPressを利用してメディアもスタートしたのです。

ユーザーからは何の違和感もなく使えるように、ということで、CakePHPとWordPressの融合が始まりました。これが後にエンジニアを苦しめることになっていきます……。

Laravelの採用:サービス利用者が増え、問題が顕在化

初期にスポットで手伝ってくれていたエンジニアが既にいなくなっており、古いコードを把握している人が社内にいない中、利用者数は伸び続け、2016年にはアクセスが集中する時間帯にはサーバがダウンすることが頻発するようになっていました。

しかしWordPressが原因なのか、CakePHPが原因なのかなど原因特定することも困難となっていました。当然ながら新規の機能追加も難しい状態となっていたのです。

そこで、長期的に今後もスケールさせていくことを考慮して、サービスの大規模なリニューアルを決定しました。となると、技術選定においても長期的に使われる技術を採用したいということで、様々なプログラム言語やフレームワークを検討しましたが、Laravelを採用することになったのです。

Laravelを導入するまで

Laravelを採用した理由としては、大きく3つありました。
・コミュニティが活発だった
・設計や思想が非常にモダンだった
・かゆいところに手が届く機能が多く、少人数かつスピードが重要なベンチャーにも向いていそうだった

とはいえ当時で既にciatrは月間1000万PV以上のサービスに成長しており、複雑となってしまったシステムを置き換えるのは簡単なことではありませんでした。かつ、社内でLaravelに慣れる必要もありました。

そこでまずは管理画面のような小さなプロジェクトからLaravelを導入することにしました。小さなプロジェクトで開始することはメリットが多くあり非常に良かったです。
・小さなプロジェクトなのでリスクコントロールしやすい、自由に開発できる
・実際のプロダクトなので実戦経験を積める、実務レベルでフレームワークの設計思想を徐々に理解できた

という感じで小さなプロジェクトで実際に取り入れるのは非常に良かったです。現在のciatrはLaravelで実際に動いています!

おわりに

ということで非常にざっくりですがLaravelの弊社での事例を紹介させていただきました。弊社では引き続き、Laravelでciatrを開発していきます!(エンジニアも絶賛募集していますので、一緒に爆速で開発していきたい方はぜひお気軽にご連絡ください)

私自身は現在は直接開発はしていないのですが、開発チームからもLaravelが好評なので、今後もLaravelの代表的な事例になれるようガシガシ成長させていきます。