CodeZine(コードジン)

特集ページ一覧

【デブサミ2016】18-A-1レポート
ヤフーCTOが語る、Yahoo! JAPANのテクノロジー20年の軌跡と未来への挑戦

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/03/16 14:00

 日本最大級のポータルサイトYahoo! JAPAN(ヤフー)。20年にわたり、社会の課題をITの力で解決する「課題解決エンジン」として、時代に即した様々なテクノロジーやサービスを提供し続けてきた。そして近年、業界はもちろん、様々な社会の変化が加速度的に進み、また新たなテクノロジーが求められている。そうしたニーズにヤフーがどのように応え、エンジニア集団としてどこを目指すのか。同社CTOの藤門千明氏が「今後のヤフー」について語った。

ヤフー株式会社 CTO 藤門千明氏
ヤフー株式会社 CTO 藤門千明氏

コテコテ純日本のクリエイター集団「ヤフー」

 日本屈指のインターネットサービスとして知られる「ヤフー」だが、意外にカンファレンスなどでの登壇も少なく、その実態について誤解する人も多いのではないだろうか。たとえば、あるときはpingの発射先として認識され、米国ヤフーの日本法人と思われ、開発を自社で行わないビジネス企業と捉えられる。さらには米国のサービスを日本に普及させるビジネスモデルであり、独自開発を主としていると思われがちだ。

 しかし、実のところは「コテコテの日本企業」であり、社員の約半数である2500人がエンジニアやデザイナーというクリエイター集団だという。そして彼らが開発するのは数々の独自サービスであり、基本的にはオープンソースを活用し、OpenStackなどのオープンソースコミュニティにもコントリビューターとして積極的に参画している。そんなヤフーの技術力と“エキサイティングさ”を伝えたいと同社CTOの藤門千明氏は語る。

 確かに、月間631億以上のPV、一日8300万以上のユニークブラウザ、そして月間アクティブユーザーIDは3100万とサービス規模は日本最大級。月間有料会員1600万ID、サービスは100以上を数え、アプリについては数えられないほど。その成長ぶりは、20年間で月間総ページビューは6000倍以上になり、その半数以上がスマートフォンからのものになっている。さらに2014年より2年連続でスマホアプリ(※ゲームアプリを除く)のパブリッシャーNo.1を獲得しており、藤門氏は「近年、着実にスマホシフトが進み、既におよそ6割のDUB(デイリーユニークブラウザ)がスマートフォン経由となっている」と語る。

自社サービスはファシリティからHTTPキャッシュまで全てを開発

 そんなヤフーのサービスは、どのような技術で構築され、運用されているのか。藤門氏は、ファシリティから、インフラ、ミドルウェアやサービングエンジンまで、いわば下から上までトータルに開発し、それぞれの強みを発揮しているという。

どんな技術で運営しているのか(インターネットサービス)
どんな技術で運営しているのか(インターネットサービス)

 ファシリティとしては、日本4カ所と米国ワシントン州にデータセンターを持ち、帯域400Gbps、平均200Gbpsの環境を運営する。また、OSは近年になってCentOS(RHEL)、そして6万台以上の物理マシンに加え、OpenStackをベースとしたプライベートクラウドを組み、仮想マシンとして活用している。

 「当初は全て自分たちで構築をしていたのですが、そのうちどんどん手が回らなくなってきました。そこで2013年よりクラウドの基本機能についてはOpenStackを導入してコミュニティによるグロースを促進し、ストレージはどうするのか、ACLをどう設定するのかといった不足分はベンダーと共同開発しました。そして、それでも不足する部分についてはヤフー独自の機能として開発する。それを戦略的に行ってきたわけです」(藤門氏)

 その結果、8万台以上のVMへ到達。ヤフー独自機能に注力し、OSSコミュニティを活性化し、現在では社内のほとんどのサービスで活用されているという。

 また、その上の開発ツールについてもまたDevOpsの開発ツールが一式揃っている。Jenkinsなどを活用した継続的インテグレーション(CI)の仕組みが整っており、さらに継続的デリバリー(CD)ではChefなどを使って構成管理し、デプロイするといった開発スタイルを実現している。すべてがこれに則っているわけではなく、「これから2000人のエンジニアがこれに乗ろうというステイタス」(藤門氏)だという。

