2016/2/18
Yahoo! JAPANが考える
テクノロジーとITエンジニアの未来
CTO 藤門 千明 ヤフー株式会社
藤門 千明 / Chiaki Fujimon
自己紹介
@mikanmarusan
ヤフー株式会社 CTO
決済・金融関連サービスの技術責任者
ヤフーを支えるプラットフォームの技術責任者
初代 黒帯
黒帯に任命されると
お手製の盾が授与
されるのがヤフー
黒帯: 専門性に優れたエキスパート人財を
認定する制度
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無
ヤフーの"リアル"を
紹介します
ヤフーの"リアル"を
紹介します
ヤフーの"リアル"を
紹介します
ヤフーの"リアル"を
紹介します
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
これからは オープンになる
ヤフーはあまり外に出てこなかった
インターネット技術に国境はない
ヤフーのエキサイティングさを伝えたい
ヤフー誤解あるある
ヤフーの間違った使い方
• pingの発射先
ヤフー誤解あるある①
米ヤフーの日本法人?
日本法人
ヤフー誤解あるある②
米ヤフーの日本法人?
日本法人 日本企業
ヤフー誤解あるある②
開発をしていない?
ビジネスが多い
ヤフー誤解あるある③
開発をしていない?
ビジネスが多い 半数がクリエイター
エンジニア
2,000人+
デザイナー
350人+
ヤフー誤解あるある③
クリエイター
2,500人
ローカライズ開発中心?
タイムマシン経営
ヤフー誤解あるある④
ローカライズ開発中心?
タイムマシン経営 独自サービス
ヤフー誤解あるある④
外部の技術を利用しない?
独自開発
ヤフー誤解あるある⑤
外部の技術を利用しない?
独自開発 オープンソース
ヤフー誤解あるある⑤
オープンソースに貢献しない?
使うだけ
git clone ...
ヤフー誤解あるある⑥
オープンソースに貢献しない?
使うだけ コントリビュート
git clone ...
ヤフー誤解あるある⑥
数字で見るヤフー
月間総ページビュー
631億以上
数字で見るヤフー①
Daily Unique Browser
8,300万ブラウザー以上
数字で見るヤフー②
月間アクティブユーザーID数
3,100万ID以上
数字で見るヤフー③
月間有料会員ID数
数字で見るヤフー⑤
1,600万ID以上
サービス
数字で見るヤフー⑥
100以上
アプリ
数字で見るヤフー⑦
たくさん
月間総ページビュー
1996.5 2015.12
約一千万
約631億
6,000倍以上 52%スマート
フォン
PC
数字で見るヤフー⑧
Daily Unique Browser
1999.9 2015.12
数百万ID
約83百万ID
10倍以上
スマート
フォン
PC
数字で見るヤフー⑨
60%
Daily Unique Browser
1999.9 2015.12
数百万ID
約83百万ID
10倍以上
スマート
フォン
PC
数字で見るヤフー⑨
60%
スマートフォンの会社
アプリパブリッシャーランキング
2014 2015
2年連続No.1
出典: App Annie Index 2014年総括、 iOSとGoogle Playの合計(日本国内)、ゲームアプリケーションを除く
数字で見るヤフー⑩
アプリパブリッシャーランキング
2014 2015
2年連続No.1
数字で見るヤフー⑩
アプリの会社
出典: App Annie Index 2014年総括、 iOSとGoogle Playの合計(日本国内)、ゲームアプリケーションを除く
どんな技術で
運営しているのか
サービングエンジン
(Webサーバランタイム)
インターネットサービス
HTTP Cache
(CDN、エッジ)
ミドルウェア、プラットフォーム
(データベース、検索インデックス、セキュリティなど)
インフラ
(OS、物理サーバ、仮想サーバ)
言語、開発ツール
(プログラミング言語、DevOps)
ファシリティ
(ハードウェア, ネットワーク)
どんな技術で運営しているのか
ファシリティ
データセンター
• 日本: 東京、大阪、九州、東北
• 海外: ワシントン州(米国)
ネットワーク
• 帯域: 400Gbps, 200Gbps+(平均)
どんな技術で運営しているのか
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
インフラ
OS
• CentOS(RHEL)
サービス提供環境
• 物理マシン: 60k+
• 仮想マシン: 80k+
• プライベートクラウド(OpenStack)
どんな技術で運営しているのか
インフラの進化(In-House時代)
クラウドの基本機能
ベンダーのマイナー機能
ヤフー独自の機能
独自開発
2013年まで
どんな技術で運営しているのか
インフラの進化(In-House時代)
クラウドの基本機能
ベンダーのマイナー機能
ヤフー独自の機能
独自開発
2013年まで
どんな技術で運営しているのか
10k VMの限界
• 運用で手一杯
• 他のOSSとの親和性が薄い
インフラの進化(OpenStack導入)
コミュニティによる
グロース
ベンダーと共同開発
独自開発
クラウドの基本機能
ベンダーのマイナー機能
ヤフー独自の機能
独自開発
2013年まで 2013年以降
どんな技術で運営しているのか
インフラの進化(OpenStack導入)
コミュニティによる
グロース
ベンダーと共同開発
独自開発
クラウドの基本機能
ベンダーのマイナー機能
ヤフー独自の機能
独自開発
2013年まで 2013年以降
どんな技術で運営しているのか
80k+ VMへ到達
• ヤフー独自機能にフォーカスできる
• OSSコミュニティを盛り上げられる
• 社内のほとんどのサービスで利用される
開発ツール
Push Build
GitHub CI as a Service
Configuration Servers Package repo
Deploy
Upload
Install
Deploy
どんな技術で運営しているのか
プログラミング言語
言語を選ぶことは難しい
• 複数のビジネス分野
• 好き嫌い(宗教戦争)
ヤフーの言語の選定基準
• メンテナンス、学習コストを最小化する
• オープンソースとの親和性
• 過去のソフトウェア資産の活用
どんな技術で運営しているのか
プログラミング言語
Web
• PHP, JavaScript
コンピューティング
• C, C++, Java
どんな技術で運営しているのか
Webサーバ
Webサーバを選ぶことは難しい
• 宗教(略
ヤフーのWebサーバの選定基準
• 安定性、パフォーマンス
• セキュリティ
どんな技術で運営しているのか
Webサーバ
Webサーバ
• Apache
• Node.js
• Jetty
安定性とパフォーマンスのためのカスタマイズ
• Apache→yApache
• Node.js→yNode.js
• …
どんな技術で運営しているのか
HTTP Cache
サービスの
オリジンサーバー
CDN(*.yimg.jp)
どんな技術で運営しているのか
静的コンテンツの高速配信
大量リクエストからWebサーバを保護
画像/CSS/JS
*.yahoo.co.jp
プラットフォーム
オブジェクトストレージ Web2App/App2App
通知 認証
どんな技術で運営しているのか
サービングエンジン
(Apache, node.js, Jetty)
ヤフーテクノロジースタック
HTTP Cache
(Apache Traffic Server, Nginx)
ミドルウェア、プラットフォーム
(RDBMS, オブジェクトストレージ, アプリ系、セキュリティ)
インフラ
(RHEL, OpenStack, 物理サーバ, 仮想化技術)
言語、開発ツール
(C, C++, PHP, Java, JavaScript, GitHub, Chef, Jenkins, ...)
ファシリティ
(データセンター, ネットワーク)
どんな技術で運営しているのか
サービングエンジン
(Apache, node.js, Jetty)
ヤフーテクノロジースタック
HTTP Cache
(Apache Traffic Server, Nginx)
ミドルウェア、プラットフォーム
(RDBMS, オブジェクトストレージ, アプリ系、セキュリティ)
インフラ
(RHEL, OpenStack, 物理サーバ, 仮想化技術)
言語、開発ツール
(C, C++, PHP, Java, JavaScript, GitHub, Chef, Jenkins, ...)
ファシリティ
(データセンター, ネットワーク)
どんな技術で運営しているのか
総合的な取り組み
これらを支えるのが
約2,500人のクリエイター
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
プルリクする
どんな技術で運営しているのか
利用する技術を議論して決める
これからのヤフーの技術
ヤフーは4月に20歳になります
これからのヤフーの技術
20年前(1996年)
Windows95
が発売された頃
これからのヤフーの技術
サービングエンジン
(Filo CGI, node.js, Jetty)
20年前のテクノロジースタック
HTTP Cache
(Apache Traffic Server, Nginx)
ミドルウェア、プラットフォーム
(RDBMS, オブジェクトストレージ, アプリ系、セキュリティ)
インフラ
(UnixWare, OpenStack, Filo Server, 仮想化技術)
言語、開発ツール
(C, C++, PHP, Java, JavaScript, GitHub, Chef, Jenkins, ...)
ファシリティ
(データセンター, ネットワーク)
これからのヤフーの技術
Filo Server
これからのヤフーの技術
10年前(2006年)
LAMP時代
これからのヤフーの技術
サービングエンジン
(Apache, node.js, Jetty)
10年前のテクノロジースタック
HTTP Cache
(Yahoo Traffic Server,, Nginx)
ミドルウェア、プラットフォーム
(RDBMS, オブジェクトストレージ, アプリ系、セキュリティ)
インフラ
(FreeBSD, OpenStack, 物理サーバ, 仮想化技術)
言語、開発ツール
(C, C++, PHP, Java, JavaScript, GitHub, Chef, Jenkins, ...)
ファシリティ
(データセンター, ネットワーク)
これからのヤフーの技術
現在
スマートフォン時代
これからのヤフーの技術
サービングエンジン
(Apache, node.js, Jetty)
現在のテクノロジースタック
HTTP Cache
(Apache Traffic Server, Nginx)
ミドルウェア、プラットフォーム
(RDBMS, オブジェクトストレージ, アプリ系、セキュリティ)
インフラ
(RHEL, OpenStack, 物理サーバ, 仮想化技術)
言語、開発ツール
(C, C++, PHP, Java, JavaScript, GitHub, Chef, Jenkins, ...)
ファシリティ
(データセンター, ネットワーク)
これからのヤフーの技術
More...
LAMP時代全盛期
これからのヤフーの技術
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
オープンソースへの貢献
コミッターと貢献賞
ほげ
目の前にあるユーザーの課題を
とにかく解決し続けた
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
例えば ログインの場合
これからのヤフーの技術
パーソナライズしたい
個々のユーザーに最適なコンテンツの提供
• 属性
• 行動履歴や趣味嗜好
IDが必要なサービスを提供したい
• 米ヤフーで成功しているサービスを
日本でも導入したい
これからのヤフーの技術
Web Login
Yahoo! JAPAN IDとパスワードの認証
• 米ヤフーのログインエンジンを
ローカライズ開発(C++)
• My Yahoo!、Yahoo! ページャー、ゲーム、
掲示板が スタート
1996 20162006
1998
これからのヤフーの技術
ID連携したい
ユーザー側: IDの管理が大変
• 利用サービスごとにIDを作る必要がある
• 同じパスワードを使いまわしてしまう
サービス事業者側: IDの管理が大変
• 重要な個人情報を扱う
• 高いレベルの認証システムの維持
これからのヤフーの技術
Single Sign On
ID連携(認証連携)時代の幕開け
• 一度ログインすると提携サービスが
利用できるようになる仕組み
• Yahoo!リクナビ(当時)等で利用
1996 20162006
2003
これからのヤフーの技術
ヤフーのWeb APIを使いたい
マッシュアップ(Web2.0)時代
• 企業がデータや機能をAPIとして公開
これからのヤフーの技術
Browser-Based Authentication
ブラウザベースの認証API
• ログインボタンの始まり
• ID連携(認証)とWeb API利用(認可)
• 各社独自路線時代
• Google: AuthSub
• AOL: OpenAuth
1996 20162006
2007
これからのヤフーの技術
iPhone襲来
これからのヤフーの技術
孫「iPhone対応をして
くれた社員にはiPhone
をあげよう」
Client-Based Authentication
アプリでもログインする時代の到来
• アプリに保存したYahoo! JAPAN IDと
パスワードを認証サーバに送信する(!)
• ヤフーが提供するアプリのみ
1996 20162006
2008
これからのヤフーの技術
ID連携したい
これからのヤフーの技術
ユーザー側: IDの管理が大変
• 利用サービスごとにIDを作る必要がある
• 同じパスワードを使いまわしてしまう
サービス事業者側: IDの管理が大変
• 重要な個人情報を扱う
• 高いレベルの認証システムの維持
• 複数IDサービスの対応がつらい
• ID事業者ごと仕様が違う
解消
増えた
ID連携したい
これからのヤフーの技術
ユーザー側: IDの管理が大変
• 利用サービスごとにIDを作る必要がある
• 同じパスワードを使いまわしてしまう
サービス事業者側: IDの管理が大変
• 重要な個人情報を扱う
• 高いレベルの認証システムの維持
• 複数IDサービスの対応がつらい
• ID事業者ごと仕様が違う
解消
増えた
標準仕様に高まる期待感
OpenID
標準仕様の「認証」の仕組み
• 2008年1月に日米ヤフー同時リリース
• OpenID ファウンデーション・ジャパン
への加入
1996 20162006
2008
これからのヤフーの技術
OpenIDを認可に使えないか?
• Twitter ブレインクック氏(当時) の提言
We want something like Flickr Auth / Google AuthSub
/ Yahoo! BBAuth, but published as an open standard,
with common server and client libraries, etc. The trick
with OpenID is that the users no longer have passwords,
so you can’t use basic auth for API calls without
requiring passwords (defeating one of the main points of
OpenID) or giving cut-and-paste tokens (which suck).
-- Blaine Cook, April 5th, 2007
これからのヤフーの技術
出典: History - http://hueniverse.com/oauth/guide/history/
OAuth
本格的な「ソーシャルログイン」
• 標準仕様(RFC 5849)の認可の仕組み
• 「〜でログイン」が爆発的に流行る
1996 20162006
2009
これからのヤフーの技術
OAuthの拡大で問題が発生
厳密には「ソーシャルログイン」ではない
• OpenID(認証)と OAuth(認可)
実装が難しい
• 署名の生成方法が難しい
• パートナーの導入サポートで四苦八苦
これからのヤフーの技術
OpenID Connect
認証と認可を同時にできる標準仕様
• 米ヤフーのローカライズをやめる
• 世界の大手IDプロバイダーの中で
一番最初に提供を開始
1996 20162006
2012
これからのヤフーの技術
Web Login - セキュリティ4兄弟
1996 20162006
2010〜2013
リスクベース認証 シークレットID
ログインテーマ ワンタイムパスワード
“怪しい”ログイン成功を
ユーザに通知
Yahoo! JAPAN ID以外
の文字列でログイン
スマートフォン時代の
フィッシング対策
メールとアプリで動く
二要素認証
これからのヤフーの技術
ログインの歴史
1996 20162006
SSO
(2003)
Web Login
(1998)
BBAuth
(2007)
CBAuth, OpenID
(2008)
OAuth
(2009)
OpenID Connect
(2012)
ログイン4兄弟
(2010〜2013)
これからのヤフーの技術
ログインの歴史
1996 20162006
SSO
(2003)
Web Login
(1998)
BBAuth
(2007)
CBAuth, OpenID
(2008)
OAuth
(2009)
OpenID Connect
(2012)
ログイン4兄弟
(2010〜2013)
これからのヤフーの技術
ニーズへの対応
ヤフーのログイン→日本のログイン
国内ソーシャルログイン
シェアNo.1
出典:フィードフォース - ソーシャルログイン利用率 - https://www.feedforce.jp/release/4979/
これからのヤフーの技術
ヤフー(56.5%)
ログイン
↓
ビッグデータ
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
20年で改めてわかったこと
変わらないものはない
• 技術やニーズは必ず移り変わる
• 今日のベストは明日のベストではない
最大限に想像しておくことが重要
• 課題が分かってから取り組むと遅い
• 未来を予測して取り組むこと
これからのヤフーの技術
未来の課題の予測と解決に必要なもの
• 陳腐化しやすい
マインド技術力
• 陳腐化しない
これからのヤフーの技術
ヤフー クリエイターマインド
これからのヤフーの技術
マインド醸成の大決起集会
(2015/12)
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
世界 Top 10 を目指す
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
世界トップ10 企業
これからのヤフーの技術
なぜ世界トップ10を目指すのか
必要条件
社会へのインパクトが重要
これからのヤフーの技術
技術には国境がないので
課題解決を継続するための
未来への準備
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
広告課金技術の特許
総合ランキングNo.1
2〜3年先の広告の世界を想像する
これからのヤフーの技術
出典: Patent Result - 広告課金技術 特許総合力ランキング - http://www.patentresult.co.jp/news/2016/02/adcharge.html
オープンイノベーション
最強タッグ
双方の強みを生かし業界全体へ貢献
これからのヤフーの技術
Open Compute Project
台数が多いと納期が間に合わない
ロット不良で全滅することもある
いままでの
インフラの強化が必要
Internet of Things
Virtual Reality
…
これからのヤフーの技術
調達方法では…
Open Compute Project
最も効率の良いハードウェアを
オープンな仕様で設計する
ハードウェアにもOSSの考え方を
Hyper Scale 企業と同じ
ハードウェア調達力を持つ
これからのヤフーの技術
ビッグデータ基盤の
ハードウェア
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
ビッグデータ関連の研究開発
基礎研究への投資
自然言語処理
マシンラーニング
人工知能
セキュリティ・プライバシー
ユーザーインタフェース
…
これからのヤフーの技術
ビッグデータ関連の研究開発
WSDM: Web Search and Data Mining
UIST: User Interface Software and Technology Symposium
国内外の学会で
研究成果を発信
WSDM 2016(Web検索とデータマイニング)
2本の論文が採択
UIST 2015(ユーザーインタフェース)
People's Choice Best Poster
これからのヤフーの技術
オープンソースへの貢献
インターネット文化を守る
OSSコミュニティを活性化させる
これからのヤフーの技術
オープンソースへの貢献
第10回 OSS奨励賞
米ヤフーが公開するOSS(YUI等)の開発に寄与
Apache Traffic Server
3名のコミッターが誕生(日本人初)
これからのヤフーの技術
出典: OSS奨励賞 - http://ossforum.jp/ossaward10th2
社会の
課題を解決するCopyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
みなさんと
一緒に
解決したい
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
写真: アフロ

Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumi