SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
THE HAPPY
PATH
MIGRATION STRATEGIES FOR
NODE.JS
|Brian Anderson @Brianmatic
|Nic Jansma @NicJ
|Jason Sich @JaSich
INTRODUCTION
1. OST Todos and NDriven
2. What is Node.js?
3. What is the most popular stack for building web based
Node.js apps?
4. Why are large companies adopting it?
5. Why do we care? Why should you care?
6. Show me
OST TODOS
We are going to use this app for our migrations demos.
It is a reference sample application that we built and
released open source last year at GLSEC.
WHAT IS NODE.JS?
Node.js is a software platform for scalable server-side and
networking applications. Node.js applications are written in
JavaScript, and can be run within the Node.js runtime on
Windows, Mac OS X and Linux with no changes.
TECHNICAL DETAILS
Node.js runs JavaScript, using Google's runtime (C++).
Node.js is event-driven, asynchronous, single threaded
and non-blocking, which makes it able to scale more
efficiently than thread-per-connection models (eg. ASP).
V8
Node.js = base .Net Framework and runtime
Modules = libraries like .Net namespace assemblies
NPM = package manager like Nuget
MOST POPULAR STACK
FOR WEB APPS?
MEAN
1. MongoDB - Document-based database server
2. Express - Web framework for Node.js
3. Angular - JavaScript MVW framework
4. Node.js - Server side JavaScript
ENTERPRISE PROCESS
READY
Grunt, Gulp = build tool (MSBuild)
Jenkins, Strider = continuous integration (TeamCity,
Bamboo or Cruise Control still work)
NodeUnit, Jasmine, Mocha, Vows = unit testing (nUnit)
Bower = front end package manager by Twitter
MAJOR COMPANIES ARE
ADOPTING THESE
TECHNOLOGIES
PAYPAL
" We are moving every product & every site within PayPal to
Node. We started the journey by using it as prototyping
framework... by end of 2014 we hope to have all major
experiences redesigned, and rewritten on Node.
We are seeing big scale gains, performance boosts and big
developer productivity."
Built almost twice as fast with fewer people
33% fewer lines of code
40% less files
Bill Scott - http://www.quora.com/Node-js/What-companies-
are-using-Node-js-in-production
DOW JONES
"The simple truth is Node has reinvented the way we create
websites. Developers build critical functionality in days, not
weeks."
Michael Yormark
WSJD Product Operations
More examples here: http://nodejs.org/industry/
MORE EXAMPLES
Supported by Microsoft ( and ).
The list is long and keeps growing...
LinkedIn
eBay
Yahoo
Walmart
Visual Studio Azure
WHY SHOULD YOU CARE?
Less training, less code: One language on the client and
server.
Less abstraction: simplifies layers and removes need for
ORM if you think NoSQL.
Faster prototyping and bootstrapping.
Modern and makes you think in terms of modern web
apps.
A large community with a lot of active development.
These technologies seem to be beloved by developers.
SHOW ME
Take it over Nic and Jason
THE SCENARIO
You are a full-stack developer working at the FooFactory.
The FooFactory has an internal task management system
based off OST (ASP.NET MVC 4, , ).
Your boss, BossFoo, is interested in rapidly prototyping
new features for the task management system as it is
becoming an integral part of the FooFactory's daily
operations.
BossFoo has read about and is interested in
possibly using it to speed up and unify FooFactory's web
development stacks.
Todos AngularJS ndriven
Node.js
OST TODOS DEMO
phase0.foofactory.net
BOSSFOO'S
REQUIREMENTS
BossFoo wants you to add the following features to the
Todos application:
A document storage and retrieval system where users
can attach documents to their tasks.
An admin interface that can monitor the system in real-
time to show its load and operational costs.
YOUR CONSTRAINTS
However, you are constrained by the following criteria:
BossFoo is under a time and budget crunch to get these
features implemented and would prefer to see a
prototype of how it will work before he invests in big
hardware to run it full time.
There is no short-term budget for dedicated hardware
or storage until it has been proven to work, so an on-
demand infrastructure-as-a-service (IaaS) should be used.
The prototype has to integrate seamlessly into the
existing Todos application.
THE PATH TO NODE.JS
You carefully consider what you will need to prototype the
new features:
A document storage system that will scale gracefully as
usage increases.
A new API that allows for document listing, creation,
retrieval and deletion.
An update to the Todos AngularJS application that will
integrate with the new API.
DOCUMENT STORAGE
Since you have no hardware budget, you choose to use
, a cloud-based file system that scales seamlessly.Amazon S3
API - THE CONTENDERS
There are at least two stacks you could use to build the API:
C# / ASP.net MVC: Extend the existing MVC app, add data
models, build a new API, update all the layers of the onion,
integrate with S3, update the AngularJS UI.
Node.js: Add a new Node.js API server, have it integrate
with S3, update the AngularJS UI.
AND THE WINNER IS...
NODE.JS
Node.js is great for prototyping since there is no build
process, JavaScript is a dynamic language, server and
client code look the same, etc.
Amazon S3 introduces a high latency link. Node.js is non-
blocking so it can scale better.
Node.js and make it easy to build real-time
applications.
Socket.IO
PHASE 1: BUILDING THE
API
Goal: Create a Node.js API server that interacts with Amazon
S3, and update the AngularJS UI to associate documents
with tasks
PHASE 1: STEPS
1. Get ...
2. Bootstrap an project:
> express node-server
3. Add a few simple REST routes for document creating,
listing, retrieval and removal.
4. Integrate with Amazon's :
> npm install aws-sdk
5. Update the AngularJS application to point to the Node.js
API server.
6. Hook your new node server into IIS server using .
up and running with Node
express
SDK for JavaScript
iisnode
PHASE 1: REST API
We want to create the following REST API routes:
1. GET /api/todo/:id/files
Get all of the file names for a todo
2. GET /api/todo/:id/file/:name
Get a specific file
3. DELETE /api/todo/:id/file/:name
Delete a specific file
4. POST /api/todo/:id/files
Upload (overwrite) a file
PHASE 1: CODE
//imports
varhttp=require('http'),fs=require('fs'),
express=require('express'),AWS=require('aws-sdk');
//configureAWS
AWS.config.loadFromPath('./aws.json');
vars3=newAWS.S3();
//startuptheHTTPserver
app=express();
varhttpServer=http.createServer(app);
httpServer.listen(80);
//oneoftheroutes
app.get('/api/todo/:id/files/:name',function(req,res){
s3.getObject({
Bucket:'glsec-2014',
Key:'todos/'+req.params.id+'/'+req.params.name+'.txt'
},function(err,data){
if(err||!data){returnres.send(500,err);}
varbuff=newBuffer(data.Body,"binary");
res.send(buff);
});
});
This is a simplified (but runnable) version of the .code
PHASE 1: DEMO
phase1.foofactory.net
PHASE 2: BUILDING THE
ADMIN INTERFACE
Goal: Create an Admin interface so the system can be
monitored in real-time.
PHASE 2: STEPS
1. Create a new AngularJS view for Admins.
2. Add to the node server and AngularJS client.
3. Add Socket.IO events for log events, API hits and periodic
server statistics.
4. Use the JavaScript charting library to display
real-time charts.
Socket.IO
Rickshaw
PHASE 2: CODE
Server
//...continuedfromPhase1servercode...
varsocketIo=require('socket.io');
varsockets=[];
io=socketIo.listen(httpServer);
io.sockets.on('connection',function(socket){
sockets.push(socket);
socket.emit('log',{msg:'Hello'});
});
Client
<scriptsrc="socket.io.js"></script>
<script>
//...AngularJSclientcode...
varsocket=io.connect('http://api.foofactory.net');
socket.on('log',function(data){
//logmessage
});
</script>
This is a simplified (but runnable) version of the .code
PHASE 2: DEMO
PHASE 3: SCALING
Goal: Allow the system to be easily scaled by Admins.
PHASE 3: STEPS
1. Add buttons for Admins to increase or decrease the
number of Node.js API server instances (enterprise or
cloud).
2. Add a new controller that will manage internal VMs,
or Node.js load-balanced instances.
3. Allow Admins to monitor the number of instances.
4. Have all Node.js API server instances communicate with
the master server, sending stats, logs and API hits in real-
time.
Amazon EC2 Azure
For this phase, we created mock instances that pretend to see user activity.
PHASE 3: CODE
Load-Balanced Instances
//workerInstance.js:Serverinstancesalsoconnect
//tomasterAPIserverviaSocket.IO
varsocketIoClient=require('socket.io-client');
vario=socketIoClient.connect('http://api.foofactory.net');
client.on('connect',function(){
client.emit('log',{msg:'Iconnected'});
});
Master Server
//...continuedfromPhase2servercode...
//collectlogeventsfromotherserverinstances
socket.on('log',function(data){
//repeatlogtoallAdminclients
for(vari=0;i<sockets.length;i++){
sockets[i].emit('log',data);
}
});
This is a simplified version of the .code
PHASE 3: DEMO
phase3.foofactory.net
PHASE 4: REWRITING THE
ASP.NET MVC API
Goal: For comparison, migrate all of the existing ASP.net
MVC API to Node.js.
PHASE 4: STEPS
1. Create a new REST API in the Node.js server that mimics
the ASP.NET MVC REST API.
2. Simplify by using a NoSQL solution such as for
todo storage.
MongoDB
PHASE 4: REST API
Leave the client alone. Migrate the following REST APIs to
Node.js:
1. GET /api/todolist/:id/todos: Get todos for a list
2. POST /api/todolist/:id/todos: Post a todo to a list
3. GET /api/todolists: Get all of the todos for the user
4. GET /api/todolist/:id: Get a specific todolist
5. DELETE /api/todolist/:id: Deletes a specific todolist
6. POST /api/todolist: Creates a todolist
PHASE 4: CODE: DATA
MODEL
//todolist.js
varmongoose=require('mongoose');
vartodoSchema=mongoose.Schema({
Title:String,
Completed:Boolean
});
vartodoListSchema=mongoose.Schema({
Name:String,
OwnerId:String,
Todos:[todoSchema]
});
//CommonJSexports
exports.Todo=mongoose.model('Todo',todoSchema);
exports.TodoList=mongoose.model('TodoList',todoListSchema);
This is a simplified version of the .code
PHASE 4: CODE:
CONTROLLER
varTodoList=require('./todolist').TodoList;
app.get('/api/todolists',function(req,res){
varuserId=req.get('userId');
//MongoDB/MongooseORM
TodoList.find({OwnerId:userId},function(err,lists){
if(err){returnres.send(500,err);}
if(!lists){returnres.send(404);}
returnres.send(lists);
});
});
PHASE 4: CODE: CLIENT
Before
angular.module("todos.services",['ngResource']).
factory("TodoList",['$resource',function($resource){
return$resource('/api/todolists/:id',{id:'@Id'});
}]).
}]).
After
angular.module("todos.services",['ngResource']).
factory("TodoList",['$resource',function($resource){
return$resource('http://api.foofactory.net/api/todolists/:id',{id:'@Id'});
}]).
}]).
PHASE 4: DEMO
This should look the same as Phase 2, now powered by Node.js!
phase4.foofactory.net
MIGRATION STRATEGIES
Start small: Consider implementing a small new feature
in Node.js before you decide what parts of your
architecture make sense to use Node.js.
Learn to love prototyping: Node is great for quickly
experimenting on new features. Prototype first before
engineering a fully-baked solution.
Hook Node.js into IIS: Consider using to easily
hook Node.js into your IIS server instead of adding a
separate Node.js server.
Use it alongside your existing apps: Give it a try
iisnode
CLOSING
Links:
Code:
Presentation:
Demo: , ,
,
|
|
|
github.com/hello-mean/glsec-2014
github.com/hello-mean/glsec-
2014/presentation
phase1.foofactory.net phase1.foofactory.net
phase1.foofactory.net phase1.foofactory.net
Brian Anderson @Brianmatic
Nic Jansma @NicJ
Jason Sich @JaSich

