YJTC18 A-6 ヤフーのNode.js

>100 Views

January 29, 18

スライド概要

Yahoo! JAPAN Tech Conference 2018 A-6 セッションのスライドです。

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

ヤフーのNode.js 伊藤 康太 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

2.

自己紹介 伊藤 康太 / Kohta Ito Node.js言語サポート プラットフォーム開発本部 クリエイターエバンジェリスト Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

3.

Node.jsとは何か Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

4.

“Node.jsは、Chrome の V8 JavaScript エンジンで動作する JavaScript 環境です” – https://nodejs.org/ja/ Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

5.

Node.jsとは何か 2009年にライアン・ダール氏によって作られた サーバサイドのJavaScript実行環境 Chromeにも利用されているJavaScript処理エンジン(V8)上に 構築されている 2013~2014年頃からサーバサイドの主要な選択肢として人気が出ている Google App Engine, Azure, Pivotal, PayPal, … Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

6.

Node.jsの特徴 Non Blocking I/O イベントループ Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

7.

Non Blocking I/O リクエストを並行して捌ける 大量の同時接続に耐えられる サーバリソースを効率的に利用しやすい リクエスト リクエスト リクエスト リクエスト Blocking I/O リクエスト リクエスト リクエスト リクエスト Non Blocking I/O Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

8.

イベントループ イベントを監視してイベントの都度、 設定された処理を呼び出す イベントループが止まると アプリケーション全体が止まる Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

9.

Node.jsの特徴 大量のリクエストを効率よく捌くのが得意 1つの処理が重いものを捌くのは苦手 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

10.
[beta]
httpサーバの実装
Node.jsはhttpサーバがとても簡単なコードで表せる
大量のリクエストを効率的に捌くサーバを簡単に構築できる
const http = require('http');
http.createServer((req, res) => {
res.write('hello');
res.end();
}).listen(8000);
Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.
11.

Node.jsを使うメリット ヤフーのPVは757億PV/月(サービスの数は100以上) ヤフーはPHPのシステムが多い リクエストの多いシステムにNode.jsを導入することで、 サーバのコストを下げられる余地が多くある Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

12.

Node.jsを利用しないところ CPUヘビーな処理 画像処理 機械学習系 etc Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

13.

Node.jsの利用例 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

14.

ヤフーでのNode.jsの利用例 フロントエンドのツール利用が多い APIサーバでの利用も増加中 JavaとNode.jsがサーバサイドの標準言語に 今後、利活用がさらに増えていく予想 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

15.

ヤフーでのNode.jsの活用 Node.jsが利用されている gitリポジトリは大小合わせて約7万 GY AO! アプリバックエンドのAPIや フロントエンドツールで利用が多い Sportsnavi etc.. Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

16.

サービスのNode.js PHPだったバックエンドをNode.jsでリプレース 性能は以前の3倍以上に アクセスピークにも余裕で耐えられるように Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

17.

サービスのNode.js 1球速報がWebSocket ピッチャーが投げてから10秒以内に表示を更新 Node.js実装により90秒 -> 10秒に Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

18.

社内SNS(MYM) 2011年にHack Dayで誕生 WebSocketベース 常時1万接続以上 約2億メッセージ以上 チャンネル数 10数万以上 bot数 1万以上 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

19.

Node.jsをどう使ってきたの? Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

20.

Node.jsのカスタマイズ OSSのNode.jsを内部カスタマイズして利用 主にセキュリティとパフォーマンス向上のカスタマイズ マルチコア化 リクエストフィルタ アクセスディレクトリの制限 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

21.

PaaS & Kubernetesの登場 ヤフー独自環境以外でのNode.js利用ケースの増加 PaaS, docker, etc.. 言語内部のカスタマイズはやめていく流れ Pivotal Cloud Foundry Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

22.

実際に開発してみてわかったこと 社内システムをモデルケースにして新規開発のテスト 4人で約半年の開発 / うち3人はJavaScript初心者 JavaScript初心者がハマるところは意外と少なかった ES2015, async/await, etc Node.js, Angular, Nginx, Redis, MySQL Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

23.

言語サポートチームの やってきたこと Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

24.

サポートチームのやってきたこと Node.js関連の質問受付/回答 Node.jsのバージョンアップ告知 各社内プラットフォームとの連携 Node.jsハンズオン/セミナー Node Core API勉強会 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

25.

サポートチームのやってきたこと Node.jsのコミッターを迎え、炎の特訓—Node.js社内勉強会はこう して始まった 2017年10月13日 キャリア ワークスタイル インタビュー コアモジュールの使い方を、内部のコードを 見ながら知識を深めていく。 修正点を見つけたら本体へPR https://linotice.tumblr.com/post/166348035844/20171013 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

26.

JavaScript & Node.js 全力推進中 Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.

27.

Copyright© 2018 Yahoo Japan Corporation. All Rights Reserved.