SlideShare uma empresa Scribd logo
1 de 25
Introducción a Node.js
Rodolfo Finochietti
@rodolfof
Evolución de Internet
Internet of
Content
• Web 1.0
• Web-sites
• Search
• eMail
• HTML
Internet of
Services
• Web 2.0
• eCommerce / eServices
• Web Services
Internet of
People
• Social Media
• Mobile enablement
• HTML 5
• REST
Internet of
Things
• “Cosas” respresentadas
semanticamente en
Internet
• Digital Business
¿Estamos preparados?
Dolores que nos cuentan…
 Mucha interdependencia entre funcionalidades (tight-
coupling)
 Principalmente en sistemas “monolíticos”
 También se da entre servicios y base de datos
 Infraestructuras difíciles de escalar
 Equipos con muchos focos de atención
El enfoque de Microservicios
Microservicios
Qué es una arquitectura de
microservicios…
 No son “pequeños web services” (no es una cuestión de
tamaño… solamente)
 Es un estilo de arquitectura que describe una forma de
diseñar aplicaciones como colecciones de servicios
(“producto”) que se despliegan y evolucionan de forma
independiente
Microservicios
Objetivos principales…
 Garantizar que cada producto siempre esté en
funcionamiento
 Entregar nuevas funcionalidades en forma constante
(Continuous Delivery)
 Reduciendo interdependencias con componentes externos
 Maximizando la automatización de pruebas y procesos de despliegue
 Alineamiento de la estructura organizativa a “productos”
 Equipos multi-disciplinarios
Microservicios
Características
 Foco en el “producto” como un servicio que debe estar
en constante funcionamiento
 Las funcionalidades ejecutan en diferentes procesos
 DB/Modelo propio a cada producto/servicio
 Organización gira entorno a productos que brindan
capacidades de negocios
 “Products, not projects”
Node.js
 El objetivo de Node.js es proveer un
plataforma sencilla para construir software de
red altamente escalable
 Node.js utiliza JavaScript en el servidor haciendo que la
comunicaciones entre el cliente y el servidor sea en el mismo
lenguaje (reduciendo la fricción y el context switching).
 Los servidores tradicionalmente están basados en threads pools,
Node.js en cambio esta basado en Eventos. Node.js sirve cada
request en un Event Loop que puede atender muchas conexiones
concurrentes.
Blocking vs. Non-Blocking
Blocking vs. Non-Blocking
Platform Number of request per
second
PHP (via Apache) 3187,27
Static (via Apache) 2966,51
Node.js 5569,30
Node.js vs Apache
Node.js Core
 V8: Google C++ JavaScript Engine
 Libev: Event Loop
 LibEio: Async I/O
 LibUv: Abstracción para libeio, libev, etc.
 Standard Library
 40% es JS
60% es C++
Ecosistema
 Node.js solo procesa request’s y response’s HTTP
 El resto se hace con módulos externos
 La idea es un núcleo pequeño y robusto enfocado en la
operación de red, la ejecución de JavaScript, y la extensibilidad
 La idea de Microservicios llevada a la plataforma de desarrollo
 npm: la herramienta de distribución de paquetes
 Algunas librerías útiles:
 Express
 Connect
 Socket.io
 Loopback
Cuando usar Node.js
 Node.js es recomendado pata crear servicios real-
time que requieran alta concurrencia y no
necesiten uso intensivo de CPU
 El uso de JavaScript en todo el ciclo de desarrollo
reduce la fricción, y facilita el cambio
Despliegue
 Node.js es una herramienta de línea de comandos
 En entornos productivos es recomendado que correr detrás de Proxies para aumentar la
seguridad, y facilitar la operación (nginx)
 Es multiplataforma, pueda correr en entornos Linux y
Windows
 Preparada para Cloud
 Todos los vendedores de Cloud ofrecen configuraciones para correr Node.js
 100% compatible con Software Containers (Docker)
