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
210
3
Share
Node.js on Windows - jscamp.asia 2012
Tomasz Janczuk
November 30, 2012
Other Decks in Technology
See All in Technology
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
140
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
420
最大のアウトプット術は問題を作ること
ryoaccount
0
270
Embeddings : Symfony AI en pratique
lyrixx
0
450
スクラムを支える内部品質の話
iij_pr
0
180
「活動」は激変する。「ベース」は変わらない ~ 4つの軸で捉える_AI時代ソフトウェア開発マネジメント
sentokun
0
140
非同期・イベント駆動処理の分散トレーシングの繋げ方
ichikawaken
1
250
OpenClaw初心者向けセミナー / OpenClaw Beginner Seminar
cmhiranofumio
0
240
【関西電力KOI×VOLTMIND 生成AIハッカソン】空間AIブレイン ~⼤阪おばちゃんフィジカルAIに続く道~
tanakaseiya
0
110
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
670
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
230
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
180
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
Chasing Engaging Ingredients in Design
codingconduct
0
160
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
260
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
260
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
310
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
150
Become a Pro
speakerdeck
PRO
31
5.9k
Building an army of robots
kneath
306
46k
Technical Leadership for Architectural Decision Making
baasie
3
300
Practical Orchestrator
shlominoach
191
11k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
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 `