Contenu connexe

Tendances

Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudMicroservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudBen Wilcock
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassPaul Withers
 
High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010Nicholas Zakas
 
Setting Up Development Environment For Google App Engine & Python | Talentica
Setting Up Development Environment For Google App Engine & Python | TalenticaSetting Up Development Environment For Google App Engine & Python | Talentica
Setting Up Development Environment For Google App Engine & Python | TalenticaTalentica Software
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKPaul Withers
 
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Matt Raible
 
Clojure Web Development
Clojure Web DevelopmentClojure Web Development
Clojure Web DevelopmentHong Jiang
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseMatt Raible
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)Yan Cui
 
A. De Biase/C. Quatrini/M. Barsocchi - API Release Process: how to make peopl...
A. De Biase/C. Quatrini/M. Barsocchi - API Release Process: how to make peopl...A. De Biase/C. Quatrini/M. Barsocchi - API Release Process: how to make peopl...
A. De Biase/C. Quatrini/M. Barsocchi - API Release Process: how to make peopl...Codemotion
 
Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)Yan Cui
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Matt Raible
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Yan Cui
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastAtlassian
 
Building Cross Platform Apps with Electron
Building Cross Platform Apps with ElectronBuilding Cross Platform Apps with Electron
Building Cross Platform Apps with ElectronChris Ward
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...Jesse Gallagher
 

