Yahoo! JAPAN Tech Conference 2019
久々のイベント参加です!
Yahoo! JAPANのTech Conference 2019に参加してきました!
基調講演
CTO 藤門 千明さん
今では100以上のサービスがある
テクノロジー × ユーザー体験
例えば:
- Search-tech
- AD-tech
- UI/UX
- Security-tech
- Recommend-tech
- Fin-tech
などの組み合わせで様々なサービスを提供している。
ComputingPower
Data、AI、ComputingPowerの3つが重要になってくると以前から注目していた。
今日では以前から注目していたとおり、Dataを解析したり、AIモデルを作り適用するためにもComputingPowerが必要となっている。
Kukai
Yahoo!JAPANが作るスーパーコンピューター。 水冷だが、当初はデータセンターへの水冷のための液体の持ち込みは断られた。
データセンターへの水冷のための液体持ち込みは断られた…w#yjtc
— かみけん (@kamykn) 2019年1月26日
実際はデータセンターとの議論を重ねて水冷と循環のためのDCの壁の穴あけなど実現できた #yjtc
— かみけん (@kamykn) 2019年1月26日
ヤフオクのモデルビルディング
スパコンによって110時間 →1.5時間 (不正出品の検出モデル)
Yahoo!JAPANのセキュリティについて
CISO 仲原 英之さん
取り巻く環境の変化
周辺の要求レベルが上がってきた
例えば
- AppleによるiOSのTLS対応
- Googleの検索結果のランキングへTLS化状況の反映
などがある。
全サービスTLS1.2への移行、古い端末の問題もあったが安全優先で移行の方針を固めた
— かみけん (@kamykn) 2019年1月26日
移行検討段階では3%強がTLS1.0を利用している状況で、大規模トラフィックの中では大きな決断だった。
#yjtc
TLS1.0と1.1が3%か
— かみけん (@kamykn) 2019年1月26日
インシデントのレベル分け
OSS脆弱性などにはインシデントのレベル分けをしている。
— かみけん (@kamykn) 2019年1月26日
レベルによって対応期間の目標が決まっている。 #yjtc
なお、S0というレベルもあり、即日対応なレベルらしいが、昨年はS0は発生しなかったとのこと。
DevOpsからDevSecOpsへ
移行の際に学んだこと
— かみけん (@kamykn) 2019年1月26日
- OSSの安全な活用
- CI/CDの重要性
この規模の会社の責任者が言うと重みが違いますな…w#yjtc
単なるDevOpsではなくDevSecOps
— かみけん (@kamykn) 2019年1月26日
つまるところSecurityまで見据えたDevOpsか
DevSecOpsいいですなぁ#yjtc
— かみけん (@kamykn) 2019年1月26日
休憩時間中
コード量の言語別内訳が発表されていた。Yahoo!JAPANのコード量の内訳 #yjtc pic.twitter.com/Y7OiDkFDSh
— かみけん (@kamykn) 2019年1月26日
PHPが一番、次いでJAVAが多い。
Yahoo!JAPANのデータストアとかバックボーンの面白い数値 #yjtc pic.twitter.com/Ggr0ZJVPVA
— かみけん (@kamykn) 2019年1月26日
もう道に迷わない! Yahoo! MAPにおけるAR体験
徳本 健太さん 新卒6年目
Yahoo! MAPのARモードについて
3ヶ月でリリースした
使っているのは
- ARKit
- CoreLocation
遊び心
足跡
歩いてきたところに足跡残すの面白い🐾#yjtca #yjtc pic.twitter.com/EIirNKPOyr
— かみけん (@kamykn) 2019年1月26日
たまにレア足跡もあるらしい…w
— かみけん (@kamykn) 2019年1月26日
ゴール地点の『けんさく』
ゴール時におもてなされているような感覚を狙ってまた使いたくなるようにとのこと。
2DマップとARの違いについて
そうか、ARでルート案内だと2DMapで俯瞰的に見れる周辺の情報(コンビニとか)が失われがちなのか。ユースケースで使い分けないと。#yjtc #yjtca
— かみけん (@kamykn) 2019年1月26日
2つのユースケースの得意なこと内訳#yjtc #yjtca pic.twitter.com/uvgHNCMTkT
— かみけん (@kamykn) 2019年1月26日
納期、スケジュール感について
Yahoo!地図のARモード、スピード重視の案件ながら3人で3ヶ月だったらしい。
— かみけん (@kamykn) 2019年1月26日
しかも、現場も名古屋と東京で離れてたっぽい。まじか😮 #yjtc #yjtca
プロトタイピングツール
開発速度を上げるために使ったプロトタイピングツールについて。
- prott
- Flinto
- GitHub
『ARという新しい分野だったが、慣れ親しんでいるツールの組み合わせで開発速度を上げることができた。』
— かみけん (@kamykn) 2019年1月26日
普段の業務でちゃんと使ってるからできる技ですなぁ。
#yjtc #yjtca
休み時間
Yahoo!ニュースのコメント表示順アルゴリズムの改善で、レコメンドの学習データ作成でクラウドソーシング使ったらしい。正しい使い方やね。#yjtc
— かみけん (@kamykn) 2019年1月26日
あと企業説明ブースでお話を聞いてました。
聞いた内容は求める人物像とか、評価制度とか。ふむふむです。
データの力で実現するYahoo!ショッピングのCRM
企業説明ブースでお話を聞いていたら入るのが遅くなってしまい、立ち見でした。
かなりエモい+テクい内容でした。
Yahoo!ショッピングのCRMの話聞いてる。
— かみけん (@kamykn) 2019年1月26日
リアルショッピングとネットショッピングの体験の差とその最適化について#yjtc
ペルソナでリアルショッピングとネットショッピングのこれまでを紹介していました。
人物的にはピョンチャンオリンピックのパラレル大回転を見てスノボに興味を持った形から入りやすい人。
ネットショッピングの場合
- 選手と同じボードをいきなり買ってしまう
- 初心者には扱いづらいボードを選んでしまった
- はじめてのスノボで上手く滑れない
- ユーザー体験としては最悪なものになってしまった。スノボをやめてしまった。
- (痛い目にあった、板だけに。…とのこと!)
リアルショッピングの場合
- 店員が適切に初心者でも扱えるおすすめボードを選んでくれた
- はじめてのスノボで比較的滑れた
- 次も頑張ってみようと思えた
リアルショッピングだと自然な流れだが、ネットショッピングは果たしてリアルショッピングの体験を超えることができるのか。
データの蓄積について
行動履歴APIとはその名の通り、ユーザーのアクションをログ保存しておくAPIっぽい。
パーソナライズAPIとは、今度はユーザーごとに最適なレコメンドを行うAPIのこと。
そして、行動履歴APIとパーソナライズAPIを含んだCRMの全体像。
あと、もちろんSLAも要求されるし、レスポンス改善もしていく
数万qpsのリクエストで、レスポンスの目安は『最大でも』200ms
— かみけん (@kamykn) 2019年1月26日
なんかめっちゃチューニングのノウハウがあって写真撮りまくってしまった#yjtc #yjtcb
オファーの仕組み
オファーとは定期購入やレコメンドなどの購入を促す通知などのこと。
古来ではメールを沢山送れば良いとされていたが、昨今はそうは行かず、適切なタイミングでオファーを送り、
効率を良くしていきたいというところの努力の話。
オファーは得点制で、得点に応じてオファーのタイミングや内容が変わる仕様。
データとして利用する範囲の定義。
これらを踏まえて、どう定期購入を予測するかについて。
また、マート処理とよばれる分析は、デイリーの分析では満足しておらず、リアルタイム分析をオファーに利用しているとのこと。
ストリーム処理基盤があって、デイリーのバッチとかではなく、リアルタイムで分析してるらしい#yjtc #yjtcb pic.twitter.com/F6OXfgafps
— かみけん (@kamykn) 2019年1月26日
リアルタイムを超えたショッピング体験
今度はYahoo!の検索や、宿泊予約から更に制度の高いオファーができるようになった。
なんなら、先のスノーボードの件で言うと、その人のスノボデビューの日までわかると言ってもいい。
(痛い目にあうのは先のギャグで滑っただけでもういい。…とのこと!)
Yahoo!JAPANだからこそできるCRMの構想が素晴らしい#yjtc #yjtcb pic.twitter.com/8sDhN91XmA
— かみけん (@kamykn) 2019年1月26日
ライブ動画配信サービス「ワイキュー」の作り方 〜優れた社内技術で実現する、少人数のサービス開発〜
自己紹介: 石井さん
スマホ版のTOPのリニューアル対応した
YUI(YahooのUI系ライブラリ) → React
見た目は一緒でJS全書き換え
React入門の本を書いた
ワイキュー
(フロントエンドの人がアーキテクチャの発表します!)
ワイキューとは
賞金山分け型のクイズ
賞金はTポイントとか
ライブ動画プラットフォーム
ライブ動画配信のシステム構成(ヤフー版)がある
ライブコマースでも使っている
ワイキューに合わせて情報提供もしてくれた
開発期間について
Yahoo!さんはすでにいろんなプラットフォームが社内にあって、使うだけで良かったりするのか…すごい🤔
— かみけん (@kamykn) 2019年1月26日
(コメントのNGワード判定とかライブ動画配信とか)
#yjtc #yjtcb
Yahoo!JAPAN テックカンファレンスで結構短納期の案件の紹介があって、そんなのできんの…って思ってたんだけど、使いたい機能のプラットフォームがすでにYahoo!JAPANのなかに結構あって、それらを組み合わせればよいという環境がちゃんとできあがっているからなのか😮
— かみけん (@kamykn) 2019年1月26日
#yjtc #yjtcb
ワイキューの場合
— かみけん (@kamykn) 2019年1月26日
動画配信周りとか、コメント周りとか、Tポイントとか pic.twitter.com/gQiPYv5cSu
プロジェクトの開発期間の内訳 pic.twitter.com/v7lP0eSAIu
— かみけん (@kamykn) 2019年1月26日
この講演でやっとはっきりわかったんですが、Yahoo! JAPANの内製のプラットフォームがかなり充実している模様ですね。
理想としてのマイクロサービスとプロジェクト間の相互利用の話はもちろんあるとは思うのですが、実際に業務でやるのはなかなかにできていないところのほうが多いのではないかと思います。
Yahoo!さんはそこをしっかりやっているからこそできる強みというのを改めて再確認しました。
Kubernetesで実現した Yahoo!JAPANの次世代開発環境 〜100以上のクラスタを少人数で運用する秘訣〜
Kubernetesをバリバリ運用している人はまだいないっぽい(会場アンケート)
— かみけん (@kamykn) 2019年1月26日
触ったことがある人はちらほら
#yjtc #yjtcB
Yahoo JAPANが目指した次世代開発環境
開発・生産性の向上
持続力の維持
新しい技術の受け入れ
開発に集中できるプラットフォーム
- 開発外作業をへらす
- リリース・脆弱性・スケール・障害対応・監視・可視化
Z Labとは
技術研究とか専門にやるYahoo100%の子会社
12Factor App
スケール可能なアプリケーションの実現
システムとアプリケーションの分離
継続的なデプロイを実現
コンテナ管理の概要
マイクロサービス化の需要
1つのアプリケーションを小さなサービス軍の組み合わせとして構築する手法で
- 責任範囲の明確化
- 小さなサービスを少数メンバーのチームで効率的に開発
を目指す。
コンテナ技術の導入
1マシン1マイクロサービスでは無駄が多いと考えたため
コンテナオーケストレーションの必要性
Kubernetes as a Service
リリースまでの流れ
- クラスタの作成
- アプリケーション開発
- デプロイ
クラスタの作成
$create cluster sample
1コマンドでクラスタが作れる
デプロイ用のマニフェスト
$ kubectl apply -f manifest
1コマンドでデプロイ
脆弱性対応
Kubernetesのバージョン更新はコマンド一つ。
これらを活用しているYahoo! JAPANの状況
- 1年前から急増
- 利用サービス数: 50以上
- Cluster数: 200以上
そして、この管理チームは10人程度らしい…!
おわりに: 最後になんとなく気になったこと
Yahoo!さんの事業規模でも、プラットフォーム化による効率化がかなりすすんでいるので、リリースまでの期間がかなり短かった例をいくつも見た気がします。 それは100以上のサービスを作って運用しているYahoo!さんだからこそ取り組んで積極的に改善していった結果なのだと思いました。
また、新しい技術を取り入れてイケてるエンジニアリングの部分がありながら、自分たちでスパコンやCDNなどの環境を用意するなどの自力の部分も見せつけられているところが非常に面白かったです。 使うだけでなく、作ってしまう体力があるというのがすごい。 作ってしまったからこそYahooトップページのYUIというライブラリをDeprecatedする話などもありましたが、そこはなんとなく業界標準には追従していこうという意志の現れかなとも思いました。
あと、最後に気になったこと。
今気づいたけどVim Scriptがある
— かみけん (@kamykn) 2019年1月26日
何やってるんだろう🤔 https://t.co/74Obccco2O
お疲れ様でしたm(_ _)m