SlideShare une entreprise Scribd logo
1  sur  77
Télécharger pour lire hors ligne
Enterprise Node.js to Power the
API Economy
Shubhra Kar | Products & Education
twitter:@shubhrakar mail:skar@strongloop.com
Wake up to the API economy
Explosion of channels
(browsers, mobile, sensors,
wearable, real-time
communication)
u Sheer number of
clients has increased
u Clients are increasingly
sophisticated
u Node.js is the platform
of choice for these API
StrongLoop Confidential and Proprietary Information – © 2015
Latency demands are uncompromising
10
25
50
100100
50
10
15
40
100
25
Web SaaS Mobile IoT
The new curve
Concurrent Users Latency Adoption
StrongLoop Confidential and Proprietary Information – © 2015
Not all APIs are built equal
The image cannot
be displayed. Your
computer may not
have enough
memory to open the
image, or the image
may have been
corrupted. Restart
your computer, and
then open the file
again. If the red x
still appears, you
may have to delete
the image and then
insert it again.
Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( not sure on this one)
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER Items for ACL
Quick Example of Use
App Server
Add On
App Server
Relational Database Clustered Database Security Gateway Cl
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK AP
Quick Examp
App Server
X – Backend ?
X - Channel
X - Platform
API Neutrality
Mainframe to Mobile ?
StrongLoop Confidential and Proprietary Information – © 2014
API “Re-Composition” is good…but not good enough
Relational Database Clustered Database Security Gateway Cloud
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER
Quick Example of Use
App Server
Relational Database Clustered Database Security Gateway
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK
Quick E
App Server
Auth
Routing
Rate-Limit
Proxy
Mediation
Orchestration
Analytics
StrongLoop Confidential and Proprietary Information – © 2014
The need is “DE-COMPOSITION”
SaaS Mobile IoTWeb
App Server API Server
HTML JSON
{JSON}
{JSON}
{JSON}<SOAP/XML>
<TABLE>
StrongLoop Confidential and Proprietary Information – © 2014
Micro-services has arrived
StrongLoop Confidential and Proprietary Information – © 2014
Now I know !!!
So who is propelling this transformation ?
Why Node?
10
Node is FAST…er
Node is perfect for APIs
Node is JavaScript & JSON
…and highly concurrent!
StrongLoop Confidential and Proprietary Information – © 2015
Node is much lighter
  LinkedIn moved from Rails to Node.js
–  Cut down servers by 90% (30 à 3)
–  Lower memory overhead and up to 20X faster
  PayPal migrated to Node.js from Java:
–  Reduce development time by >50%
–  2X speed of delivery with less than existing resources
–  33% lesser lines of code
–  40% fewer files
  Groupon displaced Ruby and Java with Node.js across the board:
–  50% improvement in page response times
–  Agile builds and deploys
Any use-cases ?
Behind the Curtain
Node Bindings C/C++
(socket, http, etc.)
V8
Libuv
Libeio
(thread pool)
Libev
(event loop)
IOCP
(IO
completion
ports)
Node Standard Library (JavaScript)
epoll/kqueue/poll (event
ports)
Linux Kernel
Windows
Kernel
Yes, it’s C back there
StrongLoop Confidential and Proprietary Information – © 2015
{“..”} JSON is the new first class citizen
StrongLoop Confidential and Proprietary Information – © 2014
Full Stack JavaScript is powering mobility
Angular
Bootstrap
Ionic
Cordova
Gartner predicts by 2016 more than 50% of the
apps deployed will be Hybrid apps.
LoopBack
API Server
Node.js
StrongLoop Confidential and Proprietary Information – © 2014
Nodies are not just Silicon Valley hipsters !
StrongLoop Confidential and Proprietary Information – © 2014
s
Node is de-facto for the backend API now
•  67K Developers
•  Fastest Growing (120K+ > Java, Ruby, PHP…)
StrongLoop Confidential and Proprietary Information – © 2014
Really, But isn’t it the wild west ?
These guys sent me !
Bert
Belder
Ben
Noordhuis
Node Core
Raymond
Feng
Ritchie
Martori
LoopBack / Express Core
Sam
Roberts
Miroslav
Bajtos
Ryan
Graham
Plus 15 other full-time open source
developers working on Node.js core,
modules and tools.
Contributing to over 100 open source
modules.
Supporting banks, retail, IoT companies,
startups and internet companies on
Node.js
The only product company dedicated only to Node
Jason Pressman Kiran Prasad
Neil Day
Nick Sturiale
Paul Ambrose
Marten Mickos
StrongLoop Confidential and Proprietary Information – © 2014
StrongLoop iPaaS for APIs
Compose
Integrate
Test &
Build
Deploy &
Scale
Secure &
Manage
Monitor &
Analyze
•  Loopback
•  Express
•  Node Code Generators
•  Data Connectors
•  Service Connectors
•  Client/Mobile SDKs
•  Mobile Services
•  Debugger
•  Build Utilities
•  Private Registry
•  Bootstrap deployer
•  Runtime manager
•  Clustering, HA, Hot Deploy
•  API Gateway
•  Distributed Routing.
•  Performance Monitoring
•  Analytics
•  Metering
StrongLoop
API Platform
StrongLoop Confidential and Proprietary Information – © 2015
Popular Frameworks
Sample Code (Router using express 4.x)
Pros
Great starting point
Low learning curve
Nearly a standard for Node.js web
middleware
Fully customizable
Targeted at browser, hence templating
and rendering OOB
Cons
All endpoints need to be created
manually
Developers may end up creating their
own non-optimized libraries
Every end point needs to be tested
Refactoring is painful, update
everything everywhere
No standards or prescription, DIY
26
Express
Sample Code (Router using restify)
Pros
Very stable and actively developed.
Automatic DTrace support for all
handlers on enabled platforms
Built in throttling
SPDY support
Borrows from express but without
unnecessary templating/rendering
Strict API with full control over HTTP
interactions
Visibility into latency and app
characteristics
Cons
All endpoints need to be created
manually
Developers may end up creating their
own non-optimized libraries
Every end point needs to be tested
Refactoring is painful, update
everything everywhere
No standards or prescription, DIY
Less documentation
Restify
Sample Code (Router using hapi)
Sample Code (Router using hapi)
Pros
Supported by Walmart labs. Less known
but getting momentum
Very granular control over request
handling
Detailed API reference with support for
document generation
Significantly more functionality for
building web servers
Pseudo prescriptive with configuration
centric approach
Caching, Authentication and input
validation available
Plugin based architecture for scaling
Cons
Good construction blocks but left to your
own devices to figure out design patterns
Binds you to specific modules and tool chains
(catbox, joi, tv, boom, good, travelogue, yar)
All endpoints need to be created
manually
Developers may end up creating their
own non-optimized libraries
Every end point needs to be tested
Refactoring is painful, update everything
everywhere
33
Sample Code (Router using Loopback)
Code needed
Endpoints automatically created
Sample Code (API explorer and test)
Code needed
API explorer automatically created
Sample Code (RPC)
Code needed
Remotable calls
Pros
Very quick RESTful API development
Convention over configuration (extends express)
Built in models ready to use (ORM)
RPC support, Web and Mobile SDKs
Data Connectors
Fully configurable when needed
Extensive documentation
Commercial support and full time team working on project
(Loopback)
Mobile Services (Push, Geo, Storage, Sync, Offline, File,
Device, User) - Loopback
Authentication, validation and Authorization
Cons
Higher learning curve
Opinionated
REST
API
PUSH
GEO
OFF
SYNC
DEVICE
USER FILE
Relational Database Clustered Database Security Gateway Cloud
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER
Quick Example of Use
App S
Add
App Server
Storage
Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( not sure on this one)
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER Items for ACL
Quick Example of Use
App Server
Add On
App Server
REST
API
GATEWAY
Channel SDKs
API ENGINE
C
O
N
N
E
C
T
O
R
s
A
P
I
S
D
K
s
Loopback framework – ORM and Mobile connect in Node.js
REST API
atabase Security Gateway Cloud Firewall SOA Bus ( not sure on this one)
Phone IoT SDK API SERVER Items for ACL
Quick Example of Use
App Server
Add On
App Server
API
Explorer
Magical Features
u  Discovery
u  Migration / Replication
u  Relationship Mapping
u  Mixins - Aggregation
u  Access Control
u  User Management
u  Isomorphic JS / Remoting
u  Routing
StrongLoop Confidential and Proprietary Information – © 2014
Data & Services Integration
Services
Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( no
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER Items for A
Quick Example of Use
App Server
Add On
App Server
Storage
y Cloud Firewall SOA Bus ( not sure on this one)
API SERVER Items for ACL
Quick Example of Use
App Server
Add On
REST
Messaging
Database
NoSQL
Marquee - Discovery & Migration !
StrongLoop Confidential and Proprietary Information – © 2014
User Experience
  Arc UI – architect view
–  Widget driven
–  Visual composition,
management & operations
–  Marquee featured, evolving
platform
  StrongLoop Console (slc) -
developer view
–  Command Line Interface
–  Full featured
–  Greater customization support
StrongLoop Confidential and Proprietary Information – © 2014
API Explorer (Swagger) – Iterative build and test w/o frontend
StrongLoop Confidential and Proprietary Information – © 2014
API Gateway *
Security & Social Logins
* Evolving. Please do not share without written
consent from StrongLoop
Marquee – Auth, Routing, Throttling, Proxy, Mediation, Aggregation, Virtualization
StrongLoop Confidential and Proprietary Information – © 2014
API Gateway*
u  Security (AAA)
u  Mediation and Transformation
u  Infrastructure QoS (pagination, throttling, caching, delivery
guarantee, firewall)
u  Analytics and health monitoring
u  Aggregation and Microservices Routing
u  Virtualization and Reverse Proxy
StrongLoop Confidential and Proprietary Information – © 2014
* Evolving. Please do not share without written
consent from StrongLoop
Node vs Java for REST routing *
46
StrongLoop Confidential and Proprietary Information – © 2014
* Highly Confidential. Please do not share without written consent from StrongLoop
Some Numbers – Top 3 US Bank *
StrongLoop Confidential and Proprietary Information – © 2014
* Highly Confidential. Please do not share without written consent from StrongLoop
Developer SDKs
Omni-channel Client SDKs
JS
client
JS
Server
Remoting
JS
client
Marquee – Isomorphic JS, Mobile Integration
StrongLoop Confidential and Proprietary Information – © 2014
Mobile Services
mBaaS Capabilities
Marquee – Push, Geo, Offline Sync, Storage
StrongLoop Confidential and Proprietary Information – © 2014
Push Notification
StrongLoop Confidential and Proprietary Information – © 2014
GeoLocation
Storage Service
52
StrongLoop Confidential and Proprietary Information – © 2014
Offline Sync
StrongLoop Confidential and Proprietary Information – © 2014
Platform support &
DevOps Tool-chains
Node.js support (Sample modules set)
55
Node.js Core
strong-
module-loader
strong-cluster-
connect-store
strong-cluster-
control
SL-Config
Loopback
 Strong-mq
strong-task-
emitter
Engine.io
 Mongoose
Strong-agent
 strong-cluster-
socket.io-store
strong-config-
loader
Request
Node-
heapdump
Asynch
node-
inspector

Passport
Strong-
remoting
Q
EJS
Express
Connect
Socket.IO
Reggie
 Postgres
Connector
Oracle
Connector
SQL Server
Connector
MongoDB
Connector
REST
Connector
In-Memory
connector
LIBUV
V8 Profiler
①  Multi-platform (Windows, Unix, Solaris, Mac) support
②  On-premises, private or public cloud support
③  Certified Node.js curated modules and ecosystem
④  Commercial Enterprise supported, security updates
StrongLoop Confidential and Proprietary Information – © 2014
Private Registry
Debugging
Marquee – Chrome Dev Tools, Remote
StrongLoop Confidential and Proprietary Information – © 2014
Debugging server side clustered apps
slc debug app.js
Debugging single process
slc debug app.js
http://localhost:8080/debug?port=<5858+ID-of-process>
Debugging clustered process in V11
%node debug –p <PID>
connecting…ok
…
debug>quit
%node-inspector
http://127.0.0.1:8080/debug?port =5858
Or
process._debugPort = 5858 + cluster.worker.id
Debugging clustered process in V10
Profilers
StrongLoop Confidential and Proprietary Information – © 2014
Does Node have memory leaks ?
StrongLoop OSS - HeapSnapshots
slc runctl heap-snapshot ID
Sudden leaks
heapdump for V8 snapshots
npm install heapdump
  Add to app : var heapdump = require(‘heapdump’)
  Method 1 : writeSnapshot
  Method 2 : SIGUSR2 (Unix only)
  Make sure your directory is writable
var heapdump = require('heapdump')
...
heapdump.writeSnapshot()
kill –USR2 <pid>
process.chdir('/path/to/writeable/dir’)
Heap Snapshot strategies
  Programmatic heap snapshots (timer based)
  Programmatic heap snapshots (threshold based)
var heapdump = require('heapdump')
...
setInterval(function () {
heapdump.writeSnapshot()
}, 6000 * 30) <strong>(1)</strong>
var heapdump = require('heapdump')
var nextMBThreshold = 0 <strong>(1)</strong>
setInterval(function () {
var memMB = process.memoryUsage().rss / 1048576 <strong>(2)</
strong>
if (memMB &gt; nextMBThreshold) { <strong>(3)</strong>
heapdump.writeSnapshot()
nextMBThreshold += 100
}
}, 6000 * 2) <strong>(4)</strong>
How we fixed a real production
problem
Don’t Block the EventLoop
StrongLoop Confidential and Proprietary Information – © 2015
Blocked event loop in Meteor atmosphere
  node-fibers implements co-routines. Meteor uses this to hack local thread storage allowing V8
to run multiple execution contexts each mapped to a co-routine.
FindOrAllocatePerThreadDataForThisThread() used in switching context between co-
routines
  Co-routines are cooperative; the current coroutine has to yield control before another one can
run and that is what Meteor does in its process.nextTick() callback; it essentially builds
concurrent (but not parallel) green threads on a round-robin scheduler
  Too many tiny tasks and not one long running one was blocking the event loop
process.nextTick() has a failsafe mechanism where it will process “x” tick callbacks before
deferring the remaining ones to the next event loop tick.
  Native MongoDB driver disabled the failsafe to silence a warning message in node v0.10 about
maxtickDepth being reached
ticks parent name
2274 7.3% v8::internal::Isolate::FindOrAllocatePerThreadDataForThisThread()
1325 58.3% LazyCompile: ~<anonymous> packages/meteor.js:683
1325 100.0% LazyCompile: _tickCallback node.js:399
The solution
  The workaround: switch fromprocess.nextTick() to setImmediate()
Performance Monitoring
Production Monitoring & 3rd Party integration
•  Local / Hosted
•  Graphite
•  Splunk
•  Datadog
•  CA Introscope
StrongLoop Confidential and Proprietary Information – © 2014
Dynamic Instrumentation
Agent App
Monkey
Patching
Agent App
Dynamic
Instrument
•  Live Edit
•  Line Level
Instrumentation
•  Any package, any
framework, any code
•  Custom logic
•  Counters, Gauges and
Timers
•  HA rollback
StrongLoop Confidential and Proprietary Information – © 2015
Can Errors be stitched into a trace and recovered ?
Enter StrongLoop / Zones
Long error traces
Runtime Mgmt. & Scaling
Build & Deploy
StrongLoop Confidential and Proprietary Information – © 2014
Cluster and runtime scaling
Marquee – HA, Auto-scale, Hot Deploy
StrongLoop Confidential and Proprietary Information – © 2014
MESH – Micro-services Deploy on Scale
StrongLoop Confidential and Proprietary Information – © 2014
First there was Node
Thank you!
JUST WIN,
BABY!

Contenu connexe

Tendances

Node Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineNode Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineShubhra Kar
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkJimmy Guerrero
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopShubhra Kar
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?Akana
 
LoopBack: a productivity booster for MEAN
LoopBack: a productivity booster for MEANLoopBack: a productivity booster for MEAN
LoopBack: a productivity booster for MEANMiroslav Bajtoš
 
Webcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware AppsWebcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware AppsApigee | Google Cloud
 
Ultimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation SolutionsUltimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation SolutionsBill Doerrfeld
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description LanguagesAkana
 
StrongLoop DevOps Overview
StrongLoop DevOps OverviewStrongLoop DevOps Overview
StrongLoop DevOps Overviewjguerrero999
 
Another API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonAnother API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonSmartBear
 
Building a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 MinutesBuilding a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 MinutesRaymond Feng
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards   25-6-2014API Athens Meetup - API standards   25-6-2014
API Athens Meetup - API standards 25-6-2014Michael Petychakis
 
Ben Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of ThingsBen Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of ThingsServerlessConf
 
apidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ngapidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ngapidays
 
REST API Doc Best Practices
REST API Doc Best PracticesREST API Doc Best Practices
REST API Doc Best PracticesMarta Rauch
 
Maintainable API Docs and Other Rainbow Colored Unicorns
Maintainable API Docs and Other Rainbow Colored UnicornsMaintainable API Docs and Other Rainbow Colored Unicorns
Maintainable API Docs and Other Rainbow Colored UnicornsNeil Mansilla
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless ArchitectureSaul Caganoff
 
The New 3-Tier Architecture: HTML5, Proxies, and APIs
The New 3-Tier Architecture: HTML5, Proxies, and APIsThe New 3-Tier Architecture: HTML5, Proxies, and APIs
The New 3-Tier Architecture: HTML5, Proxies, and APIsApigee | Google Cloud
 

Tendances (20)

Node Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshineNode Interactive : 7 years, 7 design patterns, will node continue to outshine
Node Interactive : 7 years, 7 design patterns, will node continue to outshine
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
 
LoopBack: a productivity booster for MEAN
LoopBack: a productivity booster for MEANLoopBack: a productivity booster for MEAN
LoopBack: a productivity booster for MEAN
 
Webcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware AppsWebcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware Apps
 
Ultimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation SolutionsUltimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation Solutions
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description Languages
 
StrongLoop DevOps Overview
StrongLoop DevOps OverviewStrongLoop DevOps Overview
StrongLoop DevOps Overview
 
Another API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonAnother API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger Comparison
 
Building a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 MinutesBuilding a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 Minutes
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards   25-6-2014API Athens Meetup - API standards   25-6-2014
API Athens Meetup - API standards 25-6-2014
 
Ben Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of ThingsBen Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of Things
 
apidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ngapidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ng
 
Huge: Running an API at Scale
Huge: Running an API at ScaleHuge: Running an API at Scale
Huge: Running an API at Scale
 
REST API Doc Best Practices
REST API Doc Best PracticesREST API Doc Best Practices
REST API Doc Best Practices
 
Maintainable API Docs and Other Rainbow Colored Unicorns
Maintainable API Docs and Other Rainbow Colored UnicornsMaintainable API Docs and Other Rainbow Colored Unicorns
Maintainable API Docs and Other Rainbow Colored Unicorns
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
The New 3-Tier Architecture: HTML5, Proxies, and APIs
The New 3-Tier Architecture: HTML5, Proxies, and APIsThe New 3-Tier Architecture: HTML5, Proxies, and APIs
The New 3-Tier Architecture: HTML5, Proxies, and APIs
 
Public API
Public APIPublic API
Public API
 

En vedette

StrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & CustomizationStrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & Customizationjguerrero999
 
Loopback presentation by tineco
Loopback presentation by tinecoLoopback presentation by tineco
Loopback presentation by tinecoStéphane Guilly
 
Authenticating and Securing Node.js APIs
Authenticating and Securing Node.js APIsAuthenticating and Securing Node.js APIs
Authenticating and Securing Node.js APIsJimmy Guerrero
 
Micro Gateways are a Big Deal
Micro Gateways are a Big DealMicro Gateways are a Big Deal
Micro Gateways are a Big DealJoe Sepi
 
Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CaseJimmy Guerrero
 
Soluciones tecnológicas para REA
Soluciones tecnológicas para REASoluciones tecnológicas para REA
Soluciones tecnológicas para REARicardo Corai
 
Implementación Repositorio De Objetos De Aprendizajes Basado En
Implementación Repositorio De Objetos De Aprendizajes Basado EnImplementación Repositorio De Objetos De Aprendizajes Basado En
Implementación Repositorio De Objetos De Aprendizajes Basado Enf.cabrera1
 
What is Node.js used for: The 2015 Node.js Overview Report
What is Node.js used for: The 2015 Node.js Overview ReportWhat is Node.js used for: The 2015 Node.js Overview Report
What is Node.js used for: The 2015 Node.js Overview ReportGabor Nagy
 
Presentacion MoodleMoot 2014 Colombia - Integración Moodle con un Repositorio...
Presentacion MoodleMoot 2014 Colombia - Integración Moodle con un Repositorio...Presentacion MoodleMoot 2014 Colombia - Integración Moodle con un Repositorio...
Presentacion MoodleMoot 2014 Colombia - Integración Moodle con un Repositorio...Paola Amadeo
 
Responsive Design
Responsive DesignResponsive Design
Responsive DesignMRMtech
 
Stack Overflow - It's all about performance / Marco Cecconi (Stack Overflow)
Stack Overflow - It's all about performance / Marco Cecconi (Stack Overflow)Stack Overflow - It's all about performance / Marco Cecconi (Stack Overflow)
Stack Overflow - It's all about performance / Marco Cecconi (Stack Overflow)Ontico
 
Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureRaven Tools
 
Rapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRaymond Camden
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
Why Scala for Web 2.0?
Why Scala for Web 2.0?Why Scala for Web 2.0?
Why Scala for Web 2.0?Alex Payne
 

En vedette (20)

StrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & CustomizationStrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & Customization
 
Loopback presentation by tineco
Loopback presentation by tinecoLoopback presentation by tineco
Loopback presentation by tineco
 
Authenticating and Securing Node.js APIs
Authenticating and Securing Node.js APIsAuthenticating and Securing Node.js APIs
Authenticating and Securing Node.js APIs
 
Micro Gateways are a Big Deal
Micro Gateways are a Big DealMicro Gateways are a Big Deal
Micro Gateways are a Big Deal
 
Loopback
LoopbackLoopback
Loopback
 
Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use Case
 
groovy & grails - lecture 13
groovy & grails - lecture 13groovy & grails - lecture 13
groovy & grails - lecture 13
 
Soluciones tecnológicas para REA
Soluciones tecnológicas para REASoluciones tecnológicas para REA
Soluciones tecnológicas para REA
 
Implementación Repositorio De Objetos De Aprendizajes Basado En
Implementación Repositorio De Objetos De Aprendizajes Basado EnImplementación Repositorio De Objetos De Aprendizajes Basado En
Implementación Repositorio De Objetos De Aprendizajes Basado En
 
Repositorio Institucional para el manejo de Investigaciones de la UNAN-Manag...
 Repositorio Institucional para el manejo de Investigaciones de la UNAN-Manag... Repositorio Institucional para el manejo de Investigaciones de la UNAN-Manag...
Repositorio Institucional para el manejo de Investigaciones de la UNAN-Manag...
 
What is Node.js used for: The 2015 Node.js Overview Report
What is Node.js used for: The 2015 Node.js Overview ReportWhat is Node.js used for: The 2015 Node.js Overview Report
What is Node.js used for: The 2015 Node.js Overview Report
 
Presentacion MoodleMoot 2014 Colombia - Integración Moodle con un Repositorio...
Presentacion MoodleMoot 2014 Colombia - Integración Moodle con un Repositorio...Presentacion MoodleMoot 2014 Colombia - Integración Moodle con un Repositorio...
Presentacion MoodleMoot 2014 Colombia - Integración Moodle con un Repositorio...
 
Stack_Overflow-Network_Graph
Stack_Overflow-Network_GraphStack_Overflow-Network_Graph
Stack_Overflow-Network_Graph
 
Responsive Design
Responsive DesignResponsive Design
Responsive Design
 
Stack Overflow - It's all about performance / Marco Cecconi (Stack Overflow)
Stack Overflow - It's all about performance / Marco Cecconi (Stack Overflow)Stack Overflow - It's all about performance / Marco Cecconi (Stack Overflow)
Stack Overflow - It's all about performance / Marco Cecconi (Stack Overflow)
 
Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & Structure
 
Rapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoopRapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoop
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Why Scala for Web 2.0?
Why Scala for Web 2.0?Why Scala for Web 2.0?
Why Scala for Web 2.0?
 
Curso avanzado de capacitación en DSpace
Curso avanzado de capacitación en DSpaceCurso avanzado de capacitación en DSpace
Curso avanzado de capacitación en DSpace
 

Similaire à Toronto node js_meetup

Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopJimmy Guerrero
 
Overview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integrationOverview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integrationBizTalk360
 
Introducing ONAP for OpenStack St Louis Meetup
Introducing ONAP for OpenStack St Louis MeetupIntroducing ONAP for OpenStack St Louis Meetup
Introducing ONAP for OpenStack St Louis Meetupdjzook
 
AWS Webcast - Splunk and Autodesk
AWS Webcast - Splunk and AutodeskAWS Webcast - Splunk and Autodesk
AWS Webcast - Splunk and AutodeskAmazon Web Services
 
MuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationMuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationPace Integration
 
Soa12c launch 1 overview cr
Soa12c launch 1 overview crSoa12c launch 1 overview cr
Soa12c launch 1 overview crVasily Demin
 
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Vidyasagar Machupalli
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)Sascha Wenninger
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathonaaronwso2
 
Teched India Vijay Interop Track
Teched India Vijay Interop TrackTeched India Vijay Interop Track
Teched India Vijay Interop Trackvijayrvr
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloudErnest Mueller
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivotalOpenSourceHub
 
WSO2Con Asia 2014 - Building the API-Centric Enterprise
WSO2Con Asia 2014 - Building the API-Centric EnterpriseWSO2Con Asia 2014 - Building the API-Centric Enterprise
WSO2Con Asia 2014 - Building the API-Centric EnterpriseWSO2
 
Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009guest829442
 
RichardChauvetShortResume2015
RichardChauvetShortResume2015RichardChauvetShortResume2015
RichardChauvetShortResume2015Richard Chauvet
 

Similaire à Toronto node js_meetup (20)

Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
Overview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integrationOverview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integration
 
Introducing ONAP for OpenStack St Louis Meetup
Introducing ONAP for OpenStack St Louis MeetupIntroducing ONAP for OpenStack St Louis Meetup
Introducing ONAP for OpenStack St Louis Meetup
 
AWS Webcast - Splunk and Autodesk
AWS Webcast - Splunk and AutodeskAWS Webcast - Splunk and Autodesk
AWS Webcast - Splunk and Autodesk
 
MuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationMuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP Integration
 
Soa12c launch 1 overview cr
Soa12c launch 1 overview crSoa12c launch 1 overview cr
Soa12c launch 1 overview cr
 
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
 
Ramji
RamjiRamji
Ramji
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon
 
Cloud and BYOD
Cloud and BYODCloud and BYOD
Cloud and BYOD
 
Teched India Vijay Interop Track
Teched India Vijay Interop TrackTeched India Vijay Interop Track
Teched India Vijay Interop Track
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
 
Rajeev_Resume
Rajeev_ResumeRajeev_Resume
Rajeev_Resume
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
 
WSO2Con Asia 2014 - Building the API-Centric Enterprise
WSO2Con Asia 2014 - Building the API-Centric EnterpriseWSO2Con Asia 2014 - Building the API-Centric Enterprise
WSO2Con Asia 2014 - Building the API-Centric Enterprise
 
Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009
 
Arun Kumar(7.8Yrs).DOC
Arun Kumar(7.8Yrs).DOCArun Kumar(7.8Yrs).DOC
Arun Kumar(7.8Yrs).DOC
 
RichardChauvetShortResume2015
RichardChauvetShortResume2015RichardChauvetShortResume2015
RichardChauvetShortResume2015
 

Dernier

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 

Dernier (20)

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 

Toronto node js_meetup

  • 1. Enterprise Node.js to Power the API Economy Shubhra Kar | Products & Education twitter:@shubhrakar mail:skar@strongloop.com
  • 2. Wake up to the API economy Explosion of channels (browsers, mobile, sensors, wearable, real-time communication) u Sheer number of clients has increased u Clients are increasingly sophisticated u Node.js is the platform of choice for these API StrongLoop Confidential and Proprietary Information – © 2015
  • 3. Latency demands are uncompromising 10 25 50 100100 50 10 15 40 100 25 Web SaaS Mobile IoT The new curve Concurrent Users Latency Adoption StrongLoop Confidential and Proprietary Information – © 2015
  • 4. Not all APIs are built equal The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( not sure on this one) Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Items for ACL Quick Example of Use App Server Add On App Server Relational Database Clustered Database Security Gateway Cl Laptop ( not requested but useful) Connections Tablet Phone IoT SDK AP Quick Examp App Server X – Backend ? X - Channel X - Platform API Neutrality Mainframe to Mobile ? StrongLoop Confidential and Proprietary Information – © 2014
  • 5. API “Re-Composition” is good…but not good enough Relational Database Clustered Database Security Gateway Cloud Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Quick Example of Use App Server Relational Database Clustered Database Security Gateway Laptop ( not requested but useful) Connections Tablet Phone IoT SDK Quick E App Server Auth Routing Rate-Limit Proxy Mediation Orchestration Analytics StrongLoop Confidential and Proprietary Information – © 2014
  • 6. The need is “DE-COMPOSITION” SaaS Mobile IoTWeb App Server API Server HTML JSON {JSON} {JSON} {JSON}<SOAP/XML> <TABLE> StrongLoop Confidential and Proprietary Information – © 2014
  • 7. Micro-services has arrived StrongLoop Confidential and Proprietary Information – © 2014
  • 9. So who is propelling this transformation ?
  • 10. Why Node? 10 Node is FAST…er Node is perfect for APIs Node is JavaScript & JSON …and highly concurrent! StrongLoop Confidential and Proprietary Information – © 2015 Node is much lighter
  • 11.   LinkedIn moved from Rails to Node.js –  Cut down servers by 90% (30 à 3) –  Lower memory overhead and up to 20X faster   PayPal migrated to Node.js from Java: –  Reduce development time by >50% –  2X speed of delivery with less than existing resources –  33% lesser lines of code –  40% fewer files   Groupon displaced Ruby and Java with Node.js across the board: –  50% improvement in page response times –  Agile builds and deploys Any use-cases ?
  • 12. Behind the Curtain Node Bindings C/C++ (socket, http, etc.) V8 Libuv Libeio (thread pool) Libev (event loop) IOCP (IO completion ports) Node Standard Library (JavaScript) epoll/kqueue/poll (event ports) Linux Kernel Windows Kernel Yes, it’s C back there StrongLoop Confidential and Proprietary Information – © 2015
  • 13. {“..”} JSON is the new first class citizen StrongLoop Confidential and Proprietary Information – © 2014
  • 14. Full Stack JavaScript is powering mobility Angular Bootstrap Ionic Cordova Gartner predicts by 2016 more than 50% of the apps deployed will be Hybrid apps. LoopBack API Server Node.js StrongLoop Confidential and Proprietary Information – © 2014
  • 15. Nodies are not just Silicon Valley hipsters ! StrongLoop Confidential and Proprietary Information – © 2014
  • 16. s Node is de-facto for the backend API now •  67K Developers •  Fastest Growing (120K+ > Java, Ruby, PHP…) StrongLoop Confidential and Proprietary Information – © 2014
  • 17. Really, But isn’t it the wild west ?
  • 18.
  • 19. These guys sent me ! Bert Belder Ben Noordhuis Node Core Raymond Feng Ritchie Martori LoopBack / Express Core Sam Roberts Miroslav Bajtos Ryan Graham Plus 15 other full-time open source developers working on Node.js core, modules and tools. Contributing to over 100 open source modules. Supporting banks, retail, IoT companies, startups and internet companies on Node.js
  • 20. The only product company dedicated only to Node Jason Pressman Kiran Prasad Neil Day Nick Sturiale Paul Ambrose Marten Mickos StrongLoop Confidential and Proprietary Information – © 2014
  • 21. StrongLoop iPaaS for APIs Compose Integrate Test & Build Deploy & Scale Secure & Manage Monitor & Analyze •  Loopback •  Express •  Node Code Generators •  Data Connectors •  Service Connectors •  Client/Mobile SDKs •  Mobile Services •  Debugger •  Build Utilities •  Private Registry •  Bootstrap deployer •  Runtime manager •  Clustering, HA, Hot Deploy •  API Gateway •  Distributed Routing. •  Performance Monitoring •  Analytics •  Metering StrongLoop API Platform StrongLoop Confidential and Proprietary Information – © 2015
  • 22.
  • 24.
  • 25. Sample Code (Router using express 4.x)
  • 26. Pros Great starting point Low learning curve Nearly a standard for Node.js web middleware Fully customizable Targeted at browser, hence templating and rendering OOB Cons All endpoints need to be created manually Developers may end up creating their own non-optimized libraries Every end point needs to be tested Refactoring is painful, update everything everywhere No standards or prescription, DIY 26 Express
  • 27.
  • 28. Sample Code (Router using restify)
  • 29. Pros Very stable and actively developed. Automatic DTrace support for all handlers on enabled platforms Built in throttling SPDY support Borrows from express but without unnecessary templating/rendering Strict API with full control over HTTP interactions Visibility into latency and app characteristics Cons All endpoints need to be created manually Developers may end up creating their own non-optimized libraries Every end point needs to be tested Refactoring is painful, update everything everywhere No standards or prescription, DIY Less documentation Restify
  • 30.
  • 31. Sample Code (Router using hapi)
  • 32. Sample Code (Router using hapi)
  • 33. Pros Supported by Walmart labs. Less known but getting momentum Very granular control over request handling Detailed API reference with support for document generation Significantly more functionality for building web servers Pseudo prescriptive with configuration centric approach Caching, Authentication and input validation available Plugin based architecture for scaling Cons Good construction blocks but left to your own devices to figure out design patterns Binds you to specific modules and tool chains (catbox, joi, tv, boom, good, travelogue, yar) All endpoints need to be created manually Developers may end up creating their own non-optimized libraries Every end point needs to be tested Refactoring is painful, update everything everywhere 33
  • 34.
  • 35. Sample Code (Router using Loopback) Code needed Endpoints automatically created
  • 36. Sample Code (API explorer and test) Code needed API explorer automatically created
  • 37. Sample Code (RPC) Code needed Remotable calls
  • 38. Pros Very quick RESTful API development Convention over configuration (extends express) Built in models ready to use (ORM) RPC support, Web and Mobile SDKs Data Connectors Fully configurable when needed Extensive documentation Commercial support and full time team working on project (Loopback) Mobile Services (Push, Geo, Storage, Sync, Offline, File, Device, User) - Loopback Authentication, validation and Authorization Cons Higher learning curve Opinionated
  • 39. REST API PUSH GEO OFF SYNC DEVICE USER FILE Relational Database Clustered Database Security Gateway Cloud Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Quick Example of Use App S Add App Server Storage Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( not sure on this one) Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Items for ACL Quick Example of Use App Server Add On App Server REST API GATEWAY Channel SDKs API ENGINE C O N N E C T O R s A P I S D K s Loopback framework – ORM and Mobile connect in Node.js REST API atabase Security Gateway Cloud Firewall SOA Bus ( not sure on this one) Phone IoT SDK API SERVER Items for ACL Quick Example of Use App Server Add On App Server API Explorer
  • 40. Magical Features u  Discovery u  Migration / Replication u  Relationship Mapping u  Mixins - Aggregation u  Access Control u  User Management u  Isomorphic JS / Remoting u  Routing StrongLoop Confidential and Proprietary Information – © 2014
  • 41. Data & Services Integration Services Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( no Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Items for A Quick Example of Use App Server Add On App Server Storage y Cloud Firewall SOA Bus ( not sure on this one) API SERVER Items for ACL Quick Example of Use App Server Add On REST Messaging Database NoSQL Marquee - Discovery & Migration ! StrongLoop Confidential and Proprietary Information – © 2014
  • 42. User Experience   Arc UI – architect view –  Widget driven –  Visual composition, management & operations –  Marquee featured, evolving platform   StrongLoop Console (slc) - developer view –  Command Line Interface –  Full featured –  Greater customization support StrongLoop Confidential and Proprietary Information – © 2014
  • 43. API Explorer (Swagger) – Iterative build and test w/o frontend StrongLoop Confidential and Proprietary Information – © 2014
  • 44. API Gateway * Security & Social Logins * Evolving. Please do not share without written consent from StrongLoop Marquee – Auth, Routing, Throttling, Proxy, Mediation, Aggregation, Virtualization StrongLoop Confidential and Proprietary Information – © 2014
  • 45. API Gateway* u  Security (AAA) u  Mediation and Transformation u  Infrastructure QoS (pagination, throttling, caching, delivery guarantee, firewall) u  Analytics and health monitoring u  Aggregation and Microservices Routing u  Virtualization and Reverse Proxy StrongLoop Confidential and Proprietary Information – © 2014 * Evolving. Please do not share without written consent from StrongLoop
  • 46. Node vs Java for REST routing * 46 StrongLoop Confidential and Proprietary Information – © 2014 * Highly Confidential. Please do not share without written consent from StrongLoop
  • 47. Some Numbers – Top 3 US Bank * StrongLoop Confidential and Proprietary Information – © 2014 * Highly Confidential. Please do not share without written consent from StrongLoop
  • 48. Developer SDKs Omni-channel Client SDKs JS client JS Server Remoting JS client Marquee – Isomorphic JS, Mobile Integration StrongLoop Confidential and Proprietary Information – © 2014
  • 49. Mobile Services mBaaS Capabilities Marquee – Push, Geo, Offline Sync, Storage StrongLoop Confidential and Proprietary Information – © 2014
  • 50. Push Notification StrongLoop Confidential and Proprietary Information – © 2014
  • 52. Storage Service 52 StrongLoop Confidential and Proprietary Information – © 2014
  • 53. Offline Sync StrongLoop Confidential and Proprietary Information – © 2014
  • 55. Node.js support (Sample modules set) 55 Node.js Core strong- module-loader strong-cluster- connect-store strong-cluster- control SL-Config Loopback Strong-mq strong-task- emitter Engine.io Mongoose Strong-agent strong-cluster- socket.io-store strong-config- loader Request Node- heapdump Asynch node- inspector Passport Strong- remoting Q EJS Express Connect Socket.IO Reggie Postgres Connector Oracle Connector SQL Server Connector MongoDB Connector REST Connector In-Memory connector LIBUV V8 Profiler ①  Multi-platform (Windows, Unix, Solaris, Mac) support ②  On-premises, private or public cloud support ③  Certified Node.js curated modules and ecosystem ④  Commercial Enterprise supported, security updates StrongLoop Confidential and Proprietary Information – © 2014
  • 57. Debugging Marquee – Chrome Dev Tools, Remote StrongLoop Confidential and Proprietary Information – © 2014
  • 58. Debugging server side clustered apps slc debug app.js Debugging single process slc debug app.js http://localhost:8080/debug?port=<5858+ID-of-process> Debugging clustered process in V11 %node debug –p <PID> connecting…ok … debug>quit %node-inspector http://127.0.0.1:8080/debug?port =5858 Or process._debugPort = 5858 + cluster.worker.id Debugging clustered process in V10
  • 59. Profilers StrongLoop Confidential and Proprietary Information – © 2014
  • 60. Does Node have memory leaks ? StrongLoop OSS - HeapSnapshots slc runctl heap-snapshot ID
  • 62. heapdump for V8 snapshots npm install heapdump   Add to app : var heapdump = require(‘heapdump’)   Method 1 : writeSnapshot   Method 2 : SIGUSR2 (Unix only)   Make sure your directory is writable var heapdump = require('heapdump') ... heapdump.writeSnapshot() kill –USR2 <pid> process.chdir('/path/to/writeable/dir’)
  • 63. Heap Snapshot strategies   Programmatic heap snapshots (timer based)   Programmatic heap snapshots (threshold based) var heapdump = require('heapdump') ... setInterval(function () { heapdump.writeSnapshot() }, 6000 * 30) <strong>(1)</strong> var heapdump = require('heapdump') var nextMBThreshold = 0 <strong>(1)</strong> setInterval(function () { var memMB = process.memoryUsage().rss / 1048576 <strong>(2)</ strong> if (memMB &gt; nextMBThreshold) { <strong>(3)</strong> heapdump.writeSnapshot() nextMBThreshold += 100 } }, 6000 * 2) <strong>(4)</strong>
  • 64. How we fixed a real production problem
  • 65. Don’t Block the EventLoop StrongLoop Confidential and Proprietary Information – © 2015
  • 66. Blocked event loop in Meteor atmosphere   node-fibers implements co-routines. Meteor uses this to hack local thread storage allowing V8 to run multiple execution contexts each mapped to a co-routine. FindOrAllocatePerThreadDataForThisThread() used in switching context between co- routines   Co-routines are cooperative; the current coroutine has to yield control before another one can run and that is what Meteor does in its process.nextTick() callback; it essentially builds concurrent (but not parallel) green threads on a round-robin scheduler   Too many tiny tasks and not one long running one was blocking the event loop process.nextTick() has a failsafe mechanism where it will process “x” tick callbacks before deferring the remaining ones to the next event loop tick.   Native MongoDB driver disabled the failsafe to silence a warning message in node v0.10 about maxtickDepth being reached ticks parent name 2274 7.3% v8::internal::Isolate::FindOrAllocatePerThreadDataForThisThread() 1325 58.3% LazyCompile: ~<anonymous> packages/meteor.js:683 1325 100.0% LazyCompile: _tickCallback node.js:399
  • 67. The solution   The workaround: switch fromprocess.nextTick() to setImmediate()
  • 69. Production Monitoring & 3rd Party integration •  Local / Hosted •  Graphite •  Splunk •  Datadog •  CA Introscope StrongLoop Confidential and Proprietary Information – © 2014
  • 70. Dynamic Instrumentation Agent App Monkey Patching Agent App Dynamic Instrument •  Live Edit •  Line Level Instrumentation •  Any package, any framework, any code •  Custom logic •  Counters, Gauges and Timers •  HA rollback StrongLoop Confidential and Proprietary Information – © 2015
  • 71. Can Errors be stitched into a trace and recovered ? Enter StrongLoop / Zones
  • 73. Runtime Mgmt. & Scaling
  • 74. Build & Deploy StrongLoop Confidential and Proprietary Information – © 2014
  • 75. Cluster and runtime scaling Marquee – HA, Auto-scale, Hot Deploy StrongLoop Confidential and Proprietary Information – © 2014
  • 76. MESH – Micro-services Deploy on Scale StrongLoop Confidential and Proprietary Information – © 2014
  • 77. First there was Node Thank you! JUST WIN, BABY!