Quienes usan Node.js
https://github.com/nodejs/node-v0.x-archive/wiki/Projects,-Applications,-and-Companies-Using-Node
Buenos Aires, Argentina
+54 (11) 4982 4185
info@lagash.com
Santiago de Chile, Chile
+56 (2) 2231 9428
info_chile@lagash.com
Bogotá, Colombia
+57 (1) 750 5276
info_colombia@lagash.com
Distrito Federal, México
+52 (55) 5093 0900
info_mexico@lagash.com
Redmond Washington, USA
+1 (206) 427 6980
info_usa@lagash.com
Montevideo, Uruguay
+59 897 974 267
info_uruguay@lagash.com
Buenos Aires, Argentina
+54 (11) 4982 4185
info@lagash.com
Santiago de Chile, Chile
+56 (2) 2231 9428
info_chile@lagash.com
Bogotá, Colombia
+57 (1) 750 5276
info_colombia@lagash.com
Distrito Federal, México
+52 (55) 5093 0900
info_mexico@lagash.com
Redmond Washington, USA
+1 (206) 427 6980
info_usa@lagash.com
Montevideo, Uruguay
+59 897 974 267
info_uruguay@lagash.com

Mais conteúdo relacionado

Mais procurados

ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013Rodolfo Finochietti
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talkCarlos Landeras Martínez
 
De escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincherasDe escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincherasRoberto Luis Bisbé
 
Javascript vuela en primera clase con Firefox OS
Javascript vuela en primera clase con Firefox OSJavascript vuela en primera clase con Firefox OS
Javascript vuela en primera clase con Firefox OSRoberto Luis Bisbé
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveEduard Tomàs
 
Gestión de documentos Office desde nuestras apps .NET con Open XML SDK
Gestión de documentos Office desde nuestras apps .NET con Open XML SDKGestión de documentos Office desde nuestras apps .NET con Open XML SDK
Gestión de documentos Office desde nuestras apps .NET con Open XML SDKLuis Beltran
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017Diego Bersano
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxPlain Concepts
 
NodeJS
NodeJSNodeJS
NodeJSIBM
 

Mais procurados (20)

ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
APIs REST
APIs RESTAPIs REST
APIs REST
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
 
De escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincherasDe escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincheras
 
Javascript vuela en primera clase con Firefox OS
Javascript vuela en primera clase con Firefox OSJavascript vuela en primera clase con Firefox OS
Javascript vuela en primera clase con Firefox OS
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
Web Day Devops - Plain Concepts
Web Day Devops - Plain ConceptsWeb Day Devops - Plain Concepts
Web Day Devops - Plain Concepts
 
.NET Core
.NET Core.NET Core
.NET Core
 
Go
GoGo
Go
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep Dive
 
Net love open source v1.7
Net love open source v1.7Net love open source v1.7
Net love open source v1.7
 
ASP.NET MVC Workshop Día 1
ASP.NET MVC Workshop Día 1ASP.NET MVC Workshop Día 1
ASP.NET MVC Workshop Día 1
 
Gestión de documentos Office desde nuestras apps .NET con Open XML SDK
Gestión de documentos Office desde nuestras apps .NET con Open XML SDKGestión de documentos Office desde nuestras apps .NET con Open XML SDK
Gestión de documentos Office desde nuestras apps .NET con Open XML SDK
 
Desarrollo Full Stack UAM.net
Desarrollo Full Stack UAM.netDesarrollo Full Stack UAM.net
Desarrollo Full Stack UAM.net
 
Gestión de proyectos con Maven
Gestión de proyectos con MavenGestión de proyectos con Maven
Gestión de proyectos con Maven
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginx
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
NodeJS
NodeJSNodeJS
NodeJS
 

Destaque

Despliegue y Monitoreo de aplicaciones ASP.NET Core en Linux
Despliegue y Monitoreo de aplicaciones ASP.NET Core en LinuxDespliegue y Monitoreo de aplicaciones ASP.NET Core en Linux
Despliegue y Monitoreo de aplicaciones ASP.NET Core en LinuxRodolfo Finochietti
 
