SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
µ services
Domingo Suarez Torres
@domix
$ whoami
$ whoami
• Parte del inmobiliario de Software Gurú
$ whoami
• JVM Developer
• Chief Architect @ Grupo Expansión
Agenda
• SOA
• REST
• micro services
Service Oriented
Architecture
SOA
• SOA implica demasiadas cosas. En un mundo
ideal:
• Deseable que las aplicaciones desaparezcan
• Existen core services que proveen lógica de
negocio y datos
• UI que sirven de agregadores y aplican
presentaciones.
SOA
• SOA implica demasiadas cosas.
• Comunicación entre sistemas usando una
estructura estándar, generalmente un dialecto
basado en XML. "CORBA with angle brackets"
• WS-*. Infierno de XML.
• Mensajería asíncrona para transferir documentos.
Enterprise Application Integration (EAI)
SOA
• Riesgos y problemas principales:
• Demasiada carga, muchas veces innecesaria.
• Costosas implementaciones, tanto en consultoría
como en herramientas y runtimes. No olvidemos la
operación.
• Complejidad innecesaria.
• Vendor lock-in
Alternativas al típico SOA
• Soluciones in-house usando frameworks típicos
• OpenSource runtimes & tools
¿Necesitamos SOA?
¿Que tipo de organización
eres?
REST
• Todo lo que puedo decirles sobre REST
probablemente sea una mentira (refraseando a
un amigo @tomaslin)
RESTafarians dicen:
REST
• JSON sobre HTTP
• ¿Hypermedia?
• Hypermedia APIs
designinghypermediaapis.com
Developer Experience
• En el SXSW de 2014 Jeremiah Lee hablo de
‘Developer Experience’ DX
http://developerexperience.org
http://dx.jeremiahlee.com
Diseño de APIs
REST simples
http://dx.jeremiahlee.com
Micro services
µ services
• Estilo arquitectónico
• Cada servicio funcional o un conjunto muy pequeño se
ejecutan como procesos independientes.
• Generalmente usan protocolos ligeros y estándar como
HTTP.
• Despliegue independiente.
• Pueden o no contener todos los recursos que
necesitan. Es decir usan otros servicios para funcionar.
µ services
• Pueden estar escritos en diferentes lenguajes y
ejecutarse en diversos runtimes.
• Pueden usar diferentes mecanismos de
almacenaje. Relacionales o no-relacionales.
• Es común que los datos no estén centralizados.
µ services
• El enfoque es muy similar a SOA.
• La idea principal es no tener paquetes monolíticos de
servicios desplegables.
• Los paquetes monolíticos de servicios es la manera
natural de construir servicios.
• Con el tiempo es difícil mantener un paquete monolítico.
• Base enorme de código. Paquetes enormes para el
despliegue que toma bastante tiempo en despliegue.
Servicios monolíticos
• Cambios “pequeños” necesitan desplegar el
paquete completo.
• Dependiendo el entorno y la deuda técnica,
muchas veces implica hacer despliegues en
horas no productivas y tener downtimes.
• A la larga el código termina muy acoplado entre
servicios internos.
Componentes en µ services
• La idea es construir componentes, siempre ha sido
nuestro sueño poder rehusar y conectar componentes
existentes.
• Hemos logrado esto parcialmente usando librerías de
componentes. Que al final se convierten en
dependencias de nuestros servicios. Con todo lo que
ello implica.
• Los servicios son componentes que se ejecutan fuera
de nuestros procesos. Solo conocemos la interfaz.
Diseño
• En diseños monolíticos, es común que existan
diversos equipos acorde a cada capa definida. Vista,
lógica de negocio, datos, etc.
• Algunos cambios implican que todos los equipos
participen, para una organización significa costo.
• La organización para construir microservices implica
que el equipo sea cross-functional, con habilidades
para cubrir todas las capas necesarias para cada
servicio. Los servicios se organizan en torno a la
capacidad de negocio.
µ services es sobre el
ownership del producto
Toolkits
Dropwizard
• Muy maduro, Yammer lo usa.
• Basado en estándares como JAX-RS con Jersey
• Jackson para JSON
• Muy amistoso para DevOps, usa Metrics para
monitorear salud de los servicios.
• Incluye Jetty y no necesita un AppServer para
ejecutarse. !Mira mamá, sin AppServer¡
Ratpack
Ratpack
• Súper simple toolkit para crear webapps, como
APIs
• Construido sobre Apache Netty. !Mira mamá, sin
AppServer¡
Spring Boot
• Usa la base de Spring Framework
• Soporte para todas las tecnologías de Pivotal
• Se ejecuta sobre Apache Tomcat empotrado
• !Mira mamá, sin AppServer¡
Despliegue
The AppServer is DEAD
DevOps
• ¿Recuerdan que el tema de microservices es
sobre ownership?
• También en despliegue, no solo se trata de
entregar el código y dejar que los SysAdmins se
hagan pelotas.
• Los servicios deben incluir monitoreo para que
la operación sea más sencilla.
API management
• Ciertos requerimientos no funcionales no deben ser
implementados en los microservices.
• Existen diversas herramientas para aplicar ciertos servicios
necesarios como:
• Directorio/Descubrimiento
• Seguridad
• Monitoreo
• Métricas
• Escalamiento/Aprovisionamiento
Una opción más
• Al final la organización debe analizar que opción
es la ideal para si misma.
• SOAP/WS-* no son la única opción.
• ESB es fantástico si se usa adecuadamente con
mensajería.
Y como dice el @chochosmx:
!
“No hagan WebServices por convivir”
Preguntas
!
domingo.suarez@gmail.com
!
http://twitter.com/domix
Créditos de las fotos
• https://www.flickr.com/photos/kenmainr/9099640785
• https://www.flickr.com/photos/katsrcool/12311382904
• https://www.flickr.com/photos/universalpops/6830228354
• https://www.flickr.com/photos/jeezny/3477733058
• https://www.flickr.com/photos/estherase/128983854
• https://www.flickr.com/photos/thelord89/8375835939/
• https://www.flickr.com/photos/seattlemunicipalarchives/2516780900
• https://www.flickr.com/photos/dvids/9523755479

