Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
A164 enterprise javascript ibm node sdk
1. IBM S oftware Univers ity 2015
WebS phere Tec hnic al Univers ity PL US
Mobile, BPM, Cloud, Integration, Application
Platform, IBM z Systems and Digital Experience
13 – 16 October 2015|Dublin, Ireland
A164
Enterprise Javascript with the IBM SDK
for Node.js
Toby Corbin
6. 6
JavaScript - History
• Netscape, 1995
• Scripting language for their Navigator browser
• Standardized as ECMAScript (currently v5.1)
• Client-side interaction dynamism to enhance HTML experience
• Realization only within the browser / client-side...
6
7. 7
Asynchronous JavaScript and XML (AJAX)
• Since about 2000...
• Dynamic web pages
• JavaScript sending/receiving XML-based data asynchronously in the
background
• Proliferation of JavaScript frameworks
• JavaScript largely interpreted (SpiderMonkey, Rhino, Nashorn, etc.)
7
8. 8
What is Node.js?
• Server-side JavaScript platform developed by Joyent
• Built on Google's V8 JavaScript runtime
• Goal: Efficiently build fast, scalable, 'real-time' network applications
• Event-oriented, non-blocking, asynchronous I/O framework 8
9. 9
Why Node.js?
• It is JavaScript
• Same language on client and server side
• Availability of JavaScript talent
• End-to-End JavaScript stack
• Greater productivity and integration with JSON APIs
• Event-driven, single-threaded model
• Eliminates concurrency and thread-safety worries
• Thousands of concurrent connections with minimal overhead
9
10. 10
Using Node.js for…
• Back-end APIs and services
• Mobile backend as a service (MBaaS)
• “Realtime” applications
• Business analytics
• and more… http://www.nodejs.org/industry
10
11. 11
JavaScript Landscape - Gartner
11
“By 2017, JavaScript will be the most in-demand language skill in mobile
application development (AD)”
13. 13
“Node.js Foundation's mission is to enable widespread adoption and help
accelerate development of Node.js and other related modules”
15 Person Advisory Board:
Bert Belder, Danese Cooper, Kevin Decker, TJ Fontaine, Dav Glass, Scott
Hammond, Cian O Caidin, Todd Moore, Gianugo Rabellino, Isaac Roth,
Chris Saint-Amant, Isaac Schlueter, Dan Shaw, Erik Toth, Chris Williams
15 Person Technical Steering Committee:
Alexis Campailla, Ben Noordhuis, Bert Belder, Brian White, Chris Dickinson,
Colin Ihrig, Fedor Indutny, James Snell, Jeremiah Senkpiel, Julien Gilli,
Michael Dawson, Rod Vagg, Shigeki Ohtsu, Steven Loomis, Trevor Norris
~350 Project Collaborators
IBM is a Founding Member and Platinum Sponsor
Node.js Foundation
14. 14
IBM is leading and influencing in a number of areas:
Foundation Inception and Governance Model
Internationalization Workgroup
Performance and Benchmarking Workgroup
Post-Mortem Diagnostics Workgroup
Contributing value to the Node.js runtime
Platform support for AIX, pLinux and zLinux
Internationalization and localization support
Security vulnerability and performance fixes
And providing other areas of value to the Node.js community:
Monitoring and Diagnostic Tools (IDDE, GCMV and Health Center)
Support for using IBM middleware products (Cloudant, DB2, MQLight)
IBM Leadership in Node.js
15. 15
Node.js Structure
Application
Modules
Node Standard Libraries
Node Bindings
libuv
V8
JavaScript
Engine
C / C++
JavaScript
OpenSSL
DependenciesPort to PPC architecture
https://github.com/v8/v8-git-mirror/tree/master/src/ppc
Port to Z architecture
Incubator - https://github.com/andrewlow/v8z
Hope to pour into Google repositories later this year
Added support for AIX
Working to contribute back
Added ICU support
Added internationalization
Security Patching
Updates for last 2 issues
done by IBM team
NPM module support
appmetrics
mqlight
cloudant
ibm_db
watson-developer-cloud
+ more
16. 16
IBM builds of Node.js
Built from community open source project and extended with diagnostics
Built for all platforms at a known fileset level to enable support
Extended not modified – 100% compatible
Available from: http://www.ibm.com/developerworks/web/nodesdk/
Linked to from: https://nodejs.org/download/
IBM SDK for Node.js
Public IBM
V8 Repositories
PPC and Z
support
Public IBM
Repository
Community
Node.js
Repository
Internal IBM
RepositoryCode Scans
License review
etc.
Value add
Healthcenter
agent
IDDE blob
IBM SDK
17. 17
• Co-location of Node.js server application with data and transactions on
p and z reduces latency of access to data on p and z.
• Availability and scalability of p and z Systems as environments for
both Node.js development, test and production
• All traditional advantages of consolidating multiple distributed servers:
Reduce data center footprint, simpler management, energy savings.
• Leverages the trusted environments of p and z Systems to maximize
security and uptime of critical Node.js applications
17
Why Node.js on p and z Systems?
18. 18 18
Why Node.js on p and z Systems?
• Results from Acme Air*:
– https://github.com/acmeair/acmeair
*IBM created open sourced benchmark
20. 20
Bluemix
20
Bluemix is an implementation of IBM's Open Cloud
Architecture, leveraging Cloud Foundry to enable developers
to rapidly build, deploy, and manage their cloud applications,
while tapping a growing ecosystem of available services and
runtime frameworks.
21. 21
Existing Java EE Online Stock Trading System
21
http://geronimo.apache.org/GMOxDOC20/daytrader.html
WebSphere
Application
Server
Business Logic
Persistent Layer
DB2
Example: Take an existing application
22. 22
Introduce a Real-time Stock Portal (i.e. mobile)
WebSphere
Application
Server
Business
Logic
Persistent
Layer
DB2
Gateway
Portal
New Portal with Node.js
23. 23
Social Media, Push Notifications, etc.
WebSphere
Application
Server
Business
Logic
Persistent
Layer
DB2
Gateway
Twitter
Portal
We want to Tweet!
27. 27
Live monitoring with “Health Center”
– Memory and CPU data
– GC performance
– Function profiling
– Provides API to create tools
Offline GC log analysis with “GCMV”
– GC performance
– Process and system memory
Offline Dump analysis with “IDDE”
– Analyse dumps for root cause
– Investigate memory leaks
Monitoring and diagnostics
28. 28
A common Node.js data collector used across IBM
Single source of data used by all consumers: profiling, monitoring, scaling, etc
Allow Node.js based products and components to supply additional data
Consistent data and experience across tools and products
Provide low entry enablement and up-sell to premium products
Attract users with free developer tool capabilities
Enable open source offerings for low end production users
Provide premium integrated tools as part of product offerings
Provide monitoring in all tools for new platform function from “day one”
Remove lag between function development and monitoring availability
Provide flight recorder capabilities
“Post-mortem” capabilities for support teams and monitoring tools
Node.js Monitoring Strategy
29. 29
Node Application Metrics or appmetrics is based on Health Center technology
Single agent technology suitable for monitoring multiple languages
Its available as an npm install
http://www.npmjs.com/package/appmetrics
What is “appmetrics”
31. 31
“Node Application Metrics” Architecture
Probe and aspects framework
- Allows drop-in probes to capture data from any 'require'd module
- Aspects framework enables module to be easily instrumented
Event API for custom metrics
- Additional data can be added by calling appmetrics.emit() anywhere in application code
Connectors responsible for formatting and transmitting data
- Create connections to target consumers
- Use appmetrics event callbacks to collect, format and transmit data
Node Runtime
(V8, libuv, etc)
Node Application
'appmetrics-***'
'appmetrics'
Node
Modules
Node
Modules
Node
Modules
Node
Modules
emit()
MQTT Broker
(eg. Mosca)
Eclipse IDE
(Health Center)
Target
Monitoring
(eg ElasticSearch)
Browser
eg. Kibana
Data collected
from Runtime
Probe framework
for instrumenting
module code
Event API for custom
application data
Connectors format
data and transmit
to target consumer
Optional in-built
MQTT connection
for Health Center
32. 32
Node Application Metrics Data
Data Type Event Name Data Provided
Application Data
HTTP request/response 'http' Time, Method, URL, Duration
MySQL database queries 'mysql' Time, SQL, Duration
MongoDB database queries 'mongo' Time, Query, Duration
Request tracking 'request' Time, Event Tree, Duration
Function Trace 'request' Time, Function, Duration
JavaScript Runtime
V8 Garbage Collection 'gc' Time, Type, Used, Size, Duration
V8 Profiler 'profiling' Time, Function Array, Samples
System Resources
CPU Usage 'cpu' Time, Process, System
Memory Usage 'memory' Time, Process (Physical, Reserved,
Virtual), System (Physical, Total)
33. 33
The node-hc command
If you globally installed the moduel with npm, you can use the node-hc
Command to run your application instead of node. (no code changes required)
$ node-hc app.js
Modifying your application to use the local installation
If you locally install this module with npm then you will additionally have access to
the monitoring data via the appmetrics API
To load appmetrics and get the monitoring API object, add the following to the
start-up code for your application:
var appmetrics = require('appmetrics');
var monitoring = appmetrics.monitor();
How do you configure it ?
34. 34
Node Application Metrics and ElasticSearch/Kibana (ELK)
var elk = require('appmetrics-elk').monitor();
var http = require('http');
var server = http.createServer(function handler(req, res) {
…
}).listen(process.env.PORT || 3000);
console.log('App listening on port 3000');
});
ES ES ES ES
client.bulk()
visualize
ELK connector ('appmetrics-elk') provides connection to ElasticSearch
Injects default indexes, mappings, charts and dashboards for use with Kibana 4
Custom probes can be automatically exploited by adding a mapping
35. 35
Node Application Metrics “Dashboard”
var dash = require('appmetrics-dash').start();
var http = require('http');
var server = http.createServer(function handler(req, res) {
…
}).listen(process.env.PORT || 3000);
console.log('App listening on port 3000');
});
Dashboard ('appmetrics-dash') as a dashboard application to the existing app
Provides live visualization using AngularJS, Socket.io and Google Charts
Allows customization of Port, Url, User ID and Password
Connect to
Http://<ip>:3000/admin
37. 37
Summary
IBM is leading and influencing in a number of areas:
●
Internationalization, Performance, Diagnostics
Contributing value to the Node.js runtime
●
Additional platform support, Security vulnerability and performance fixes
And providing other areas of value to the Node.js community:
●
Monitoring and Diagnostic Tools (IDDE, GCMV and Health Center), appmetrics