Upload
kamil-przeorski
View
291
Download
0
Embed Size (px)
DESCRIPTION
slajdy do prezentacji przygotowane specjalnie na meet.js Katowice
Citation preview
AN INTRODUCTION TO NODE.JS+ SAILS.JS QUICK DEMO
Meet.js Katowice – 5 lutego 2014 – Kamil PrzeoRskiwww.facebook.com/groups/nodejsPL
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 :-)
wydajność I/O
300,000,000
225,000,000
150,000,000
75,000,000
0 3
L1
14
L2
250
RAM DISK NETWORK
41,000,000
240,000,000
OPERATION CPU CYCLES
Source: Ryan Dahl's 2008.11.08 presentation on Node.js
waiting ...
ROUTE REQUEST QUERY DB OR WEB SERVICE PROCESS RESULT WRITE TO LOG FILE FORMAL RESPONSE
OPERACJE I/O ZAJMUJĄ O WIELE WIĘCEJ CZASU NIŻ INNE OPERACJE W TWOJEJ APLIKACJI
STANDARDOWE APLIKACJE POSIADAJĄCE OPERACJE I/O CZEKAJĄ PRZEZ WIĘKSZOŚĆ CZASU
Source: Ryan Dahl's 2008.11.08 presentation on Node.js
skalowalnie przy użyciu wątków
OBSŁUGA WĄTKÓW PRZEZSYSTEM OS JEST “DROGA”
ALOKACJA PAMIĘCI, “CONTEXT SWITCHING”I CZEKANIE NA WYKONANIE SIĘ OPERACJI I/O
SZTUCZNE OGRANICZENIE ILOŚCI JEDNOCZESNYCH POŁĄCZEŃ
THREAD 1
THREAD 2
THREAD 3
THREAD 4
Source: Ryan Dahl's 2008.11.08 presentation on Node.js
skalowalnie przy użyciu “Event Loop”
JEDEN WĄTEK W CAŁEJ APLIKACJI DELEGUJE OPERACJE I/OMECHANIZMOWI “THREADPOOL”
Source: Ryan Dahl's 2008.11.08 presentation on Node.js
PROCESS 1
NETWORK FILESYSTEM
Thread Pool and Async I/I APIs
filesystem
network
process
other
event loop
EVENTLOOP
eventqueue
NODE.JS KORZYSTAZ BIBLIOTEKI LIBEV DO OBSŁUGIMECHANIZMU EVENT-LOOP
PO WYKONANIU SIĘ OPERACJI I/O,ZA POMOCĄ MECHANIZMU “CALLBACK”WYNIK ZOSTAJE PRZEKAZANY SPOWROTEMDO GŁÓWNEGO WĄTKU APLIKACJI
Source: Ryan Dahl's 2008.11.08 presentation on Node.js
thread pool
platforma
• V8 JAVASCRIPT VIRTUAL MACHINE
• LIBEIO (THREAD POOL)
• LIBEV (EVENT LOOP)
Java Script NODE STANDARD LIBRARY
NODE BINDINGS
C V8 ThreadPool(libeio)
EventLoop(livev)
filesystem
network
process
other
problemy i wyzwania
EVENTLOOP
eventqueueNIESTABILNE MODUŁY API
TRUDNY W DEBUGOWANIU
MAŁO DOŚWIADCZONYCH SPECJALISTÓWNA RYNKU JEST DODATKOWYM RYZYKIEMDLA FIRM CHCĄCYCH UŻYWAĆ NODE.JSW CELACH KOMERCYJNYCH
0:2
Source: Ryan Dahl's 2008.11.08 presentation on Node.js
thread pool
popularność
12,000
9,000
6,000
3,000
0
1,000
2,000
4,000
5,000
7,000
8,000
10,000
11,000
Jan ’12Jan ’06 Jan ’07 Jan ’08 Jan ’09 Jan ’10 Jan ’11 Jan ’13
PONAD 1000 OSÓBONLINE NA IRC'U NODE.JS
OGROMNY WZROST ZAINTERESOWANIA W OSTATNICH 3 LATACH
O WIELE WIĘKSZY POPYT NIŻ PODAŻ W WIĘKSZYCH HUB'ACH TECHNOLOGICZNYCH (NP. LONDYN, SAN FRANCISCO)
Job trends from indeed.com
NODES PHP JAVA PYTHON RUBY .NET
popularność_2
60000
30000
0
10000
20000
40000
50000
70000
80000
Jul 2013Jul 2010 Jan 2011 Jul 2011 Jan 2012 Jul 2012 Jan 2013 Jan 2014
ILOŚĆ MODUŁÓW ZWIĘKSZASIĘ DRAMATYCZNIE (ŻÓŁTALINIA)
POPULARNOŚĆ NODE.JS W RASBERRY PI ( INTERNET OF THINGS )
NIESTETY JAKOŚĆ MODUŁÓWMA WIELE DO ŻYCZENIA ( POTRZEBA CZASU )
Module counts
Rubygems.org PyPl php nuget Node.js
PayPal: Node.js vs. Java
800
600
400
200
01 5 10 15
1600
1400
1200
1000
1800
8
6
4
2
0
14
12
10
2000
Java application
Page
s/se
c
Acco
unt
resp
onse
tim
e (m
s)
800
600
400
200
01 5 10 15
1400
1200
1000
25
20
15
10
5
0
30
25
20
Node.js application
Page
s/se
c
Pages/sec /home /wallet /activity
PayPal: Node.js vs. Java
PAYPAL'S “ACCOUNT OVERVIEW”
“BUILT ALMOST TWICE AS FAST WITHFEWER PEOPLE”
“WRITTEN IN 33% FEWER LINES OF CODE”
“CONSTRUCTED WITH 40% FEWER FILES”
estimote ( Kraków,PL )
SZUKAJĄ LUDZI DO BUDOWANIA ICHAPI W NODE.JS
ZNALEZIENIE KOGOŚ Z 3 LETNIM DOŚWIADCZENIEMW NODE.JS JEST NAPRAWDĘ HARDDD W POLSCE... :-)
sails.js
“MVC PATTERN” WZOROWANYNA ROR'ZE
WSPIERA BUDOWANIEAPLIKACJI RESTOWYCH
SZYBKIE DEMO
Dziękuję :-)
Reach me at [email protected]
Meet.js Katowice – 5 lutego 2014 – Kamil PrzeoRskiwww.facebook.com/groups/nodejsPL