+ All Categories
Home > Documents > Länger schlafen mit Node.js

Länger schlafen mit Node.js

Date post: 06-May-2015
Category:
Upload: christian-heger
View: 850 times
Download: 0 times
Share this document with a friend
Description:
Slides für den Vortrag auf der OOP 2013
35
© Zühlke 2013 Christian Heger @ OOP 2013 Länger schlafen mit Node.js 24. Januar 2013 Folie 1
Transcript
Page 1: Länger schlafen mit Node.js

© Zühlke 2013

Christian Heger

@ OOP 2013

Länger schlafen mit Node.js

24. Januar 2013 Folie 1

Page 2: Länger schlafen mit Node.js

Eine vernetzte Zukunft. Zwei Probleme.

Page 3: Länger schlafen mit Node.js

Festes Schema ist von Übel.

Page 4: Länger schlafen mit Node.js

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

Page 5: Länger schlafen mit Node.js

Antenna

Persist

Web App

Antenna

Antenna

Antenna

Front Bus

Page 6: Länger schlafen mit Node.js

Antenna

Hub Persist

Web App

Antenna

Hub

Antenna

Front

Antenna

Front

Page 7: Länger schlafen mit Node.js

© 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

Page 8: Länger schlafen mit Node.js

Message Loop

Page 9: Länger schlafen mit Node.js

© Zühlke 2013

Multi-Threaded vs. Single Threaded

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

Page 10: Länger schlafen mit Node.js

© Zühlke 2013

Multi-Threaded vs. Single Threaded

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

Page 11: Länger schlafen mit Node.js

© Zühlke 2013

Multi-Threaded vs. Single Threaded

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

Page 12: Länger schlafen mit Node.js

© Zühlke 2013

Event Emitter

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

Page 13: Länger schlafen mit Node.js

© Zühlke 2013

Continuation Passing Style

Länger schlafen mit Node.js | Christian Heger

Callback Callback Callback Event

24. Januar 2013 Folie 13

Page 14: Länger schlafen mit Node.js

© Zühlke 2013

Und wie soll das gehen?

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

Page 15: Länger schlafen mit Node.js

Streams

Page 16: Länger schlafen mit Node.js

© 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

Page 17: Länger schlafen mit Node.js

© 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

Page 18: Länger schlafen mit Node.js

© Zühlke 2013

Streams

Länger schlafen mit Node.js | Christian Heger

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

24. Januar 2013 Folie 18

Page 19: Länger schlafen mit Node.js

Packages

Page 20: Länger schlafen mit Node.js

© Zühlke 2013

Was ist drin? Package.json

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

Page 21: Länger schlafen mit Node.js

© Zühlke 2013

Dependency management

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

Page 22: Länger schlafen mit Node.js

© Zühlke 2013

Module Hierarchy

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

Page 23: Länger schlafen mit Node.js

© 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

Page 24: Länger schlafen mit Node.js

© 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

Page 25: Länger schlafen mit Node.js

One million

connections!

Page 26: Länger schlafen mit Node.js

Deployment

Page 27: Länger schlafen mit Node.js

© 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

Page 28: Länger schlafen mit Node.js

© Zühlke 2013

Fleet

Länger schlafen mit Node.js | Christian Heger

Hub

Drone

Drone

Drone

Drone

Git

24. Januar 2013 Folie 28

Page 29: Länger schlafen mit Node.js

© Zühlke 2013

Seaport

Länger schlafen mit Node.js | Christian Heger

Sea port

Service

Register [email protected]

Use port 8731

Client

24. Januar 2013 Folie 29

Page 30: Länger schlafen mit Node.js

Länger schlafen?

Page 31: Länger schlafen mit Node.js

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

Page 32: Länger schlafen mit Node.js

Alles Bestens?

Page 33: Länger schlafen mit Node.js

Und privat so?

Page 34: Länger schlafen mit Node.js

© 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

Page 35: Länger schlafen mit Node.js

Fragen? Meinungen? Kommentare?

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


Recommended