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
220
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Node.js on Windows - jscamp.asia 2012
Tomasz Janczuk
November 30, 2012
Other Decks in Technology
See All in Technology
OAuth SPIFFE Client Authentication(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
320
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
460
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
330
500名弱規模の組織のPythonプロジェクト(dbt) をどう管理するか?
hiracky16
0
320
EMの役割で 変わったこと・変わらなかったこと
sansantech
PRO
0
180
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
暗号化?某ファイルストレージはどうなるの!? 3rd Partyとうまく付き合う秘密度ラベル設計
kasada
0
210
サービス内で複数のOP・ASを連鎖させる(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
320
DMMブックスのNext.js化を加速させるAI活用 / Migrating DMM Books to Next.js with AI
kentarom
0
130
VPCでもFloatingIPを使いたいんだ
y_kotani
1
110
Claude Codeで開発以外の業務も爆速化しよう!
minorun365
PRO
9
8.3k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Code Review Best Practice
trishagee
74
20k
Typedesign – Prime Four
hannesfritz
42
3.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
How to Ace a Technical Interview
jacobian
281
24k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
300
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
310
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
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 `