Ilm library techniques with tivoli storage and ibm total storage products sg2...
Ilm library techniques with tivoli storage and ibm total storage products sg2...Ilm library techniques with tivoli storage and ibm total storage products sg2...
Ilm library techniques with tivoli storage and ibm total storage products sg2...Banking at Ho Chi Minh city
 
INSETA Article - Page 10
INSETA Article - Page 10INSETA Article - Page 10
INSETA Article - Page 10Cathrine Pitsi
 
Intervenciones alimentario nutricionales cesfam garin
Intervenciones alimentario nutricionales cesfam garinIntervenciones alimentario nutricionales cesfam garin
Intervenciones alimentario nutricionales cesfam garinCesfamgarin
 
HSMA Event Industriestandards im RFP Prozess
HSMA Event Industriestandards im RFP ProzessHSMA Event Industriestandards im RFP Prozess
HSMA Event Industriestandards im RFP ProzessAnsgar Jahns
 
252 santo, santo es tu senhor
252   santo, santo es tu senhor252   santo, santo es tu senhor
252 santo, santo es tu senhorSUSSURRO DE AMOR
 
Estudio rse medios impresos en panama 2013
Estudio rse medios impresos en panama 2013Estudio rse medios impresos en panama 2013
Estudio rse medios impresos en panama 2013UDELAS
 
Informazione locale e comunità. La sfida glocal
Informazione locale e comunità. La sfida glocalInformazione locale e comunità. La sfida glocal
Informazione locale e comunità. La sfida glocalLorenzo Fabbri
 
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenOdilo Oehmichen
 
Simon Rickett - The power of email marketing
Simon Rickett - The power of email marketingSimon Rickett - The power of email marketing
Simon Rickett - The power of email marketingSimon Rickett
 
Cuadros favoritos de 2º ESO. I.E.S. Alhakén II
Cuadros favoritos de 2º ESO. I.E.S. Alhakén IICuadros favoritos de 2º ESO. I.E.S. Alhakén II
Cuadros favoritos de 2º ESO. I.E.S. Alhakén IICórdoba, Spain
 
Getting Started with OpenGL ES
Getting Started with OpenGL ESGetting Started with OpenGL ES
Getting Started with OpenGL ESJohn Wilker
 
Présentation1 sable bitumineux
Présentation1 sable bitumineux Présentation1 sable bitumineux
Présentation1 sable bitumineux nizou123
 

Destaque (20)

Despliegue y Monitoreo de aplicaciones ASP.NET Core en Linux
Despliegue y Monitoreo de aplicaciones ASP.NET Core en LinuxDespliegue y Monitoreo de aplicaciones ASP.NET Core en Linux
Despliegue y Monitoreo de aplicaciones ASP.NET Core en Linux
 
Que es la tentacion
Que es la tentacionQue es la tentacion
Que es la tentacion
 
Ilm library techniques with tivoli storage and ibm total storage products sg2...
Ilm library techniques with tivoli storage and ibm total storage products sg2...Ilm library techniques with tivoli storage and ibm total storage products sg2...
Ilm library techniques with tivoli storage and ibm total storage products sg2...
 
INSETA Article - Page 10
INSETA Article - Page 10INSETA Article - Page 10
INSETA Article - Page 10
 
Intervenciones alimentario nutricionales cesfam garin
Intervenciones alimentario nutricionales cesfam garinIntervenciones alimentario nutricionales cesfam garin
Intervenciones alimentario nutricionales cesfam garin
 
HSMA Event Industriestandards im RFP Prozess
HSMA Event Industriestandards im RFP ProzessHSMA Event Industriestandards im RFP Prozess
HSMA Event Industriestandards im RFP Prozess
 
Securitytools
SecuritytoolsSecuritytools
Securitytools
 
252 santo, santo es tu senhor
252   santo, santo es tu senhor252   santo, santo es tu senhor
252 santo, santo es tu senhor
 
Presentación ABI
Presentación ABIPresentación ABI
Presentación ABI
 
