SlideShare a Scribd company logo
1 of 39
Download to read offline
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
© 2015 IBM Corporation 2

Toby Corbin
IBM Runtime Monitoring and Diagnostics Architect
- 14 years working with Java and JVM technologies
- 8 years working with monitoring and
diagnostic tooling

Recent work focus:
- Java monitoring, diagnostics and troubleshooting
- Java integration into the cloud
- JavaScript monitoring, diagnostics and troubleshooting

My contact information:
- corbint@uk.ibm.com
Introduction to the Speaker
© 2015 IBM Corporation 3
Agenda
●
Javascript History
●
IBM SDK for Node.js
●
Deploying Node.js Code
●
Monitoring and Diagnostic tools
●
Demo
4
Javascript History
5
JavaScript != Java
5
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
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
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
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
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
JavaScript Landscape - Gartner
11
“By 2017, JavaScript will be the most in-demand language skill in mobile
application development (AD)”
12
IBM SDK for Node.js
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
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
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
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
• 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
Why Node.js on p and z Systems?
• Results from Acme Air*:
– https://github.com/acmeair/acmeair
*IBM created open sourced benchmark
19
Deploying
Node.js Code
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

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

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

Social Media, Push Notifications, etc.
WebSphere
Application
Server
Business
Logic
Persistent
Layer
DB2
Gateway
Twitter
Portal
We want to Tweet!
24
WebSphere
App Server
Business Logic
Persistent Layer DB2
Twitter
On Premise
25
WebSphere
App Server
Business Logic
Persistent Layer DB2
Twitter
z/OS Connect
On Bluemix
26
Monitoring and Diagnostic
tools
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
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
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”
30
...and we've opensourced it
http://github.com/runtimetools/appmetrics
What is “appmetrics”
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
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
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
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
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
36
Demo
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
Toby Corbin
Thank you very much.
IBM
corbint@uk.ibm.com
© 2015 IBM Corporation 38
© 2015 IBM Corporation 39
Your feedback is valuable
Please complete your session or lab evaluation!
Session number A164 Enterprise Javascript with the IBM SDK for Node.js
Provide your evaluations by:
Evaluation forms:
Fill out a form at the end of each
session
Paper forms are located in each of the
session or lab rooms
Complete the session survey on
Event Connect Portal:
https://ibmeventconnect.com/dubli
nevent2015
Select Sessions, then Session Finder,
and complete the survey
- Or
-

More Related Content

What's hot

What's hot (20)

CICS TS v5.5 support for Node.js applications
CICS TS v5.5 support for Node.js applicationsCICS TS v5.5 support for Node.js applications
CICS TS v5.5 support for Node.js applications
 
KubeCon China June 2019 - Survey of Kubernetes related solutions for IoT and ...
KubeCon China June 2019 - Survey of Kubernetes related solutions for IoT and ...KubeCon China June 2019 - Survey of Kubernetes related solutions for IoT and ...
KubeCon China June 2019 - Survey of Kubernetes related solutions for IoT and ...
 
Pragatheswarakumar_v1.0
Pragatheswarakumar_v1.0Pragatheswarakumar_v1.0
Pragatheswarakumar_v1.0
 
Share seattle cics cloud
Share seattle cics cloudShare seattle cics cloud
Share seattle cics cloud
 
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareTrends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
 
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor appsKube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
 
cncf overview and building edge computing using kubernetes
cncf overview and building edge computing using kubernetescncf overview and building edge computing using kubernetes
cncf overview and building edge computing using kubernetes
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Citrix in AR/VR
Citrix in AR/VRCitrix in AR/VR
Citrix in AR/VR
 
Nodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEWNodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEW
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
An introduction to IBM BlueMix
An introduction to IBM BlueMixAn introduction to IBM BlueMix
An introduction to IBM BlueMix
 
Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Wisconsin .NET UG - Windows Azure
Wisconsin .NET UG - Windows AzureWisconsin .NET UG - Windows Azure
Wisconsin .NET UG - Windows Azure
 
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
 
12-Factor Apps
12-Factor Apps12-Factor Apps
12-Factor Apps
 
Cloud to Edge
Cloud to EdgeCloud to Edge
Cloud to Edge
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 