Tendances (20)

Spring boot
Spring bootSpring boot
Spring boot
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudMicroservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloud
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
 
High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010
 
Setting Up Development Environment For Google App Engine & Python | Talentica
Setting Up Development Environment For Google App Engine & Python | TalenticaSetting Up Development Environment For Google App Engine & Python | Talentica
Setting Up Development Environment For Google App Engine & Python | Talentica
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDK
 
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
 
Clojure Web Development
Clojure Web DevelopmentClojure Web Development
Clojure Web Development
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
 
Agility Requires Safety
Agility Requires SafetyAgility Requires Safety
Agility Requires Safety
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)
 
A. De Biase/C. Quatrini/M. Barsocchi - API Release Process: how to make peopl...
A. De Biase/C. Quatrini/M. Barsocchi - API Release Process: how to make peopl...A. De Biase/C. Quatrini/M. Barsocchi - API Release Process: how to make peopl...
A. De Biase/C. Quatrini/M. Barsocchi - API Release Process: how to make peopl...
 
Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
 
Building Cross Platform Apps with Electron
Building Cross Platform Apps with ElectronBuilding Cross Platform Apps with Electron
Building Cross Platform Apps with Electron
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
 

En vedette

Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and ProfitNicholas Jansma
 
Using Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web ApplicationsUsing Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web ApplicationsNicholas Jansma
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Nicholas Jansma
 
Forensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsNicholas Jansma
 
Html5 devconf nodejs_devops_shubhra
Html5 devconf nodejs_devops_shubhraHtml5 devconf nodejs_devops_shubhra
Html5 devconf nodejs_devops_shubhraShubhra Kar
 
Measuring the Performance of Single Page Applications
Measuring the Performance of Single Page ApplicationsMeasuring the Performance of Single Page Applications
Measuring the Performance of Single Page ApplicationsNicholas Jansma
 
Javascript Module Patterns
Javascript Module PatternsJavascript Module Patterns
Javascript Module PatternsNicholas Jansma
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907NodejsFoundation
 
Measuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserMeasuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserNicholas Jansma
 

En vedette (11)

Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and Profit
 
Using Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web ApplicationsUsing Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web Applications
 
Measuring Continuity
Measuring ContinuityMeasuring Continuity
Measuring Continuity
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Sails.js Intro
Sails.js IntroSails.js Intro
Sails.js Intro
 
Forensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance Investigations
 
Html5 devconf nodejs_devops_shubhra
Html5 devconf nodejs_devops_shubhraHtml5 devconf nodejs_devops_shubhra
Html5 devconf nodejs_devops_shubhra
 
Measuring the Performance of Single Page Applications
Measuring the Performance of Single Page ApplicationsMeasuring the Performance of Single Page Applications
Measuring the Performance of Single Page Applications
 