Piccolandy1
Piccolandy1Piccolandy1
Piccolandy1
 
Estudio rse medios impresos en panama 2013
Estudio rse medios impresos en panama 2013Estudio rse medios impresos en panama 2013
Estudio rse medios impresos en panama 2013
 
Informazione locale e comunità. La sfida glocal
Informazione locale e comunità. La sfida glocalInformazione locale e comunità. La sfida glocal
Informazione locale e comunità. La sfida glocal
 
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
 
Lassen DMC
Lassen DMCLassen DMC
Lassen DMC
 
Simon Rickett - The power of email marketing
Simon Rickett - The power of email marketingSimon Rickett - The power of email marketing
Simon Rickett - The power of email marketing
 
Cuadros favoritos de 2º ESO. I.E.S. Alhakén II
Cuadros favoritos de 2º ESO. I.E.S. Alhakén IICuadros favoritos de 2º ESO. I.E.S. Alhakén II
Cuadros favoritos de 2º ESO. I.E.S. Alhakén II
 
Asignacion 5 laminas
Asignacion 5 laminas Asignacion 5 laminas
Asignacion 5 laminas
 
Getting Started with OpenGL ES
Getting Started with OpenGL ESGetting Started with OpenGL ES
Getting Started with OpenGL ES
 
Borrador proyecto
Borrador proyectoBorrador proyecto
Borrador proyecto
 
Présentation1 sable bitumineux
Présentation1 sable bitumineux Présentation1 sable bitumineux
Présentation1 sable bitumineux
 

Semelhante a Introduccion a Node.js

.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service FabricGuillermo Javier Bellmann
 
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...MongoDB
 
SOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFSOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFjuliocasal
 
Google Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesGoogle Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesTecsisa
 
ingenieria web.pptx
ingenieria web.pptxingenieria web.pptx
ingenieria web.pptxmedina2966
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricBelatrix Software
 
Diapositivas web 2.0
Diapositivas web 2.0 Diapositivas web 2.0
Diapositivas web 2.0 kateacodita
 
Clase redes sociales
Clase redes socialesClase redes sociales
Clase redes socialesUNJFSC
 
La Web 2
La  Web 2La  Web 2
La Web 2rosita
 
EducacióN BáSica
EducacióN BáSicaEducacióN BáSica
EducacióN BáSicarosita
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1Arkhotech
 
Inyección de dependencias en Node.js con InversifyJS & TypeScript
Inyección de dependencias en Node.js con  InversifyJS & TypeScriptInyección de dependencias en Node.js con  InversifyJS & TypeScript
Inyección de dependencias en Node.js con InversifyJS & TypeScriptRemo Jansen
 

Semelhante a Introduccion a Node.js (20)

Capitulo 1 - Proyecto integrador 2015-2016
Capitulo 1 - Proyecto integrador 2015-2016Capitulo 1 - Proyecto integrador 2015-2016
Capitulo 1 - Proyecto integrador 2015-2016
 
Bpel y Open Esb
Bpel y Open EsbBpel y Open Esb
Bpel y Open Esb
 
.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric
 
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
 
SOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFSOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSF
 
Google Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesGoogle Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresariales
 
Comenzando con Arquitecturas sin servidores
Comenzando con Arquitecturas sin servidoresComenzando con Arquitecturas sin servidores
Comenzando con Arquitecturas sin servidores
 
ingenieria web.pptx
ingenieria web.pptxingenieria web.pptx
ingenieria web.pptx
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service Fabric
 
Diapositivas web 2.0
Diapositivas web 2.0 Diapositivas web 2.0
Diapositivas web 2.0
 
Comenzando con Arquitecturas sin servidores
Comenzando con Arquitecturas sin servidoresComenzando con Arquitecturas sin servidores
Comenzando con Arquitecturas sin servidores
 
Clase redes sociales
Clase redes socialesClase redes sociales
Clase redes sociales
 
SOA Open Source
SOA Open SourceSOA Open Source
SOA Open Source
 
