Länger schlafen mit Node.js

Post on 06-May-2015

850 views 0 download

description

Slides für den Vortrag auf der OOP 2013

transcript

© Zühlke 2013

Christian Heger

@ OOP 2013

Länger schlafen mit Node.js

24. Januar 2013 Folie 1

Eine vernetzte Zukunft. Zwei Probleme.

Festes Schema ist von Übel.

Be conservative in what you do, be liberal in what you accept from others.

Antenna

Persist

Web App

Antenna

Antenna

Antenna

Front Bus

Antenna

Hub Persist

Web App

Antenna

Hub

Antenna

Front

Antenna

Front

© Zühlke 2013

Und das ist alles, was man über Node wissen muss:

1. 2. 3. Länger schlafen mit Node.js | Christian Heger Bild 2: David Benbennick 24. Januar 2013 Folie 7

Message Loop

© Zühlke 2013

Multi-Threaded vs. Single Threaded

Länger schlafen mit Node.js | Christian Heger 24. Januar 2013 Folie 9

© Zühlke 2013

Multi-Threaded vs. Single Threaded

Länger schlafen mit Node.js | Christian Heger 24. Januar 2013 Folie 10

© Zühlke 2013

Multi-Threaded vs. Single Threaded

Länger schlafen mit Node.js | Christian Heger 24. Januar 2013 Folie 11

© Zühlke 2013

Event Emitter

Länger schlafen mit Node.js | Christian Heger 24. Januar 2013 Folie 12

© Zühlke 2013

Continuation Passing Style

Länger schlafen mit Node.js | Christian Heger

Callback Callback Callback Event

24. Januar 2013 Folie 13

© Zühlke 2013

Und wie soll das gehen?

24. Januar 2013 Länger schlafen mit Node.js | Christian Heger Folie 14

Streams

© Zühlke 2013

Streams

Länger schlafen mit Node.js | Christian Heger

Readable Stream a

Writable Stream

b

a.on('readable', callback); var data = a.read(size);

var sent = b.write(data);

a.pipe(b);

24. Januar 2013 Folie 16

© Zühlke 2013

Streams

Länger schlafen mit Node.js | Christian Heger

a c Duplex Stream

b

a.pipe(b); b.pipe(c);

24. Januar 2013 Folie 17

© Zühlke 2013

Streams

Länger schlafen mit Node.js | Christian Heger

a.pipe(b).pipe(a);

24. Januar 2013 Folie 18

Packages

© Zühlke 2013

Was ist drin? Package.json

Länger schlafen mit Node.js | Christian Heger 24. Januar 2013 Folie 20

© Zühlke 2013

Dependency management

Länger schlafen mit Node.js | Christian Heger 24. Januar 2013 Folie 21

© Zühlke 2013

Module Hierarchy

Länger schlafen mit Node.js | Christian Heger 24. Januar 2013 Folie 22

© Zühlke 2013

Web Applications

Länger schlafen mit Node.js | Christian Heger

•Express – Sinatra-ähnliches Framework – Routing – Template-basierte View Engines

•Passport – Authentifizierung gegen alle gängigen Provider – OAuth, OpenID, Facebook Connect

•ASP.NET MVC < Node.js < RoR

24. Januar 2013 Folie 23

© Zühlke 2013

Real time web

Länger schlafen mit Node.js | Christian Heger

•Socket.IO – Eigenes Protokoll – Sockets, Flash, AJAX, IFrame, JSONP – Nicht interoperabel

•ws – Nur Web Sockets – Aber das richtig: Autobahn-Testsuite – Interoperabel

24. Januar 2013 Folie 24

One million

connections!

Deployment

© Zühlke 2013

Web

Blue/Green Deployment

Länger schlafen mit Node.js | Christian Heger

Users Router

Blue Slice

Green Slice

Services

Blue Slice

Green Slice

24. Januar 2013 Folie 27

© Zühlke 2013

Fleet

Länger schlafen mit Node.js | Christian Heger

Hub

Drone

Drone

Drone

Drone

Git

24. Januar 2013 Folie 28

© Zühlke 2013

Seaport

Länger schlafen mit Node.js | Christian Heger

Sea port

Service

Register Antenna@1.5.1

Use port 8731

Client

24. Januar 2013 Folie 29

Länger schlafen?

Programmierzeit 15 Tage (davon 10 ohne jede Erfahrung in JavaScript)

1 Prozess === 1 Core 3 GB RAM VMWare ESX Server 3000 – 4000 Nachrichten / Sekunde 3 Wochen lang

Alles Bestens?

Und privat so?

© Zühlke 2013

Hinweise

• LXJS 2012 – Substack on Streams www.youtube.com/watch?v=lQAV3bPOYHo

• NodeUp Podcast nodeup.com

• Stream Handbook github.com/substack/stream-handbook

• Blue/Green Deployment martinfowler.com/bliki/BlueGreenDeployment.html

• Semantic Versioning semver.org/

• Autobahn Web Sockets Test Suite http://autobahn.ws/

• A million connections http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/

Länger schlafen mit Node.js | Christian Heger 24. Januar 2013 Folie 34

Fragen? Meinungen? Kommentare?

Christian Heger about.me/christian.heger Diese Folien http://slidesha.re/Wn9scy