どんな技術で運営しているのか(開発ツール)
どんな技術で運営しているのか(開発ツール)

 プログラム言語については、サービスが複数のビジネス分野にまたがること、エンジニアによって好き嫌いがあることなどから、選定には苦慮するものだ。そこで、ヤフーでは、言語の選定基準として「メンテナンス、学習コストを最小化すること」「オープンソースとの親和性」「過去のソフトウェア資産の活用」の3点を明確に定め、それに基づき選定している。WebサーバはPHP、サーバサイドのJavaScriptに対応、ビッグデータやコンピューティングリソースが必要な場合はCや C++、Javaを使っているという。

 また、Webサーバも同様に選定が難しいものだが、安定性やパフォーマンス、セキュリティを考慮してApacheやNode.js、Jettyを採用。さらに安定性とパフォーマンスを意図して独自のパッチをあてているため、社内では、ApacheはyApache、Node.jsはyNode.jsと呼ばれている。

 HTTPキャッシュについては、画像やスタイルシート等をWebサーバ側から配信するとコストがかかるためCDNを経由している。さらに天気やファイナンスといったサービスもTraffic Serverを挟んで提供されている。そうしているのはWebサーバへの大量のリクエスト集中や、ヤフー砲からの防御のためだ。また、オブジェクトストレージ、プッシュ通知や認証、セキュリティといったヤフー全体を支えるプラットフォームも自前で用意している。

 「技術的リソースを一部に特化するより、全体を自社で開発することで、たとえサービスダウンした際にも、自らの責任のもと復旧できるようにという思いがあります。そして、これらのテクノロジーをトップダウンで決めるのではなく、新卒からベテランまでプルリクエストで意見を交換し、クリエイターが議論して決めていく仕組みがあります。そこに大きな意味があると考えています」(藤門氏)

20周年を迎え、新たな挑戦へ

 こうしたクリエイターの切磋琢磨によって、2016年4月には20周年を迎えるヤフー。業界編成が著しいネット業界内では長寿といえるだろう。藤門氏はそれまでの軌跡を、テクノロジースタックによって紹介。IAサーバを入手するのが困難だった創業直後の1996年は、Filo Serverを自社で組み立てる等、手作り感満載の開発環境だったことがうかがえる。また、10年前の2006年にはOSとしてカスタマイズしたFreeBSDを使用していた。

