メニュー

テレビ朝日様

Googleソリューションの機能性、安定性が支えるWebメディアサイト「favclip」の進化。
TOPGATEの技術力が進化し続けるサイト構築に貢献

総合ビジネス局デジタル事業センター 中村 敦氏

総合ビジネス局デジタル事業センター 中村 敦氏

GAE で劇的なコスト削減を実現

favclipは「あなたのネタモトニュース」をコンセプトに株式会社テレビ朝日が運営するWebメディアサイトだ。「LoGiRL(ロガール)」「favclip(総合)」「OWARAI FAVCLIP」などの複数のポータルで構成され、最大瞬間PVは20,000を超える。現在のfavclipのバージョンは第四世代となる。

中村 敦氏
中村

第一世代で運用を開始したのは、今から約3年前。Google Apps Script で構築しました。第二世代から GCP (Google Cloud Platform) に移行して、当初はJavaの3層アーキテクチャを採用していました。favclip はニュース配信サイトなのでアクセス数が多いときと少ないときの差が大きいという特徴があります。そのため、第三世代ではスケールできるシステムを導入しました。当時Kubernetesがなかったので、Docker でスケールする仕組みを独自で開発していましたね。

第三世代でスケールの仕組みを作ったものの、運用で大きな問題を抱えていた。

中村 敦氏
中村

当時スケールは手動で実行していたので、イベントを開催するときには深夜でも早朝でも必ずエンジニアが立ち会って状況をモニタリングし、ボトルネックを解決しなくてはいけませんでした。また、アクセス数に応じたスケールアウト/インの判断が難しいという問題がありました。favclip は外部サイトにも配信するので、外部サイトのカテゴリトップで掲載されるとアクセス数が急増します。ここがピークなのか、それともこの後に総合TOPに掲載されてさらにアクセス数が増加するのか、そういった掲載のタイミングはこちらではわからない。そのためアクセス数が減少しても、インスタンスをある程度の期間確保し続ける必要がありました。こうしたインフラの保守・運用よりも、もっと機能開発にコストを配分するべきだと考えていました。

サイトを作ってそこでゴールではなく、サイトを常に進化させていく

第四世代では GAE(Google App Engine)/Go と TypeScript/AngularJS を採用。一部GAEで実現できない部分で GCE(Google Compute Engine) や、Node.js サーバーとして FE (App Engine Flexible Environment) を使用している。第四世代では GAE のオートスケール機能を利用することにより、大幅なコスト削減が実現した。

中村 敦氏
中村

いままでは手動でスケールしていたので、40秒から長いときは10分程度かかり、どうしても対応が遅れていました。それが GAE/GO の場合はミリセカンド単位でオートスケールができる。スケールイン/アウトが自動で迅速にできるようになったことで、短期間での急激なアクセス数の増減にも対応でき、コストが最大で20分の1程度にまで削減できました。エンジニアがイベントに立ち会ってスケールする作業もまったく必要なくなりましたね。

もうひとつ GAE を採用した背景として、サイトの基盤構築におけるビジョンがあった。

中村 敦氏
中村

サイトを作ってそこでゴールではなく、サイトを常に進化させていくことがビジョンとしてあります。そのため、“3年後の当たり前をやる”を基準として技術要素を採用しています。枯れて廃れる技術でも、流行の技術でもない。たとえ今はメジャーでなくても、3年後にあたりまえの存在となる技術を選択していくことが重要です。こうした“進化するサイト”を実現するためには、頻繁なリリースができる体制と、問題があった場合に直前のバージョンへ切り戻しができる仕組みが必要です。GAE はバージョンの切り替えが設定ひとつで実施でき、しかも安定して切り戻しができるので、安心してリリースできています。実は第三世代からサイトを一度も停止したことがないんですよ。こうした安定性も Google ソリューションの魅力ですね。

“3年後の当たり前”を実現する TOPGATE の技術力

GAEを採用するにあたり、開発パートナーとして TOPGATE を選定した。

中村 敦氏
中村

TOPGATE は GAE ベースのシステム構築に豊富な実績を持っていますし、なによりも評価したのは技術力ですね。抽象的なリクエストに対して、採用する技術要素と実装方法を即座に提案できる技術力があります。

第四世代のシステムは、TOPGATE と共同で構築した。

中村 敦氏
中村

機能の実装は、短期間の開発サイクルで何度もリリースするアジャイルな手法を採用していて、現在も週に3回はリリースをしています。リリースする機能の優先順位はこちらで決定しますが、TOPGATE のエンジニアは単に機能を実装するだけでなく、将来リリースする機能を考慮して正しい実装方法を提案し、正しく実装してくれます。決して小手先だけの対応はしませんね。

技術力だけではなくエンジニアの意識の高さも“進化するサイト”に貢献している。

中村 敦氏
中村

“3年後の当たり前をやる”ためには、未知の技術要素をプロダクトレベルで提供する技術力が必要です。未知の技術要素をマスターするには時間がかかるので、エンジニアはコストが高いと感じます。でも TOPGATE のエンジニアは慣れ親しんだ技術より、その技術に将来性を考慮しつつ、あえてコストをかけてでも適切な技術を選択します。こうした姿勢があるから“3年後の当たり前”を実現できるのだと思います。

さらなる改良と効率化を目指す

今後も継続してチャレンジを続け、さらなる改良と効率化を目指している。

中村 敦氏
中村

今後は Angular2 のライブラリを全面的に導入する予定です。また、東京リージョンが開設したため、そちらに移行するテストをしています。現在はUSのリージョンなので、移行後は日本国内からアクセスしたときのパフォーマンスが劇的に向上すると期待しています。また、よりよい施策が打てるように AB テストのソリューションを導入したいと考えています。いろいろソリューションはありますが、組み込みは簡単でもエンジニアやデザイナーでないと使えないものだと運用が大変です。AB テストが簡単に実施できるような仕組みを favclip のインフラに取り込みたいですね。まだ導入していませんが、Google オプティマイズ 360 にも注目しています。現在の課題は IP の固定ですね。決済サーバーと通信するためにIPを固定する必要があるのですが、GAE で対応できず、GCE で代替しています。GCE にすることでオートスケールできない分、インスタンスを冗長化させなくてはいけません。GAE で IP が固定できるようになるとさらにリソースを効率よく運用できるので今後に期待したいですね。

PAGE TOP