Similar to A164 enterprise javascript ibm node sdk

Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virender
vithakur
 
08 sdn system intelligence short public beijing sdn conference - 130828
08 sdn system intelligence   short public beijing sdn conference - 13082808 sdn system intelligence   short public beijing sdn conference - 130828
08 sdn system intelligence short public beijing sdn conference - 130828
Mason Mei
 
J2 Me Gaming Using Netbeans
J2 Me Gaming Using NetbeansJ2 Me Gaming Using Netbeans
J2 Me Gaming Using Netbeans
strongdevil
 
CV - Mohsan Raza Ali - Development Manager
CV - Mohsan Raza Ali - Development ManagerCV - Mohsan Raza Ali - Development Manager
CV - Mohsan Raza Ali - Development Manager
Mohsan Raza
 

Similar to A164 enterprise javascript ibm node sdk (20)

Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDK
 
Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virender
 
Kunal bhatia resume mass
Kunal bhatia   resume massKunal bhatia   resume mass
Kunal bhatia resume mass
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
Developing and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateDeveloping and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud Private
 
08 sdn system intelligence short public beijing sdn conference - 130828
08 sdn system intelligence   short public beijing sdn conference - 13082808 sdn system intelligence   short public beijing sdn conference - 130828
08 sdn system intelligence short public beijing sdn conference - 130828
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Mendix-7-Keynote
Mendix-7-KeynoteMendix-7-Keynote
Mendix-7-Keynote
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
J2 Me Gaming Using Netbeans
J2 Me Gaming Using NetbeansJ2 Me Gaming Using Netbeans
J2 Me Gaming Using Netbeans
 
CV - Mohsan Raza Ali - Development Manager
CV - Mohsan Raza Ali - Development ManagerCV - Mohsan Raza Ali - Development Manager
CV - Mohsan Raza Ali - Development Manager
 
Using Modern Tools and Technologies to Improve Your Software Architecture
Using Modern Tools and Technologies to Improve Your Software ArchitectureUsing Modern Tools and Technologies to Improve Your Software Architecture
Using Modern Tools and Technologies to Improve Your Software Architecture
 
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehnenode.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technology
 
Vijay Oscon
Vijay OsconVijay Oscon
Vijay Oscon
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 

Recently uploaded

Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
David Celestin
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
ZurliaSoop
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
Kayode Fayemi
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Hung Le
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
amilabibi1
 

Recently uploaded (17)

Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of Drupal
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
Zone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptxZone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptx
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfSOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait Cityin kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
Introduction to Artificial intelligence.
Introduction to Artificial intelligence.Introduction to Artificial intelligence.
Introduction to Artificial intelligence.
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
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
  • 2. © 2015 IBM Corporation 2  Toby Corbin IBM Runtime Monitoring and Diagnostics Architect - 14 years working with Java and JVM technologies - 8 years working with monitoring and diagnostic tooling  Recent work focus: - Java monitoring, diagnostics and troubleshooting - Java integration into the cloud - JavaScript monitoring, diagnostics and troubleshooting  My contact information: - corbint@uk.ibm.com Introduction to the Speaker
  • 3. © 2015 IBM Corporation 3 Agenda ● Javascript History ● IBM SDK for Node.js ● Deploying Node.js Code ● Monitoring and Diagnostic tools ● Demo
  • 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)”
  • 12. 12 IBM SDK for Node.js
  • 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!
  • 25. 25 WebSphere App Server Business Logic Persistent Layer DB2 Twitter z/OS Connect On Bluemix
  • 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”
  • 30. 30 ...and we've opensourced it http://github.com/runtimetools/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
  • 38. Toby Corbin Thank you very much. IBM corbint@uk.ibm.com © 2015 IBM Corporation 38
  • 39. © 2015 IBM Corporation 39 Your feedback is valuable Please complete your session or lab evaluation! Session number A164 Enterprise Javascript with the IBM SDK for Node.js Provide your evaluations by: Evaluation forms: Fill out a form at the end of each session Paper forms are located in each of the session or lab rooms Complete the session survey on Event Connect Portal: https://ibmeventconnect.com/dubli nevent2015 Select Sessions, then Session Finder, and complete the survey - Or -