Date post: | 16-Apr-2017 |
Category: |
Software |
Upload: | nodejsfoundation |
View: | 25,600 times |
Download: | 3 times |
The Enterprise Case for Node.js
V1 July, 2016
Table of Contents
• Node.js Introduction
– Technology
– The Node.js Foundation
– Industry Backing
• Selling Node.js in Your Company
– Performance
– Customer Experience
– Productivity
• Conclusion
• Appendix A: Node.js Enterprise Tooling and Services Directory
Node.js Introduction
Node.js Growth
By many measures, Node.js is the fastest growing and most significant development
language right now. With 4 million users and an annual growth rate of 100%, Node.js is
truly everywhere.
4
Technology Introduction
Node.js is the JavaScript runtime of choice for high-performance, low latency applications, powering everything from enterprise applications, robots, API engines, cloud stacks and mobile websites.
It uses an event-driven, non-blocking I/O model that makes it lightweight, efficient and highly-performant even under extreme load.
Node.js In Demand
• Node.js is the only language listed on UpWork’s Top 10 most wanted IoT Developer Skills
• Node.js ranks among the Top 10 languages for full stack, front end and back end developers surveyed by StackOverflow in their 2016 developer survey
• Only Android ranks higher than Node.js in Most Wanted* tech by StackOverflow
* % of developers who are not developing with the language or tech but have expressed interest in
developing with it
Node.js Foundation - A Linux Foundation Project
Mission: Enable widespread adoption and help accelerate development of Node.js and other related modules
7
Node.js Foundation Members
8
Node.js Vendor Ecosystem
Node.js Enterprise Services
Node.js Enterprise
Tooling
See Appendix A for service and tooling directory
Node.js And Performance
Node.js and Performance
Under high load (high concurrency), Node.js maintains high throughput and low latency
Three factors underpin Node’s high performance:
1. The V8 JavaScript engine, upon which Node.js is based, is highly optimized for performance by Google, who continues to invest heavily in advancing V8’s performance
2. JavaScript/Node.js events are lightweight, while threads are heavyweight. Consequently, Node.js is inherently more performant under load than monolithic designs (this article offers a nice recap)
3. Node.js is container-ready, which simplifies the move to cloud and microservices architectures (Richard Rodger, author of The Tao of Microservices, explains)
Node.js and Performance
In moving from monolithic Java server architecture to Node.js, Netflix improved performance and reduced infrastructure costs• Reduced start-up time from 40 mins to sub 1 minute• Reduced the number of EC2 instances on Node compared with the legacy Java
stack by 75%, while serving the same number of subscribers at lower latencies
Node.js and Performance
PayPal’s Node.js app doubled the number of requests per second and reduced response times by 35% versus previous Java version
Node.js and Performance
Groupon’s Node.js implementation reduced page load times by 50%
Node.js and Performance Diagnostics
Also see best Practices from Netflix’s @yunonx on maintaining high performance in large-scale production Node.js Applications
Building Node.js Applications for visibility, live tracing and debugging is aided by advancements in Node.js Core and in the ecosystem around it (e.g. Restify, Bunyan, etc.)The Node.js Core Diagnostics Working Group is working to ensure Node.js provides a set of comprehensive, documented, extensible diagnostic protocols, formats, and APIs to enable tool vendors to provide reliable diagnostic tools for Node.js
Work is divided into the following domains:• Tracing• Profiling• Heap and Memory Analysis• Step Debugging
Node.js and Performance Debugging
For problems you can’t diagnose expediently, or issues such as memory leaks, do post-mortems
1. Capture a core dump of running process at any time in production to capture all of the state of the process and then reboot it
2. There is now a broad set of tools that can be used: mdb_v8, llnode and IBM's IDDE3. This methodology offers Node.js Engineers several advantages, including
a. Allows services to stay up while developers investigate the problem (increased availability)
b. Allows several developers to investigate the same problem not at the same time (easier collaboration)
c. Allows developers to investigate issues at any time that is convenient for them (easier workflow)
Also see the Node.js Core Post-Mortem Working Group and best Practices from Netflix’s @yunonx on maintaining high performance in large-scale production Node.js Applications
Node.js And Customer Experience
Node.js and Customer Experience
• Today’s digital consumers expect all available data to be leveraged in App instantly to make their experience effortless
• This means an API-first strategy
• No language is better than Node.js for taking advantage of the explosion of API data
19
Drivers of the API Era
Available Data
CX Focus
Device / End Point Explosion
20
APIs on the Rise
Source: Programmable Web Source: Apigee, The State of APIs 2016
21
Node.js Excels for Data-intensive Apps
• The richer an app’s API layer becomes, the better suited it is to Node.js
• Node.js apps can handle thousands of concurrent connections
• Open-source modules provide performant DB interaction out of box
• SDKs available for consuming most third-party services and applications
Many mlns of rides/day
75 mln membersStreaming 100+
mln hrs/day
15 mln mobile profile views per
day
22
Node.js And Productivity
Node.js and Productivity
Node.js for frontend and server side, and on devices where appropriate, can increase developer productivity and improve developer job satisfaction
These improvements translate directly to the bottom line
Sources: PayPal, Capital One, Skycatch, Fusion Marketing
Node.js and Productivity
Improved developer satisfaction means less turnover, a better employer brand and easier recruitment
• Node.js Everywhere increases developers’ internal mobility, thus heading off one of the top reasons developers leave - namely lack of new challenges/monotonous work/feeling stuck
• Node.js Everywhere also appeals to many developers’ desire to use more JavaScript, which is described as a fun and flexible language
Node.js and Productivity
Node.js Everywhere makes it easy for developers to implement features end-to-end, reducing context switches and handoffs between front-end and back-end developers
Prior to replacing Java with Node.js on the server side, the Netflix UI team had to write many things twice and maintain separate toolchains
Conclusion
Node.js has helped transform the app dev landscape at leading organizations like Netflix, Capital One, Walmart, NASA, GoDaddy, PayPal - helping them keep pace with innovation in APIs, Web, mobile, devices and customer expectations
With its strong ecosystem and massive repository of non-blocking modules, Node.js can help your organization too
Thank you!www.nodejs.org
Appendix ANode.js Enterprise Services and Tooling Directory
Node.js Enterprise Ecosystem
Company Name & URLIBM http://IBM.com
Product or Service Description & URL
API Connect http://ibm.com/apiconnect
Product or Service CategoryPlatform
Benefits for Enterprises running Node.js and Examples
IBM API Connect offers features to manage the API lifecycle, including:Create—create high-quality, scalable and secure APIs for application servers, databases, enterprise service buses (ESB) and mainframes in minutes.Run—take advantage of integrated tooling to build, debug and deploy APIs and microservices using the Node.js or Java.Manage—create and manage portals that allow developers to quickly discover and consume APIs and securely access enterprise data, and monitor APIs to improve performance.Secure—Administrators can manage security and governance over APIs and the microservices. IT can set and enforce API policies to secure back-end information assets and comply with governance and regulatory mandates.
Node.js Enterprise Ecosystem
Company Name & URL
Joyent www.joyent.com
Joyent builds open source, container-native software to automate modern data centers. We use that software to operate the Triton Cloud service. We also make that software available to enterprises that want to operate their own private clouds.
Product or Service Description & URL
Triton DataCenter is a management platform that makes container management, including cluster management, composition, deployment, naming, logging and networking, efficient and easy.
Product or Service Category
Containers as a Service
Benefits for Enterprises running Node.js
As the original corporate steward of Node.js, we know microservices and how to operate them at scale. Enterprise support for Node.js is included with Triton.
Node.js Enterprise Ecosystem
Company Name & URLnearForm www.nearform.com
Product or Service Description & URL
Node.js Training, Consulting and Co-development
Product or Service Category
Service
Benefits for Enterprises running Node.js
We engage with our client’s technical people throughout the development process to help them learn Node.js at a deep and integrated level. We also support them with custom training programs. They work alongside us as part of our project team throughout the build.
Node.js Enterprise Ecosystem
Company Name & URL Nodesource - https://nodesource.com
Product or Service Description & URL
N|Solid - https://nodesource.com/products/nsolidThe premier enterprise-grade Node.js platform
Product or Service Category
Tools
Benefits for Enterprises running Node.js and Examples
Benefits for Enterprises running Node.js and ExamplesN|Solid -
Rapidly resolve performance problems
Protect customer data from vulnerable packages and unauthorized code
Drive performance and operational efficiency at scale
Node.js Enterprise Ecosystem
Company Name & URL Nodesource - https://nodesource.com
Product or Service Description & URL
N|Support - https://nodesource.com/services/nsupportNode.js support offering that helps companies establish and sustain enterprise-grade Node.js development and operations
Product or Service Category
Service/Support
Benefits for Enterprises running Node.js and Examples
N|Support -The NodeSource N|Support team extends the Node.js capabilities of your Development and DevOps teams, to protect your project and serve your team when it matters.
Node.js Enterprise Ecosystem
Company Name & URL Red Hat Inc. www.redhat.com
Product or Service Description & URL
Red Hat Mobile Application Platform (previously FeedHenry) https://www.redhat.com/en/technologies/mobile/application-platformSupports an agile approach to developing, integrating, and deploying enterprise mobile applications whether native, hybrid, or on the web
OpenShift - https://www.openshift.comPlatform-as-a-Service (PaaS) that allows developers to quickly develop, host, and scale applications in a cloud environment. With OpenShift you have a choice of offerings, including online, on-premise, and open source project options.
Product or Service Category
Online, Hosted or on prem. PaaS and MBaaS
Benefits for Enterprises running Node.js and Examples
For more than a decade, Red Hat® solutions have been trusted in the world’s most rigorous datacenters, handling everything from the critical to the routine. Red Hat subscriptions give you access to secure, enterprise-ready software, updates, information, and support services to keep your business running securely.
Node.js Enterprise Ecosystem
Company Name & URL RisingStack - risingstack.com
Product or Service Description & URL
Trace by RisingStack is a Node.js specialized performance monitoring solution. It allows developers to visualize requests and messages between microservices, databases, and external APIs - and get detailed information for debugging by looking at stack traces. Trace also provides unique event loop and garbage collector metrics as well as CPU, memory usage, response time and throughput data. Trace lets to define alert levels and sends notifications instantly via Slack, Pagerduty, Email or Webhook. - trace.risingstack.com
Product or Service Category
APM, Infrastructure Visualization, Debugging, Microservice Monitoring
Benefits for Enterprises running Node.js and Examples
Trace reduces the time engineers need to spend on analyzing logfiles and provides more time for building features. It enables enterprises to ship products faster and saves a significant amount of capital dedicated to development.
Node.js Enterprise Ecosystem
Company Name & URL Sauce Labs | www.saucelabs.com
Product or Service Description & URL
Sauce Labs cloud-based platform helps developers test native & hybrid mobile and web applications across 700+ browser / OS platforms, including iOS, Android & Mac OS X. Sauce supports Selenium, Appium and popular JavaScript unit testing frameworks, and integrates with all of the top programming languages, test frameworks and CI systems. With built-in video recording and screenshots of every test case, debugging tools, and secure tunneling for local or firewalled testing, Sauce makes running, debugging and scaling test suites quick and easy.
Product or Service Category
Cloud-based testing infrastructure for automated & manual front-end testing using Selenium or Appium.
Benefits for Enterprises running Node.js and Examples
One of the key benefits of Selenium and Appium is that tests can be written in any language – development teams can use JS end-to-end, creating their apps in JS, writing front-end unit tests in JS, and using Node.js for backend services as well as functional testing via Selenium and Appium - JS all the things!
Sauce Labs then provides a cloud-based infrastructure to run these tests – in parallel – across hundreds of different platform, device and OS combinations, removing the bottleneck usually associated with software testing.
Node.js Enterprise Ecosystem
Company Name & URLStrongLoop, an IBM Company www.strongloop.com
Product or Service Description & URL
LoopBack https://strongloop.com/node-js/loopback-framework/
Product or Service Category
Framework
Benefits for Enterprises running Node.js and Examples
LoopBack is a highly-extensible, open-source Node.js framework that enables you to:
● Create dynamic end-to-end REST APIs with little or no coding.● Access data from major relational databases, MongoDB, SOAP and REST APIs.● Incorporate model relationships and access controls for complex APIs.● Use geolocation, file, and push services for mobile apps.● Easily create client apps using Android, iOS, and JavaScript SDKs.● Run your application on-premises or in the cloud.
Node.js Enterprise Ecosystem
Company Name & URLYLD - www.yld.io
Product or Service Description & URL
Node.js Software Engineering, Consulting and Traininghttps://www.yld.io/what-we-doYLD changes the way companies think by delivering digital, technological and cultural transformation that enables them to succeed, through high quality Node.js software engineering, consultancy and training.
Product or Service Category
Services
Benefits for Enterprises running Node.js and Examples
We use open source technologies like Node.js and Docker to help build our client’s infrastructures, we help them strengthen their software engineering culture and create the agility necessary to compete in the market, and are responsible for some of the largest Node.js solutions in production today.