20年前、10年前のテクノロジースタック
20年前、10年前のテクノロジースタック

 そんな技術的な変化は今も続いており、現在では前述のようなテクノロジースタックで動いているが、「もはやそれに留まらない」状況になりつつあるという。たとえば、IoTや開発のプロセス、プライバシーやセキュリティ、ユーザーやクラッシュの解析など、ヤフーのサービスのためには、ありとあらゆる技術の活用が必要だ。

 藤門氏は「正直、今の技術、今の状況が創業当時に見えていれば、もっとよいヤフーになっていたかもしれません。しかし、ヤフーはとにかく目の前のユーザーの課題をとにかく解決し続けてきました」と解説し、その一例として“ログイン”の改善を目的とした紆余曲折を紹介した。

 ログインはもともと「個々のユーザーに最適なコンテンツを提供したい」「IDが必要なサービスを提供したい」といったパーソナライズを目的としていた。そこで、まず1998年には米ヤフーのログインエンジンをC++でローカライズ開発し、My Yahoo!、Yahoo!ページャー、ゲーム、掲示板をスタートさせた。そのうち、様々なWebサービスが立ち上がり、ID連携に対するニーズが高まり、2003年にはシングルサインオンによるID連携時代が始まった。さらにはWeb 2.0とよばれたマッシュアップ時代には、ヤフーのWeb APIへのニーズが高まり、2007年にはブラウザベースの認証APIが実装される。いわゆる「ログインボタン」のはじまりである。まだこのときは、ヤフー以外にもGoogleはAuthSub、AOLはOpenAuthといったように各社独自路線を走ることになる。そしてiPhoneの登場、普及とともに、2008年にはアプリでもログインする時代が到来する。

 しかし、ユーザー側のニーズについてはほぼ対応できたといっても、サービス事業者側にとってはID事業者ごと仕様が異なるために複数IDサービスの対応が複雑化し、負担が増大していることが伺える。認証の標準仕様へのニーズが高まり、2008年には日米ヤフーでの同時リリースとともにOpenIDファウンデーション・ジャパンに加入し、標準化への活動を行うようになったという。そして、ようやく満を持して、2009年には本格的なソーシャルログインとして「OAuth」が一般化し、「〜でログイン」が流行ることになる。しかしOAuthの拡大で問題も生じているという。

 「厳密にはOpenID(認証)と OAuth(認可)で異なり、『ソーシャルログイン』ではないんです。さらには、署名の生成方法が難しく、ヤフーとしてもパートナーの導入サポートで大変難儀しました。よかれと思ったことが上手くいかないこともある」と藤門氏は振り返る。

 それでは現在、どうなってきたのか。2012年頃に認証と認可を同時にできる標準仕様として「OpenID Connect」が登場すると、ヤフーはそれまでの米ヤフーのローカライズを手放し、世界の大手ITプロバイダーの中で一番に提供を開始した。その間、PC側でも“セキュリティ4兄弟”と呼ばれる「リスクベース認証(怪しいログイン成功をユーザーに通知)」「シークレットID(Yahoo! JAPAN ID以外の文字列でログイン)」「ログインテーマ(スマートフォン時代のフィッシング対策)」「ワンタイムパスワード(メールとアプリで動く二要素認証)」などのセキュリティ技術を提供している。

ログインの歴史
ログインの歴史

 藤門氏は「ユーザーやエンジニア、パートナー等のニーズ対応を真摯に行い、ヤフーのログインをつくってきたつもりだったが、それが国内ソーシャルログインのシェアの過半数(56.5% 出典元:フィードフォース ソーシャルログイン利用率)を獲得することになり、結果として日本のログインをつくってきたことになった」と評する。さらには「ログイン=ビッグデータ」のつながりにも触れ、「その可能性を事前に予知できていれば、また違ったアプローチがあったのではないか」と語る。

 そうした20年にわたる取り組みを振り返り、藤門氏は「変わらないものはない」という実感を改めて得ることができたという。そして「その先の未来あるものを最大限に想像しておくことが重要。課題が分かってから取り組むよりも、未来を予測して取り組むことの重要性を痛感している」と語った。

 とはいえ、未来を予測することは難しい。しかし、未来の課題の予測と解決に必要なものとして、藤門氏は「陳腐化しやすい技術力よりも、陳腐化しないマインド」をあげる。そして、「チャレンジ」「オープン」「自分ごと」をヤフーのクリエイターマインドとして伝えているという。そして、そのマインド醸成のために2015年12月に開催された大決起集会の模様が紹介された。

 そして藤門氏は、ヤフーの将来の目標として「技術において世界トップ10の会社になること」を掲げた。なぜなら技術には国境がないため、ヤフーが今後さらにもっとサービスを提供し、課題解決を継続するためには「世界トップ10」が必要条件となるからだ。さらに、未来への準備として「特許戦略」や他社との連携による「オープンイノベーション」、IoT時代の到来を見越した「インフラの強化」、「基礎研究への投資」「オープンソースへの貢献」などをあげた。

 最後に藤門氏は「世界トップ10は決して無謀な目標ではない。社会の問題を解決するために、ぜひ皆さんと協力しあえれば」と会場に訴求し、セッションを終えた。

お問い合わせ

 ヤフー株式会社

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5