Google Cloud Platform

株式会社テレビ朝日の導入事例: ニュースポータル「favclip」の先進的な開発環境を Google App Engine が支える

“日々のネタモトになるニュースを配信するポータル”として、テレビ朝日が運営中のポータルサイト「favclip(ファブクリップ)」。エンタメやファッション、グルメなど、多くの人が話のタネに使える小ネタを記事や動画などのかたちで配信している人気サービスです(2014 年 8 月よりサービス開始)。今回は、この favclip にどのようなかたちで Google Cloud Platform が活用されているのか、プロジェクトを指揮するテレビ朝日 総合ビジネス局 デジタル事業センター・中村敦さんに聞いてきました。

H7Q9647.jpg

■ インタビュー

株式会社テレビ朝日
総合ビジネス局 デジタル事業センター
中村敦さん

■ 利用中の Google  Cloud Platform サービス
Google App EngineGoogle BigQuery など

「実は現在の favclip はシステム的には 4 世代目。その最初から Google Cloud Platform を使い続けているんですよ。その都度、サービスの状況に合わせて大きく機能強化してきたのですが、特に最新世代ではベンダーからの薦めもあって、Google App Engine(GAE)/Go 環境に移行しています」(中村さん)

GAE/Go を選んだ最大の理由は、インフラに人員を割きたくなかったからだと言う中村さん。それまでは手動でスケールするようにしていたそうなのですが、GAE/Go ならミリ秒単位でのオートスケールが可能に(これまでの仕組みでは早くても数十秒、場合によっては 10 分近くかかることもあったそうです)。これが決め手となりました。

「我々のようなニュースサイトはアクセスのピークを読むのがとても難しいんです。例えば人気のライブ放送などを始まると同時アクセス数が一気に数十倍に膨れあがったりします。しかし、これなどまだわかりやすいほう。ライブ番組なら終われば、それと同時にアクセスも収まりますからね。そうではない突発的なアクセス急増にも対応できる仕組みが必要でした。特に重要だったのが、いつスケールアウトするか。従来ですと、これを読み切れず、いつまでもスケールアップしっぱなしになってしまいがちでした」(中村さん)

eDXn1bbIKw3r8uVySEgNBIfbOk3-ugzLZydgyst6CGaEkp8R-jID2ewW4mV7XSbq7oR0Ys-LopUIDU2uiB-AARduGsvPUUzfXiaACCP2wPlYdZbS-Jz1-3CTW0Ikf_lOjD0UEHfOp7r8.JPEG

現在はピーク時に 2 万弱もの同時リクエストが発生するそうですが、GAE/Go へ移行してから約 2 年間、システムがダウンしたということはないそうです。また、いざと言う時に備えておく必要がなくなったこと(アクセス数の低下に合わせて、即座にスケールアウトできるようになったこと)で、費用的にも「めちゃくちゃ減った(笑)」(中村さん)とのこと。具体的な費用は明かせないものの、最大で約 20 分の 1 程度になっているのではないかと語ってくれました。

さて、そんな favclip の開発チームにはユニークなポリシーがあります。それは、“先進的なことをすごい速度でやっていく”というもの。中村さん曰く、「僕がここ数年心がけているのは、何かの機能やサービスを生み出すことを目的にするのではなく、それを高レベルに、高速に生み出せる“チーム”を作ることなんです」。

例えば、そのために、作った人がテストをするというこれまでの当り前を覆し、テスト専用のチームを作り、その連携をシンプルにするルール作りを徹底しました。エンジニアが機能をテストサーバーに実装すると、即座にテストチームに作業とドキュメントが引き継がれ、一言もやり取りすることなくテストが開始される仕組みを作ったことで、優秀なエンジニアが、煩雑なテスト作業に囚われず、どんどん新機能を開発していけるようになったそうです。

「こういう開発をしていると、やっている最中からどんどん機能の追加が来てしまい、収集がつかなくなってしまいがち。ただ、それを嘆いても始まりません。それに対応できるチームを作り上げ、作った機能をためずにどんどん出していくようにしています。そして、この際、役立ったのが、GAE の先進的な仕組みの数々。例えば、ローリングアップデートなどは、今のやり方においてとても役立っています。GAE と BigQuery で簡単にログの連携ができるので、問題点の原因究明が簡単になったことも大きな負荷軽減になっています」(中村さん)

a9P_PUwfopLthful_B0m7zZxmwytO0ZJKMwLEZN9XIOsOL3iu2X1M3ByL3DTvE_K4EEiZs1lMsiUVCUUpdSF0LCPTHxiF5PJb2JyFyblAoOb9xrgfjblz7cXOsayXo0HpYsDLr3Evdy5.JPEG

また、エンジニアのモチベーションを高めるために、作ったライブラリなどをオープンソースで公開するなどといった試みも行っています。「ucon」「testerator」など、すでにいくつものライブラリを favclip 名義で公開中。「最近は使ってくれる人も増えてきています。自分たちで必要だから作ったものなのですが、こうして広く活用していただけるのは、とてもうれしいことですね」(中村さん)

先進的なサービスを生み出すために「3 年後の当り前を選んでチャレンジしていく」という中村さん。今後は、Progressive Web Apps(PWA)や、Angular2 などにも積極的に挑戦していきたいとのこと。また、先日オープンしたばかりの、Google Cloud Platform 東京リージョン移行も前向きに検討中とのことです。「皆、同じ事を考えていると思うのですが、さくっと移行できるツールが欲しいので、ぜひ(笑)」(中村さん)