La Web 2
La  Web 2La  Web 2
La Web 2
 
EducacióN BáSica
EducacióN BáSicaEducacióN BáSica
EducacióN BáSica
 
Is soa
Is soaIs soa
Is soa
 
Arquitectura Orientada a Servicios
Arquitectura Orientada a ServiciosArquitectura Orientada a Servicios
Arquitectura Orientada a Servicios
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1
 
Moqui framework intro
Moqui framework introMoqui framework intro
Moqui framework intro
 
Inyección de dependencias en Node.js con InversifyJS & TypeScript
Inyección de dependencias en Node.js con  InversifyJS & TypeScriptInyección de dependencias en Node.js con  InversifyJS & TypeScript
Inyección de dependencias en Node.js con InversifyJS & TypeScript
 

Mais de Rodolfo Finochietti

Introduction to Rust language programming
Introduction to Rust language programmingIntroduction to Rust language programming
Introduction to Rust language programmingRodolfo Finochietti
 
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
Microsoft 2014 Dev Plataform -  Roslyn -& ASP.NET vNextMicrosoft 2014 Dev Plataform -  Roslyn -& ASP.NET vNext
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNextRodolfo Finochietti
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Rodolfo Finochietti
 
Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Rodolfo Finochietti
 
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresQue hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresRodolfo Finochietti
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Rodolfo Finochietti
 
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012Rodolfo Finochietti
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Rodolfo Finochietti
 

Mais de Rodolfo Finochietti (17)

Introduction to Rust language programming
Introduction to Rust language programmingIntroduction to Rust language programming
Introduction to Rust language programming
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
Re-bot-lution
Re-bot-lutionRe-bot-lution
Re-bot-lution
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Roslyn: el futuro de C#
Roslyn: el futuro de C#Roslyn: el futuro de C#
Roslyn: el futuro de C#
 
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
Microsoft 2014 Dev Plataform -  Roslyn -& ASP.NET vNextMicrosoft 2014 Dev Plataform -  Roslyn -& ASP.NET vNext
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013
 
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresQue hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
 
ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2
 
HTML5 Media Queries
HTML5 Media QueriesHTML5 Media Queries
HTML5 Media Queries
 
HTML5 Offline
HTML5 OfflineHTML5 Offline
HTML5 Offline
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
 
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
 
Introducción a WPF
Introducción a WPFIntroducción a WPF
Introducción a WPF
 
HTML5 Geolocalizacion
HTML5 GeolocalizacionHTML5 Geolocalizacion
HTML5 Geolocalizacion
 