Weitere ähnliche Inhalte

Was ist angesagt?

Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyCloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyDomingo Suarez Torres
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud ComputingLuisanaEV
 
2019.10.04.v open.azurevsaws
2019.10.04.v open.azurevsaws2019.10.04.v open.azurevsaws
2019.10.04.v open.azurevsawsfernando sonego
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Datannakasone
 
[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)Ernesto Anaya
 
Moving your databases to Azure
Moving your databases to AzureMoving your databases to Azure
Moving your databases to AzureMariano Kovo
 
Arquitectura de redes de información
Arquitectura de redes de informaciónArquitectura de redes de información
Arquitectura de redes de informaciónEvelyn Soria
 
1.2. arquitectura de redes
1.2. arquitectura de redes1.2. arquitectura de redes
1.2. arquitectura de redesVivipozo
 
Seguridad en la nube AWS
Seguridad en la nube AWSSeguridad en la nube AWS
Seguridad en la nube AWSHermann Pais
 
1.2. arquitectura de redes
1.2. arquitectura de redes1.2. arquitectura de redes
1.2. arquitectura de redesVivipozo
 
.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
 
1.2. arquitectura de redes
1.2. arquitectura de redes1.2. arquitectura de redes
1.2. arquitectura de redesJonaPerdomo
 
Redhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQRedhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQAdrian Gigante
 

Was ist angesagt? (20)

Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyCloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Webinar, entendiendo que es un VPS
Webinar, entendiendo que es un VPSWebinar, entendiendo que es un VPS
Webinar, entendiendo que es un VPS
 
2019.10.04.v open.azurevsaws
2019.10.04.v open.azurevsaws2019.10.04.v open.azurevsaws
2019.10.04.v open.azurevsaws
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Data
 
Diapo tic
Diapo ticDiapo tic
Diapo tic
 
Construyendo aplicaciones Serverless
Construyendo aplicaciones ServerlessConstruyendo aplicaciones Serverless
Construyendo aplicaciones Serverless
 
[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Moving your databases to Azure
Moving your databases to AzureMoving your databases to Azure
Moving your databases to Azure
 
Arquitectura de redes de información
Arquitectura de redes de informaciónArquitectura de redes de información
Arquitectura de redes de información
 
1.2. arquitectura de redes
1.2. arquitectura de redes1.2. arquitectura de redes
1.2. arquitectura de redes
 
Seguridad en la nube AWS
Seguridad en la nube AWSSeguridad en la nube AWS
Seguridad en la nube AWS
 
1.2. arquitectura de redes
1.2. arquitectura de redes1.2. arquitectura de redes
1.2. arquitectura de redes
 
Private Cloud Administration - WAP
Private Cloud Administration - WAPPrivate Cloud Administration - WAP
Private Cloud Administration - WAP
 
.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
 
1.2. arquitectura de redes
1.2. arquitectura de redes1.2. arquitectura de redes
1.2. arquitectura de redes
 
Seminario IV: REST & Jersey
Seminario IV: REST & JerseySeminario IV: REST & Jersey
Seminario IV: REST & Jersey
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Redhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQRedhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQ
 

Andere mochten auch

Cloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service PlatformCloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service Platformvictorlbrown
 
Serling dev team, development process
Serling dev team, development processSerling dev team, development process
Serling dev team, development processDomingo Suarez Torres
 
SGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page InterfaceSGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page InterfaceDomingo Suarez Torres
 
Testing as a Service: Desarrollo del mercado en Paraguay - Alfonso Mariano Fe...
Testing as a Service: Desarrollo del mercado en Paraguay - Alfonso Mariano Fe...Testing as a Service: Desarrollo del mercado en Paraguay - Alfonso Mariano Fe...
Testing as a Service: Desarrollo del mercado en Paraguay - Alfonso Mariano Fe...GeneXus
 
Arquitectura Empresarial - Negocios Digitales
Arquitectura Empresarial - Negocios DigitalesArquitectura Empresarial - Negocios Digitales
Arquitectura Empresarial - Negocios DigitalesJoaquin Rincon
 
Estrategia digital
Estrategia digitalEstrategia digital
Estrategia digitalSafi
 
03 Service Oriented Architecture Series - Basic SOA Architecture
03 Service Oriented Architecture Series - Basic SOA Architecture03 Service Oriented Architecture Series - Basic SOA Architecture
03 Service Oriented Architecture Series - Basic SOA ArchitecturePouria Ghatrenabi
 
Gianfranco Gugliandolo Service Oriented Architecture Overview
Gianfranco Gugliandolo Service Oriented Architecture OverviewGianfranco Gugliandolo Service Oriented Architecture Overview
Gianfranco Gugliandolo Service Oriented Architecture OverviewOrlando Huaranga Negrete
 
IT Strategy Assessment & Optimization - Catallysts Approach
IT Strategy Assessment & Optimization - Catallysts ApproachIT Strategy Assessment & Optimization - Catallysts Approach
IT Strategy Assessment & Optimization - Catallysts ApproachRajanish Dass
 
Transforme su modelo de negocios con soluciones de colaboracion y movilidad
Transforme su modelo de negocios con soluciones de colaboracion y movilidadTransforme su modelo de negocios con soluciones de colaboracion y movilidad
Transforme su modelo de negocios con soluciones de colaboracion y movilidadIBM Digital Sales Colombia
 
Elaborando un roadmap hacia un soa v4
Elaborando un roadmap hacia un soa v4Elaborando un roadmap hacia un soa v4
Elaborando un roadmap hacia un soa v4Manuel Figueroa
 
Convergence of Internet of Things and ECM to Build the Connected Enterprise
Convergence of Internet of Things and ECM to Build the Connected EnterpriseConvergence of Internet of Things and ECM to Build the Connected Enterprise
Convergence of Internet of Things and ECM to Build the Connected EnterpriseNuxeo
 

Andere mochten auch (20)

Cloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service PlatformCloud + Soa: Enterprise Service Platform
Cloud + Soa: Enterprise Service Platform
 
Serling dev team, development process
Serling dev team, development processSerling dev team, development process
Serling dev team, development process
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
Machine Learning & Apache Mahout
Machine Learning & Apache MahoutMachine Learning & Apache Mahout
Machine Learning & Apache Mahout
 
SGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page InterfaceSGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page Interface
 
SGNext Elasticsearch
SGNext ElasticsearchSGNext Elasticsearch
SGNext Elasticsearch
 
JVM Reactive Programming
JVM Reactive ProgrammingJVM Reactive Programming
JVM Reactive Programming
 
Testing as a Service: Desarrollo del mercado en Paraguay - Alfonso Mariano Fe...
Testing as a Service: Desarrollo del mercado en Paraguay - Alfonso Mariano Fe...Testing as a Service: Desarrollo del mercado en Paraguay - Alfonso Mariano Fe...
Testing as a Service: Desarrollo del mercado en Paraguay - Alfonso Mariano Fe...
 
Arquitectura Empresarial - Negocios Digitales
Arquitectura Empresarial - Negocios DigitalesArquitectura Empresarial - Negocios Digitales
Arquitectura Empresarial - Negocios Digitales
 
Estrategia digital
Estrategia digitalEstrategia digital
Estrategia digital
 
Road Map01
Road Map01Road Map01
Road Map01
 
03 Service Oriented Architecture Series - Basic SOA Architecture
03 Service Oriented Architecture Series - Basic SOA Architecture03 Service Oriented Architecture Series - Basic SOA Architecture
03 Service Oriented Architecture Series - Basic SOA Architecture
 
Gianfranco Gugliandolo Service Oriented Architecture Overview
Gianfranco Gugliandolo Service Oriented Architecture OverviewGianfranco Gugliandolo Service Oriented Architecture Overview
Gianfranco Gugliandolo Service Oriented Architecture Overview
 
Cdtec software factory-esp
Cdtec software factory-espCdtec software factory-esp
Cdtec software factory-esp
 
IT Strategy Assessment & Optimization - Catallysts Approach
IT Strategy Assessment & Optimization - Catallysts ApproachIT Strategy Assessment & Optimization - Catallysts Approach
IT Strategy Assessment & Optimization - Catallysts Approach
 
Transforme su modelo de negocios con soluciones de colaboracion y movilidad
Transforme su modelo de negocios con soluciones de colaboracion y movilidadTransforme su modelo de negocios con soluciones de colaboracion y movilidad
Transforme su modelo de negocios con soluciones de colaboracion y movilidad
 
Gestión seguridad de la información y marco normativo
Gestión seguridad de la información y marco normativoGestión seguridad de la información y marco normativo
Gestión seguridad de la información y marco normativo
 
Elaborando un roadmap hacia un soa v4
Elaborando un roadmap hacia un soa v4Elaborando un roadmap hacia un soa v4
Elaborando un roadmap hacia un soa v4
 
Convergence of Internet of Things and ECM to Build the Connected Enterprise
Convergence of Internet of Things and ECM to Build the Connected EnterpriseConvergence of Internet of Things and ECM to Build the Connected Enterprise
Convergence of Internet of Things and ECM to Build the Connected Enterprise
 
Enterprise Security in Hybrid Cloud ISACA-SV 2012
Enterprise Security in Hybrid Cloud ISACA-SV 2012Enterprise Security in Hybrid Cloud ISACA-SV 2012
Enterprise Security in Hybrid Cloud ISACA-SV 2012
 

Ähnlich wie SGCE 2014 micro services

Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webRoberto Sanz Ciriano
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaDomingo Suarez Torres
 
Bajandose de la nube y volviendose a subir
Bajandose de la nube y volviendose a subirBajandose de la nube y volviendose a subir
Bajandose de la nube y volviendose a subirPedro Colmenares
 
Patrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaPatrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaFrancisco Arturo Viveros
 
Re evolución robótica
Re evolución robóticaRe evolución robótica
Re evolución robóticaSoftware Guru
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosDomingo Suarez Torres
 
Introduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.pptIntroduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.pptIvonneRomero42
 
SpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsSpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsDomingo Suarez Torres
 
dockerize.it
dockerize.itdockerize.it
dockerize.itbetabeers
 
Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y ....
Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y  ....Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y  ....
Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y ....Yhorby Matias
 
Trabajo fin de master Dirección TI
Trabajo fin de master Dirección TITrabajo fin de master Dirección TI
Trabajo fin de master Dirección TIManolo Crespo
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureDomingo Suarez Torres
 
Mapa Conceptual Servidores web
Mapa Conceptual Servidores webMapa Conceptual Servidores web
Mapa Conceptual Servidores webArturo_09
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - ServiciosRicard Clau
 

Ähnlich wie SGCE 2014 micro services (20)

Cloud Native Development in the JVM
Cloud Native Development in the JVMCloud Native Development in the JVM
Cloud Native Development in the JVM
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
 
Bajandose de la nube y volviendose a subir
Bajandose de la nube y volviendose a subirBajandose de la nube y volviendose a subir
Bajandose de la nube y volviendose a subir
 
Patrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaPatrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración Moderna
 
Re evolución robótica
Re evolución robóticaRe evolución robótica
Re evolución robótica
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
Introduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.pptIntroduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.ppt
 
SpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsSpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con Grails
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y ....
Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y  ....Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y  ....
Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y ....
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Trabajo fin de master Dirección TI
Trabajo fin de master Dirección TITrabajo fin de master Dirección TI
Trabajo fin de master Dirección TI
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Panel Magmaconf
Panel MagmaconfPanel Magmaconf
Panel Magmaconf
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architecture
 
Mapa Conceptual Servidores web
Mapa Conceptual Servidores webMapa Conceptual Servidores web
Mapa Conceptual Servidores web
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - Servicios
 

Mehr von Domingo Suarez Torres

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesDomingo Suarez Torres
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivirDomingo Suarez Torres
 
Retos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosRetos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosDomingo Suarez Torres
 
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDomingo Suarez Torres
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesDomingo Suarez Torres
 
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityCloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityDomingo Suarez Torres
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextDomingo Suarez Torres
 
Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Domingo Suarez Torres
 
javerosmx-2015-marzo-groovy-java8-comparison
javerosmx-2015-marzo-groovy-java8-comparisonjaverosmx-2015-marzo-groovy-java8-comparison
javerosmx-2015-marzo-groovy-java8-comparisonDomingo Suarez Torres
 
Escribir código y ganarse la vida de paso
Escribir código y ganarse la vida de pasoEscribir código y ganarse la vida de paso
Escribir código y ganarse la vida de pasoDomingo Suarez Torres
 

Mehr von Domingo Suarez Torres (20)

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivir
 
Contenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMXContenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMX
 
Retos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosRetos en la arquitectura de Microservicios
Retos en la arquitectura de Microservicios
 
Java Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDLJava Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDL
 
meetup digital ocean kubernetes
meetup digital ocean kubernetesmeetup digital ocean kubernetes
meetup digital ocean kubernetes
 
Peru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVMPeru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVM
 
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityCloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 Observability
 
Cloud Native Mexico Presentacion
Cloud Native Mexico PresentacionCloud Native Mexico Presentacion
Cloud Native Mexico Presentacion
 
gRPC: Beyond REST
gRPC: Beyond RESTgRPC: Beyond REST
gRPC: Beyond REST
 
Devops Landscape
Devops LandscapeDevops Landscape
Devops Landscape
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNext
 
Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016
 
Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016
 
SOA Latam 2015
SOA Latam 2015SOA Latam 2015
SOA Latam 2015
 
javerosmx-2015-marzo-groovy-java8-comparison
javerosmx-2015-marzo-groovy-java8-comparisonjaverosmx-2015-marzo-groovy-java8-comparison
javerosmx-2015-marzo-groovy-java8-comparison
 
Escribir código y ganarse la vida de paso
Escribir código y ganarse la vida de pasoEscribir código y ganarse la vida de paso
Escribir código y ganarse la vida de paso
 
CTO @ startup
CTO @ startupCTO @ startup
CTO @ startup
 

Kürzlich hochgeladen

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Kürzlich hochgeladen (11)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

SGCE 2014 micro services

  • 3. $ whoami • Parte del inmobiliario de Software Gurú
  • 4. $ whoami • JVM Developer • Chief Architect @ Grupo Expansión
  • 7. SOA • SOA implica demasiadas cosas. En un mundo ideal: • Deseable que las aplicaciones desaparezcan • Existen core services que proveen lógica de negocio y datos • UI que sirven de agregadores y aplican presentaciones.
  • 8. SOA • SOA implica demasiadas cosas. • Comunicación entre sistemas usando una estructura estándar, generalmente un dialecto basado en XML. "CORBA with angle brackets" • WS-*. Infierno de XML. • Mensajería asíncrona para transferir documentos. Enterprise Application Integration (EAI)
  • 9. SOA • Riesgos y problemas principales: • Demasiada carga, muchas veces innecesaria. • Costosas implementaciones, tanto en consultoría como en herramientas y runtimes. No olvidemos la operación. • Complejidad innecesaria. • Vendor lock-in
  • 10. Alternativas al típico SOA • Soluciones in-house usando frameworks típicos • OpenSource runtimes & tools
  • 12. ¿Que tipo de organización eres?
  • 13. REST • Todo lo que puedo decirles sobre REST probablemente sea una mentira (refraseando a un amigo @tomaslin)
  • 15. REST • JSON sobre HTTP • ¿Hypermedia? • Hypermedia APIs
  • 17. Developer Experience • En el SXSW de 2014 Jeremiah Lee hablo de ‘Developer Experience’ DX http://developerexperience.org
  • 22. µ services • Estilo arquitectónico • Cada servicio funcional o un conjunto muy pequeño se ejecutan como procesos independientes. • Generalmente usan protocolos ligeros y estándar como HTTP. • Despliegue independiente. • Pueden o no contener todos los recursos que necesitan. Es decir usan otros servicios para funcionar.
  • 23. µ services • Pueden estar escritos en diferentes lenguajes y ejecutarse en diversos runtimes. • Pueden usar diferentes mecanismos de almacenaje. Relacionales o no-relacionales. • Es común que los datos no estén centralizados.
  • 24. µ services • El enfoque es muy similar a SOA. • La idea principal es no tener paquetes monolíticos de servicios desplegables. • Los paquetes monolíticos de servicios es la manera natural de construir servicios. • Con el tiempo es difícil mantener un paquete monolítico. • Base enorme de código. Paquetes enormes para el despliegue que toma bastante tiempo en despliegue.
  • 25. Servicios monolíticos • Cambios “pequeños” necesitan desplegar el paquete completo. • Dependiendo el entorno y la deuda técnica, muchas veces implica hacer despliegues en horas no productivas y tener downtimes. • A la larga el código termina muy acoplado entre servicios internos.
  • 26. Componentes en µ services • La idea es construir componentes, siempre ha sido nuestro sueño poder rehusar y conectar componentes existentes. • Hemos logrado esto parcialmente usando librerías de componentes. Que al final se convierten en dependencias de nuestros servicios. Con todo lo que ello implica. • Los servicios son componentes que se ejecutan fuera de nuestros procesos. Solo conocemos la interfaz.
  • 27. Diseño • En diseños monolíticos, es común que existan diversos equipos acorde a cada capa definida. Vista, lógica de negocio, datos, etc. • Algunos cambios implican que todos los equipos participen, para una organización significa costo. • La organización para construir microservices implica que el equipo sea cross-functional, con habilidades para cubrir todas las capas necesarias para cada servicio. Los servicios se organizan en torno a la capacidad de negocio.
  • 28. µ services es sobre el ownership del producto
  • 30.
  • 31. Dropwizard • Muy maduro, Yammer lo usa. • Basado en estándares como JAX-RS con Jersey • Jackson para JSON • Muy amistoso para DevOps, usa Metrics para monitorear salud de los servicios. • Incluye Jetty y no necesita un AppServer para ejecutarse. !Mira mamá, sin AppServer¡
  • 32.
  • 33.
  • 34.
  • 36. Ratpack • Súper simple toolkit para crear webapps, como APIs • Construido sobre Apache Netty. !Mira mamá, sin AppServer¡
  • 37.
  • 38. Spring Boot • Usa la base de Spring Framework • Soporte para todas las tecnologías de Pivotal • Se ejecuta sobre Apache Tomcat empotrado • !Mira mamá, sin AppServer¡
  • 41. DevOps • ¿Recuerdan que el tema de microservices es sobre ownership? • También en despliegue, no solo se trata de entregar el código y dejar que los SysAdmins se hagan pelotas. • Los servicios deben incluir monitoreo para que la operación sea más sencilla.
  • 42. API management • Ciertos requerimientos no funcionales no deben ser implementados en los microservices. • Existen diversas herramientas para aplicar ciertos servicios necesarios como: • Directorio/Descubrimiento • Seguridad • Monitoreo • Métricas • Escalamiento/Aprovisionamiento
  • 43. Una opción más • Al final la organización debe analizar que opción es la ideal para si misma. • SOAP/WS-* no son la única opción. • ESB es fantástico si se usa adecuadamente con mensajería.
  • 44. Y como dice el @chochosmx: ! “No hagan WebServices por convivir”
  • 46. Créditos de las fotos • https://www.flickr.com/photos/kenmainr/9099640785 • https://www.flickr.com/photos/katsrcool/12311382904 • https://www.flickr.com/photos/universalpops/6830228354 • https://www.flickr.com/photos/jeezny/3477733058 • https://www.flickr.com/photos/estherase/128983854 • https://www.flickr.com/photos/thelord89/8375835939/ • https://www.flickr.com/photos/seattlemunicipalarchives/2516780900 • https://www.flickr.com/photos/dvids/9523755479