Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Node.js on Windows - jscamp.asia 2012
Search
Tomasz Janczuk
November 30, 2012
Technology
3
210
Node.js on Windows - jscamp.asia 2012
Tomasz Janczuk
November 30, 2012
Tweet
Share
Other Decks in Technology
See All in Technology
S3アクセス制御の設計ポイント
tommy0124
3
200
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
2
400
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
170
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
160
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
なぜSaaSがMCPサーバーをサービス提供するのか?
sansantech
PRO
8
2.8k
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
240
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.4k
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
240
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
12
4.7k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
The Language of Interfaces
destraynor
161
25k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Visualization
eitanlees
148
16k
Scaling GitHub
holman
463
140k
Speed Design
sergeychernyshev
32
1.1k
Transcript
Node.js on Windows. Undisclosured. Tomasz Janczuk Engineer,
Microso< @tjanczuk, github.com/tjanczuk, tomasz.janczuk.org jscamp.asia 2012
EvoluGon of node.js on Windows
Divine Comedy meets WebSockets
w3wp.exe node.exe node.exe Two ways to run
on Windows node.exe iisnode TCP libuv HTTP applicaGon TCP HTTP.SYS IIS iisnode named pipes libuv HTTP applicaGon
Windows Azure
Ways to run in Windows Azure Virtual Machine
Linux or Windows Hosted Service Managed applica;on with VM access on Windows Web Site Managed HTTP applica;on with Git, GitHub, FTP and TFS deployment Mobile Service Backend for Windows 8, Windows Phone or iPhone applica;on
Ways to run in Windows Azure Virtual Machine
Hosted Service Web Site Mobile Service node.exe iisnode
You don’t need Windows to run on Windows Azure
Web Site iisnode npm install azure
node.js + express on iisnode 320 machines 8
data centers 2 billion requests/day peak 45k requests/second peak kernel mode output caching Web Site iisnode
w3wp.exe node.exe node.exe Two ways to run
on Windows node.exe iisnode TCP libuv HTTP applicaGon TCP HTTP.SYS IIS iisnode named pipes libuv HTTP applicaGon
w3wp.exe node.exe node.exe Two Three ways to
run on Windows node.exe iisnode TCP libuv HTTP applicaGon TCP HTTP.SYS IIS iisnode named pipes libuv HTTP applicaGon node.exe TCP HTTP.SYS libuv applicaGon hIp.sys hZps://github.com/tjanczuk/hZpsys
Performance and output caching hZps://github.com/tjanczuk/hZpsys hZp://tomasz.janczuk.org/2012/08/the-‐hZpsys-‐stack-‐for-‐nodejs-‐apps-‐on.html
12461 17364 159902 0 40000 80000 120000 160000 node.js hZp.sys hZp.sys + output caching requests/second Throughput, 1 node.exe process
Output caching var hZp = require('hZpsys').hZp(); hZp.createServer(funcGon
(req, res) { res.writeHead(200); res.cacheDura;on = 60; // cache for 60s res.end(’Hello, world!'); }).listen(8080); hZps://github.com/tjanczuk/hZpsys
Port sharing var hZp = require('hZpsys').hZp(); hZp.createServer(funcGon
(req, res) { res.writeHead(200); res.end(’Second app!'); }).listen(‘hIp://*:80/second’); var hZp = require('hZpsys').hZp(); hZp.createServer(funcGon (req, res) { res.writeHead(200); res.end(’First app!'); }).listen(‘hIp://*:80/first’); hZps://github.com/tjanczuk/hZpsys
When a node app becomes a zombie while(true);
Tripwire to the rescue require('tripwire’).resetTripwire(2000);
while(true); // excep;on a[er 2000ms hZps://github.com/tjanczuk/tripwire
Tripwire to the rescue process.on('uncaughtExcepGon', funcGon (e) {
console.error(’Event loop was blocked!’); process.exit(1); }); require('tripwire’).resetTripwire(2000); while(true); // excep;on a[er 2000ms hZps://github.com/tjanczuk/tripwire
Open sourced and undisclosured npm install azure-‐cli hZps://windowsazure.com
github.com/tjanczuk github.com/windowsazure @tjanczuk `