102
2016/2/18 Yahoo! JAPANが考える テクノロジーとITエンジニアの未来 CTO 藤門 千明 ヤフー株式会社

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

  • Upload
    yahoo

  • View
    7.400

  • Download
    0

Embed Size (px)

Citation preview

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. 無断引用・転載禁止

写真: アフロ