Javascript Module Patterns
Javascript Module PatternsJavascript Module Patterns
Javascript Module Patterns
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 
Measuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserMeasuring Real User Performance in the Browser
Measuring Real User Performance in the Browser
 

Similaire à Node.js Migration Strategies

Node.js Web Development .pdf
Node.js Web Development .pdfNode.js Web Development .pdf
Node.js Web Development .pdfAbanti Aazmin
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdfDarshanaMallick
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdflubnayasminsebl
 
Nodejs framework for app development.pdf
Nodejs framework for app development.pdfNodejs framework for app development.pdf
Nodejs framework for app development.pdfSufalam Technologies
 
Day in a life of a node.js developer
Day in a life of a node.js developerDay in a life of a node.js developer
Day in a life of a node.js developerEdureka!
 
Day In A Life Of A Node.js Developer
Day In A Life Of A Node.js DeveloperDay In A Life Of A Node.js Developer
Day In A Life Of A Node.js DeveloperEdureka!
 
Unveiling Five Best Node JS Frameworks that Are Rocking 2022 Stage
Unveiling Five Best Node JS Frameworks that Are Rocking 2022 StageUnveiling Five Best Node JS Frameworks that Are Rocking 2022 Stage
Unveiling Five Best Node JS Frameworks that Are Rocking 2022 StageDit_India
 
Node.js Development Tools
 Node.js Development Tools Node.js Development Tools
Node.js Development ToolsSofiaCarter4
 
20 Most Helpful Node.JS Open Source Projects.pdf
20 Most Helpful Node.JS Open Source Projects.pdf20 Most Helpful Node.JS Open Source Projects.pdf
20 Most Helpful Node.JS Open Source Projects.pdfiDataScientists
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)湯米吳 Tommy Wu
 
All You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdfAll You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdfiDataScientists
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?The Software House
 

Similaire à Node.js Migration Strategies (20)

NodeJs Frameworks.pdf
NodeJs Frameworks.pdfNodeJs Frameworks.pdf
NodeJs Frameworks.pdf
 
Node.js Web Development .pdf
Node.js Web Development .pdfNode.js Web Development .pdf
Node.js Web Development .pdf
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
 
Node js
Node jsNode js
Node js
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
 
Nodejs framework for app development.pdf
Nodejs framework for app development.pdfNodejs framework for app development.pdf
Nodejs framework for app development.pdf
 
Day in a life of a node.js developer
Day in a life of a node.js developerDay in a life of a node.js developer
Day in a life of a node.js developer
 
Day In A Life Of A Node.js Developer
Day In A Life Of A Node.js DeveloperDay In A Life Of A Node.js Developer
Day In A Life Of A Node.js Developer
 
Basic API Creation with Node.JS
Basic API Creation with Node.JSBasic API Creation with Node.JS
Basic API Creation with Node.JS
 
Unveiling Five Best Node JS Frameworks that Are Rocking 2022 Stage
Unveiling Five Best Node JS Frameworks that Are Rocking 2022 StageUnveiling Five Best Node JS Frameworks that Are Rocking 2022 Stage
Unveiling Five Best Node JS Frameworks that Are Rocking 2022 Stage
 
Node.js Development Tools
 Node.js Development Tools Node.js Development Tools
Node.js Development Tools
 
20 Most Helpful Node.JS Open Source Projects.pdf
20 Most Helpful Node.JS Open Source Projects.pdf20 Most Helpful Node.JS Open Source Projects.pdf
20 Most Helpful Node.JS Open Source Projects.pdf
 
Node js Introduction
Node js IntroductionNode js Introduction
Node js Introduction
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
 
All You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdfAll You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdf
 
Java script framework
Java script frameworkJava script framework
Java script framework
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Proposal
ProposalProposal
Proposal
 

Dernier

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Dernier (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Node.js Migration Strategies