[Srijan Wednesday Webinars] NASA, Netflix, Tinder: Digital Transformation and Node.js
-
Upload
srijan-technologies -
Category
Software
-
view
67 -
download
0
Transcript of [Srijan Wednesday Webinars] NASA, Netflix, Tinder: Digital Transformation and Node.js
#SrijanWW | @srijan
NASA, Netflix, Tinder: Digital Transformation & Node.js
Daniel Khan | Node.js Technology Lead | @dkhan
#SrijanWW | @srijan
Nike has many more software developers in Oregon than
apparel designers.*
“”*from Dynatrace Perform 2015
Delivering a great cross-channel experience means making sense out of prolific complexity
Outsourced & Hosted Services
GTS, BT
Legacy & Back-Office
CICS, IMS, zOS, SOAP
3rd Party Web APIs
Social, Ad Serving, Web Analytics, Search,
Maps, CDNs
SaaSSalesforce.com,
Marketo, NetSiute ServiceNow
Web and Mobile Services
iOS, Android, MBaaS, Public Cloud, eCommerce platform
Home-grown Apps
Java, .NET, php, C++, node.js,
Enterprise Applications
SAP, Sharepoint, Oracle Business Suite, lync
#SrijanWW | @srijan
JavaScript• Easy to learn / easy to find developers• No language boundaries between frontend and backend• Easy to deploy and rollback• Fast development cycles
PayPal built a web app side by side in Node and Javaand the Node version was:
• Built almost twice as fast with fewer people• Written in 33% fewer lines of code• Constructed with 40% fewer files
Source: https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
#SrijanWW | @srijan
Performance• Google V8 JavaScript Engine• Non-Blocking I/O• Asynchronous event based execution
Node.js shines in modern web-connected applications where it needs togather data from different sources, consolidate it and push it to manyclients in real-time.
Never(!) use it for CPU-bound tasks!
#SrijanWW | @srijan
Common Use Cases
• Authentification and Authorization
• Proxy
• Data Transformation
• Presentation (View Rendering)
#SrijanWW | @srijan
Node Standard Library
Node Bindings
V8 Thread Pool
Event Loop
JavaScript
C++
libuv
#SrijanWW | @srijan
theThing
someMethod()
longStr
unused()
originalThing
Closure Context
Reference
Root
#SrijanWW | @srijan
NODE_ENV=production
NODE_ENV=development
Blog: http://bit.ly/1flz0Xm
#SrijanWW | @srijan
NODE_ENV=production
NODE_ENV=development
get(‘/routeA’, function(){})
get(‘/routeB’, function(){})
get(‘/routeC’, function(){})
get(‘/routeD’, function(){})
get(‘/routeE’, function(){})
get(‘/routeA’, function(){})
get(‘/routeX’, function(){})
get(‘/^(route|router)\/(.+)’, function(){})
HTTP GET /routeX
get(‘/routeA’, function(){})
get(‘/routeX’, function(){})
O(n)
Complete Transaction CoverageBrowser / Native Mobile Java/
.NET
PerformanceWarehouse
PurePathCollector
DynatraceServer
DynatraceClient
SessionsStore
ExportedSession
OfflineSession Analysis
Web Server/ PHP/ Node.js
C++, VB, ADK
CICS
Mainframez/OS
MQ/ESB
Database