基調講演
- 藤門 千明さん(CTO)
yahooの取り組み
- 未来を創る
- 変化が早いから予想想像するものではない
- 課題解決
- 社会のアップデート
yahooトップページ
- 時代にあわせていろいろ変えてきた
- 200万/秒
- 月間757億ビュー
- デイリーユニークブラウザ数9300万
yahooのものづくり
HTTPS化
- 最高のインターネット体験をより快適に
- HTTPS
- HTTP2
- 壁
- サービス100以上
- サービス関連企業との調整
- ドメイン数1000以上
- 先に社外告知
- 退路を断つ
- 可視化するのが大切
- 1年で全サービスHTTPS化した
- HTTP2 -> 56%
- HTTP1.1 -> 44%
データドリブンなものづくり
- 100以上のサービス
- グループ会社100以上
- User -> Data -> AI -> User
- トップページレコメンド
- 検索クエリ
- クリック履歴
- DeepLearning
- 乗換案内混雑状況予測
- 一般的な日の路線検索数の傾向
- 通常と異なる路線検索数の増加
- 未来の混雑予想をする
ものづくりを支える技術
まとめ
Kotlin導入の状況と展望
Kotlinとは
- 2011年JetBrainsが発表したJVM言語
コンセプト
なぜKotlin
- desugar問題
- 特定のライブラリつかってるとdesugar無効化
- Swiftとの親和性
- Swiftと結構似ている
- 開発をもっと楽しく
- イベントハンドリング
- 非同期処理
- 通信処理
危惧したリスク
- 学習コスト
- Kotlinスタートブック
- Kotlin in action
- Kotlin koas??
- ビルド時間増加
- CIパイプラインそのまま使えるか
- 人の確保
導入状況
Webの資産を活かしたアプリシフト
- 林 和弘
- 株式会社GYAO
yahooのiosアプリ
- 30以上のiosアプリ
- Webのサービスをアプリへ移行
yahooのサービスの特徴
対応策
アプリアプリ連携
- yahooID連携
- ワンタップログイン
- keychainへ保存しておく
- アプリ間で共有
アプリブラウザ連携
- SFSafariViewController
- ios11からcookieがアプリごと固有になるから使えなくなる
- SFAuthenticationSession
- IDパスワードを共有できる
Webからアプリを起動
- deeplinkという
- アプリあってDeepLink許可されてたらアプリそうじゃなかったらWebページへ
- ディファードディープリンク
アプリWebView連携
- UIWebView
- バグ多い
- JSの実行も遅い
- WKWebView
- セキュリティ強化
- Cookieアクセスできない
- WKWebViewに置換えた
- クラッシュ率7割減
Yahoo! JAPANを支える開発基盤 PaaS
- 甲斐 遼馬
- システム統括本部
- プラットフォーム開発本部
- Joshua McKenty
- VP, Global Field CTO, Cloud Foundry
- Pivotal Software, Inc.
yahooで使っているプラットフォーム
- CFを全社的に使ってる
- 定常運用作業に時間をとられたくないから
これまで/これからのPaaS
- 2016先行サービス
- 2017本格導入
- 2018拡大
何をクラウドでやろうとしているのか
- 継続的なビジネス価値の提供
- 自動化
アプリケーションの高速デプロイを可能にする技術 - Yahoo! JAPAN の Kubernetes as a Service
- 藤江 貴司
- システム統括本部
- プラットフォーム開発本部
- 河 宜成
- ゼットラボ株式会社
- yahooの100%子会社
- 技術だけを担当する会社
アプリのコンテナ化
- ライブラリ依存関係がコンテナ単位で制御できる
- デプロイ単位も最小単位
- ローカル開発しやすい
コンテナ導入
- yahooは大規模
Kubernetes
- アプリコンテナのスケールデプロイ管理を自動化する
- 世界的に注目浴びてる
- 2017年初から導入
- 今はプロダクションでも一部使ってる
- ズバトク
コンテナ化Kubernaties導入による変化
導入前
導入後
- github, concourse, docker, Kubernetes
- コンテナ化による高速デプロイ
- 容易なスケール
パイプライン化によるシームレス化
しかし、kubernetesクラスタの管理にコスト
- Kubernetes as a service
Kubernetes as a Service
- Kubernetesが解決しないこと
- VMの追加
- KubernetesのVUP
- etc
- これらを手動で管理は現実的でない
- 数万台サーバがある
Kubernetes as a Serviceでできること
- クラスタ全体のリソースを操作
- Nodeのオートヒーリング
- VM復旧の自動化
- ローリングアップデート
- ゼロダウンタイムでアップデート
- ホストOS
- Kubernetes
- カーネルパッチ
- 運用工数の削減に大きく貢献
まとめ
- 開発者
- VM、IaaSを意識しなくて良くなる
- Kubernetesの管理のみ
- 運用者
- リソース/ネットワーク最適化により多く時間を割ける
ヤフーのNode.js
- 伊藤 康太
- システム統括本部
- プラットフォーム開発本部
Node.jsとは?
- chromeで動くv8のJS実行環境
特徴
- Non Blocking IO -並行して同時実行できる
- イベントループ
- 処理は全てイベントとして動く
- 重い処理とかがあってイベントループがとまるとアプリ全体がとまる
- 大量リクエストを効率よく処理するのが得意
- 重い処理があると苦手
yahooはがどうしてNodeを使うか
- 767億PV/月(サービスは100以上)
- サーバコストを下げる
- 画像処理機械学習とかでは使ってない
- CPUを多く使う
利用例
ヤフオク/ヤフーニュース
- PHP -> Node
- 性能3倍
スポーツナビ
- 一球速報
- 投げた球を10秒以内に
- Nodeを使うことで90秒から10秒に
社内SNS(MYM)
- WebSocketベース
- 常時1万接続
- 約2億メッセージ(7年で)
- bot1万以上
- APIサーバ3台でさばく
どうやって使ってきたか
- Nodeをカスタマイズして使ってた
- 社内のセキュリティ基準
- パフォーマンスの向上
- PCFとかkubeとかと合わせて使えなかったからカスタマイズやめた