Introduccion a Node.js

  • 1. Introducción a Node.js Rodolfo Finochietti @rodolfof
  • 2. Evolución de Internet Internet of Content • Web 1.0 • Web-sites • Search • eMail • HTML Internet of Services • Web 2.0 • eCommerce / eServices • Web Services Internet of People • Social Media • Mobile enablement • HTML 5 • REST Internet of Things • “Cosas” respresentadas semanticamente en Internet • Digital Business
  • 3.
  • 4.
  • 5. ¿Estamos preparados? Dolores que nos cuentan…  Mucha interdependencia entre funcionalidades (tight- coupling)  Principalmente en sistemas “monolíticos”  También se da entre servicios y base de datos  Infraestructuras difíciles de escalar  Equipos con muchos focos de atención
  • 6.
  • 7. El enfoque de Microservicios
  • 8. Microservicios Qué es una arquitectura de microservicios…  No son “pequeños web services” (no es una cuestión de tamaño… solamente)  Es un estilo de arquitectura que describe una forma de diseñar aplicaciones como colecciones de servicios (“producto”) que se despliegan y evolucionan de forma independiente
  • 9. Microservicios Objetivos principales…  Garantizar que cada producto siempre esté en funcionamiento  Entregar nuevas funcionalidades en forma constante (Continuous Delivery)  Reduciendo interdependencias con componentes externos  Maximizando la automatización de pruebas y procesos de despliegue  Alineamiento de la estructura organizativa a “productos”  Equipos multi-disciplinarios
  • 10. Microservicios Características  Foco en el “producto” como un servicio que debe estar en constante funcionamiento  Las funcionalidades ejecutan en diferentes procesos  DB/Modelo propio a cada producto/servicio  Organización gira entorno a productos que brindan capacidades de negocios  “Products, not projects”
  • 11.
  • 12.
  • 13.
  • 14. Node.js  El objetivo de Node.js es proveer un plataforma sencilla para construir software de red altamente escalable  Node.js utiliza JavaScript en el servidor haciendo que la comunicaciones entre el cliente y el servidor sea en el mismo lenguaje (reduciendo la fricción y el context switching).  Los servidores tradicionalmente están basados en threads pools, Node.js en cambio esta basado en Eventos. Node.js sirve cada request en un Event Loop que puede atender muchas conexiones concurrentes.
  • 17. Platform Number of request per second PHP (via Apache) 3187,27 Static (via Apache) 2966,51 Node.js 5569,30 Node.js vs Apache
  • 18. Node.js Core  V8: Google C++ JavaScript Engine  Libev: Event Loop  LibEio: Async I/O  LibUv: Abstracción para libeio, libev, etc.  Standard Library  40% es JS 60% es C++
  • 19. Ecosistema  Node.js solo procesa request’s y response’s HTTP  El resto se hace con módulos externos  La idea es un núcleo pequeño y robusto enfocado en la operación de red, la ejecución de JavaScript, y la extensibilidad  La idea de Microservicios llevada a la plataforma de desarrollo  npm: la herramienta de distribución de paquetes  Algunas librerías útiles:  Express  Connect  Socket.io  Loopback
  • 20.
  • 21. Cuando usar Node.js  Node.js es recomendado pata crear servicios real- time que requieran alta concurrencia y no necesiten uso intensivo de CPU  El uso de JavaScript en todo el ciclo de desarrollo reduce la fricción, y facilita el cambio
  • 22. Despliegue  Node.js es una herramienta de línea de comandos  En entornos productivos es recomendado que correr detrás de Proxies para aumentar la seguridad, y facilitar la operación (nginx)  Es multiplataforma, pueda correr en entornos Linux y Windows  Preparada para Cloud  Todos los vendedores de Cloud ofrecen configuraciones para correr Node.js  100% compatible con Software Containers (Docker)
  • 24. Buenos Aires, Argentina +54 (11) 4982 4185 info@lagash.com Santiago de Chile, Chile +56 (2) 2231 9428 info_chile@lagash.com Bogotá, Colombia +57 (1) 750 5276 info_colombia@lagash.com Distrito Federal, México +52 (55) 5093 0900 info_mexico@lagash.com Redmond Washington, USA +1 (206) 427 6980 info_usa@lagash.com Montevideo, Uruguay +59 897 974 267 info_uruguay@lagash.com
  • 25. Buenos Aires, Argentina +54 (11) 4982 4185 info@lagash.com Santiago de Chile, Chile +56 (2) 2231 9428 info_chile@lagash.com Bogotá, Colombia +57 (1) 750 5276 info_colombia@lagash.com Distrito Federal, México +52 (55) 5093 0900 info_mexico@lagash.com Redmond Washington, USA +1 (206) 427 6980 info_usa@lagash.com Montevideo, Uruguay +59 897 974 267 info_uruguay@lagash.com

Notas do Editor

  1. Walmart switched over to Node.js on a Black Friday, got more than 200 million visitors that day, and never went above 1% CPU.  LinkedIn rewrote their mobile backend in Node.js, and proceeded to get 20 times the performance out of 1/10 the servers.  Groupon increased page load speed by 50% by switching from Ruby on Rails to Node.js. They also reported being able to launch new features much faster than before. Paypal did an experiment where two teams built identical apps - one in Java and one in Node.js. The Node.js team built theirs in half the time. The Node.js app had response times that were 50% faster than the Java app.