AN INTRODUCTION TO NODE.JS

+ SAILS.JS QUICK DEMO

Meet.js Katowice – 5 lutego 2014 – Kamil PrzeoRski
www.facebook.com/gro...
słowo wstępu

•
•
•
•
•
•
•

teoria node.js
korzyści
wyzwania / problemy
popyt / podaż – potencjalne możliwości kariery :-...
wydajność I/O
OPERATION CPU CYCLES

300,000,000
240,000,000
225,000,000

150,000,000

75,000,000
41,000,000
3

14

250

L1...
waiting ...

ROUTE REQUEST

QUERY DB OR WEB SERVICE

OPERACJE I/O ZAJMUJĄ O WIELE
WIĘCEJ CZASU NIŻ INNE OPERACJE
W TWOJEJ ...
skalowalnie przy użyciu wątków

THREAD 1
THREAD 2
THREAD 3

THREAD 4
Source: Ryan Dahl's 2008.11.08 presentation on Node.j...
skalowalnie przy użyciu “Event Loop”

PROCESS 1

NETWORK

FILESYSTEM
Thread Pool and Async I/I APIs

JEDEN WĄTEK W CAŁEJ A...
event loop

thread pool
event
queue
NODE.JS KORZYSTA
Z BIBLIOTEKI LIBEV DO OBSŁUGI
MECHANIZMU EVENT-LOOP

filesystem

EVEN...
platforma

•

•
•

V8 JAVASCRIPT VIRTUAL
MACHINE

Java Script

NODE STANDARD LIBRARY
NODE BINDINGS

LIBEIO (THREAD POOL)

...
problemy i wyzwania

thread pool

NIESTABILNE MODUŁY API

TRUDNY W DEBUGOWANIU

event
queue

filesystem

EVENT
LOOP

netwo...
popularność
Job trends from indeed.com
NODES

PHP

JAVA

PYTHON

RUBY

.NET

12,000
11,000
10,000

9,000
8,000
7,000
6,000...
popularność_2
Module counts
Rubygems.org

PyPl

php

nuget

Node.js

80000
70000
60000
50000
40000
30000
20000
10000

0
Ju...
PayPal: Node.js vs. Java
Java application

14

2000

Node.js application

1800

12
1400
10
8

25

1000

20

1000
800

6

8...
PayPal: Node.js vs. Java

PAYPAL'S “ACCOUNT OVERVIEW”

“BUILT ALMOST TWICE AS FAST WITH
FEWER PEOPLE”

“WRITTEN IN 33% FEW...
estimote ( Kraków,PL )

SZUKAJĄ LUDZI DO BUDOWANIA ICH
API W NODE.JS

ZNALEZIENIE KOGOŚ Z 3 LETNIM DOŚWIADCZENIEM
W NODE.J...
sails.js

“MVC PATTERN” WZOROWANY
NA ROR'ZE

WSPIERA BUDOWANIE
APLIKACJI RESTOWYCH

SZYBKIE DEMO
Dziękuję :-)
Reach me at kamil.przeorski@skygatedigital.co.uk

Meet.js Katowice – 5 lutego 2014 – Kamil PrzeoRski
www.face...
An introduction to Node.js and Sails.js at Meet.js Katowice (in polish)
An introduction to Node.js and Sails.js at Meet.js Katowice (in polish)
Upcoming SlideShare
Loading in …5
×

An introduction to Node.js and Sails.js at Meet.js Katowice (in polish)

675 views

Published on

slajdy do prezentacji przygotowane specjalnie na meet.js Katowice

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
675
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

An introduction to Node.js and Sails.js at Meet.js Katowice (in polish)

  1. 1. AN INTRODUCTION TO NODE.JS + SAILS.JS QUICK DEMO Meet.js Katowice – 5 lutego 2014 – Kamil PrzeoRski www.facebook.com/groups/nodejsPL
  2. 2. słowo wstępu • • • • • • • teoria node.js korzyści wyzwania / problemy popyt / podaż – potencjalne możliwości kariery :-) przykłady i najlepsze zastosowania node.js krótkie demo sails.js przyszłość node.js ( dyskusja :-)
  3. 3. wydajność I/O OPERATION CPU CYCLES 300,000,000 240,000,000 225,000,000 150,000,000 75,000,000 41,000,000 3 14 250 L1 0 L2 RAM Source: Ryan Dahl's 2008.11.08 presentation on Node.js DISK NETWORK
  4. 4. waiting ... ROUTE REQUEST QUERY DB OR WEB SERVICE OPERACJE I/O ZAJMUJĄ O WIELE WIĘCEJ CZASU NIŻ INNE OPERACJE W TWOJEJ APLIKACJI PROCESS RESULT WRITE TO LOG FILE STANDARDOWE APLIKACJE POSIADAJĄCE OPERACJE I/O CZEKAJĄ PRZEZ WIĘKSZOŚĆ CZASU FORMAL RESPONSE Source: Ryan Dahl's 2008.11.08 presentation on Node.js
  5. 5. skalowalnie przy użyciu wątków THREAD 1 THREAD 2 THREAD 3 THREAD 4 Source: Ryan Dahl's 2008.11.08 presentation on Node.js OBSŁUGA WĄTKÓW PRZEZ SYSTEM OS JEST “DROGA” ALOKACJA PAMIĘCI, “CONTEXT SWITCHING” I CZEKANIE NA WYKONANIE SIĘ OPERACJI I/O SZTUCZNE OGRANICZENIE ILOŚCI JEDNOCZESNYCH POŁĄCZEO
  6. 6. skalowalnie przy użyciu “Event Loop” PROCESS 1 NETWORK FILESYSTEM Thread Pool and Async I/I APIs JEDEN WĄTEK W CAŁEJ APLIKACJI DELEGUJE OPERACJE I/O MECHANIZMOWI “THREADPOOL” Source: Ryan Dahl's 2008.11.08 presentation on Node.js
  7. 7. event loop thread pool event queue NODE.JS KORZYSTA Z BIBLIOTEKI LIBEV DO OBSŁUGI MECHANIZMU EVENT-LOOP filesystem EVENT LOOP network process other PO WYKONANIU SIĘ OPERACJI I/O, ZA POMOCĄ MECHANIZMU “CALLBACK” WYNIK ZOSTAJE PRZEKAZANY SPOWROTEM DO GŁÓWNEGO WĄTKU APLIKACJI Source: Ryan Dahl's 2008.11.08 presentation on Node.js
  8. 8. platforma • • • V8 JAVASCRIPT VIRTUAL MACHINE Java Script NODE STANDARD LIBRARY NODE BINDINGS LIBEIO (THREAD POOL) LIBEV (EVENT LOOP) C V8 Thread Pool (libeio) Event Loop (livev)
  9. 9. problemy i wyzwania thread pool NIESTABILNE MODUŁY API TRUDNY W DEBUGOWANIU event queue filesystem EVENT LOOP network process other MAŁO DOŚWIADCZONYCH SPECJALISTÓW NA RYNKU JEST DODATKOWYM RYZYKIEM DLA FIRM CHCĄCYCH UŻYWAD NODE.JS W CELACH KOMERCYJNYCH 0:2 Source: Ryan Dahl's 2008.11.08 presentation on Node.js
  10. 10. popularność Job trends from indeed.com NODES PHP JAVA PYTHON RUBY .NET 12,000 11,000 10,000 9,000 8,000 7,000 6,000 5,000 4,000 3,000 2,000 1,000 0 Jan ’06 Jan ’07 PONAD 1000 OSÓB ONLINE NA IRC'U NODE.JS Jan ’08 Jan ’09 Jan ’10 OGROMNY WZROST ZAINTERESOWANIA W OSTATNICH 3 LATACH Jan ’11 Jan ’12 Jan ’13 O WIELE WIĘKSZY POPYT NIŻ PODAŻ W WIĘKSZYCH HUB'ACH TECHNOLOGICZNYCH (NP. LONDYN, SAN FRANCISCO)
  11. 11. popularność_2 Module counts Rubygems.org PyPl php nuget Node.js 80000 70000 60000 50000 40000 30000 20000 10000 0 Jul 2010 Jan 2011 ILOŚD MODUŁÓW ZWIĘKSZA SIĘ DRAMATYCZNIE (ŻÓŁTA LINIA) Jul 2011 Jan 2012 Jul 2012 POPULARNOŚD NODE.JS W RASBERRY PI ( INTERNET OF THINGS ) Jan 2013 Jul 2013 Jan 2014 NIESTETY JAKOŚD MODUŁÓW MA WIELE DO ŻYCZENIA ( POTRZEBA CZASU )
  12. 12. PayPal: Node.js vs. Java Java application 14 2000 Node.js application 1800 12 1400 10 8 25 1000 20 1000 800 6 800 600 15 600 4 10 400 400 2 200 0 0 1 5 10 Pages/sec Account response time (ms) 1200 5 200 0 0 15 Pages/sec 1 /home /wallet 5 10 /activity 15 20 25 Pages/sec 1400 30 1200 1600
  13. 13. PayPal: Node.js vs. Java PAYPAL'S “ACCOUNT OVERVIEW” “BUILT ALMOST TWICE AS FAST WITH FEWER PEOPLE” “WRITTEN IN 33% FEWER LINES OF CODE” “CONSTRUCTED WITH 40% FEWER FILES”
  14. 14. estimote ( Kraków,PL ) SZUKAJĄ LUDZI DO BUDOWANIA ICH API W NODE.JS ZNALEZIENIE KOGOŚ Z 3 LETNIM DOŚWIADCZENIEM W NODE.JS JEST NAPRAWDĘ HARDDD W POLSCE... :-)
  15. 15. sails.js “MVC PATTERN” WZOROWANY NA ROR'ZE WSPIERA BUDOWANIE APLIKACJI RESTOWYCH SZYBKIE DEMO
  16. 16. Dziękuję :-) Reach me at kamil.przeorski@skygatedigital.co.uk Meet.js Katowice – 5 lutego 2014 – Kamil PrzeoRski www.facebook.com/groups/nodejsPL

×