SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
An Evening with…

Arkho Innova Meetup Series
ARKHO Innova
Meetup series
Gracias por su asistencia!!!
• Un espacio para compartir experiencias y conocimiento
• Un espacio para hacer relaciones entre personas y
equipos con intereses afines
• Un espacio para pasarla bien
Overview
• Problemática Actual.
• ¿Qué son los Microservicios?
• ¿Qué resuelven?
• Arquitectura de software orientada a microservicios.
• Microservicios y modelos de Escalamiento.
• Ejemplo práctico con SpringBoot
• Resumen
Arquitectura monolítica tradicional
Algo con más complejidad, misma arquitectura
¿Qué ocurre cuando aumenta la
demanda de conexiones?
404 ERROR / 503 ERROR / OMG ERROR
Arquitectura monolítica tradicional

en High Availability
Problemas de arquitectura monolítica
Mantención Crecimiento
Técnicos
Escalamiento
Problemas de arquitectura monolítica
Monetarios Operacionales
Costos
¿Qué son los Microservicios?
Pero…
"Microservice Architecture" describe a particular
way of designing software applications as suites
of independently deployable services
Martin Fowler
25 marzo 2014
La “Arquitectura de Microservicios" describe la forma
de diseñar aplicaciones de software como una serie de
servicios desplegables de forma independiente
Martin Fowler
25 marzo 2014
Se discute por primera vez el término “Microservicio”
en un Workshop de Arquitectos de Software. Venice
USA.
El mismo grupo decide en mayo del 2012 que el
nombre más apropiado para esta arquitectura es
“MICROSERVICIOS”
Entonces…
¿Por qué ahora?
DevOps Cloud Containers
Agile
Continuos Integration
Herramientas, tecnologías, metodologías que
han facilitado el despegue de los Microservicios
Compañías que evolucionaron a Microservicios
Principal impulsor de Microservicios
Principales características de los Microservicios
Domain Driving Design (DDD) Single Responsibility Principle
Explicitly Published Interface
Independent DURS

(Deployment, Update, Replace, Scale)
Smart Endpoint & Dumb Pipes
Colección de
Módulos
Colección de
Servicios
Primera Aproximación
Primera Aproximación
Qué resuelven los Microservicios
Beneficios Microservicios
• Al ser componentes acotados, es más simple la compresión para el
desarrollador
• Despliegues independientes
• Menor impacto de actualizaciones de código
• Actualizaciones independientes de los otros servicios
• Aislamiento y resiliencia a fallas
• Menores costos de escalamiento
• Menor complejidad de escalamiento *
Microservicios
y
Escalamiento
Martin Abbott y Michael Fisher
The art of the scalability
Cubo de escalabilidad
Eje X
(Scale by cloning)
• Ejecutar múltiples instancias
(clonación) de una aplicación
detrás de un load balancer
• La carga total es 1/N nodos
Eje Y
(Scale by functionalities)
• Ejecutar múltiples instancias o
copias de servicios
• Cada servicio es responsable de
una funcionalidad en específico o
un conjunto de funcionalidades
similares. (dominio)
Eje Z
(Data partitioning)
• Ejecutar múltiples instancias
(clonación) de una aplicación
detrás de un load balancer
• Cada nodo maneja sólo una parte
de la data. (Fragmentación de
datos / Sharding)
Ejes del Cubo de Escalabilidad
Ejes del Cubo de Escalabilidad
Ejes del Cubo de Escalabilidad
Ejes del Cubo de Escalabilidad
Ejes del Cubo de Escalabilidad
Volviendo a la primera
aproximación
Servicios comunicados entre sí
Acceso a datos de forma fragmentada
Comunicación entre servicios
API GatewayDiscover µServices
Cliente - Microservicios
Desktop
Mobile
• Conexiones de alta
velocidad
• Baja latencia
• Mayor cantidad de recursos
• Conexiones de velocidad reducida
(4G /3G / 2G)
• Alta latencia
• Menor cantidad de recursos
Clientes y características de conexión
Clientes y características de conexión
Problemas Latencia
Native Mobile Apps
Mala experiencia de usuario
API Gateway
• Proporciona APIs que se adaptan a los clientes
• Granularidad fina para clientes desktop 

(muchas peticiones)
• Granularidad gruesa para apps mobiles nativas 

(idealmente 1 petición)
API Gateway
• Optimiza comunicación entre Cliente y Servicios
• Encapsula detalles de los Servicios. API de APIs.(?)
• Transparencia ante cambio de servicios hacia el lado Cliente
API Gateway - On Cloud
Service Discovery - “Server Side”
Service registration
Eureka
Apache Zoo Keeper
Service Discovery - “Client Side”
Ribborn Eureka
Service Discovery - “Client Side”
Tipos de comunicación entre Servicios
Sync
Async
• Comunicación típica a través de protocolo HTTP
• Puede provocar latencia alta en la respuesta final
• Requiere de un nuevo componente que sirva de intermediario
entre Productor y Consumidor
• Más complejidad para el desarrollo
Un ejemplo de arquitectura.
Arquitectura Monolítica a una de
Microservicios
Migrar desde
Consideraciones
• Comprender que es más que crear servicios
• Cambio cultural en el equipo. Se debe pensar en API
• El tipo de comunicación cobra mayor relevancia (Sync / Async)
• Conocer DevOps de apoyo
• Pensar en Cloud
Bibliografía y lecturas recomendadas
• Microservices - Martin Fowler / James Lewis:

http://martinfowler.com/articles/microservices.html
• The Art of Scalability - Martin Abbott y Michael Fisher

http://theartofscalability.com
• Microservices Architecture

http://microservices.io/
• Microservices Designing Deploying

https://www.nginx.com/wp-content/uploads/2015/01/Building_Microservices_Nginx.pdf
• Microservicios - Sergio Maurenzi

http://sergiomaurenzi.blogspot.cl/2015/04/microservicios-parte-i.html
• Implementación de un API Gateway con ZUUL

http://www.robertocrespo.net/kaizen/zuul-implementacion-de-un-api-gateway/
Microservices
Session 2
Soon
An Evening with…

Arkho Innova Meetup Series

Más contenido relacionado

Similar a An evening with... Microservices - Session 1

Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...Guillermo Javier Bellmann
 
Microservicios y Gestion de APIs
Microservicios y Gestion de APIsMicroservicios y Gestion de APIs
Microservicios y Gestion de APIsJorge Rodriguez
 
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CO v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CO v...Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CO v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CO v...Guillermo Javier Bellmann
 
Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...
Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...
Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...Amazon Web Services LATAM
 
Aplicaciones móviles super-escalables
Aplicaciones móviles super-escalablesAplicaciones móviles super-escalables
Aplicaciones móviles super-escalablesSergio Borromei
 
Computacion en nube
Computacion en nubeComputacion en nube
Computacion en nubeLuis Lopez
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosSoftware Guru
 
Microservicios con ASP.NET Core
Microservicios con ASP.NET CoreMicroservicios con ASP.NET Core
Microservicios con ASP.NET CoreEduardo Campañó
 
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
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
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
 
AWS Cloud Experience CA: Desplegando y Desarrollando Aplicaciones Modernas en...
AWS Cloud Experience CA: Desplegando y Desarrollando Aplicaciones Modernas en...AWS Cloud Experience CA: Desplegando y Desarrollando Aplicaciones Modernas en...
AWS Cloud Experience CA: Desplegando y Desarrollando Aplicaciones Modernas en...Amazon Web Services LATAM
 

Similar a An evening with... Microservices - Session 1 (20)

Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
 
Microservicios y Gestion de APIs
Microservicios y Gestion de APIsMicroservicios y Gestion de APIs
Microservicios y Gestion de APIs
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CO v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CO v...Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CO v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CO v...
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
 
Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...
Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...
Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...
 
Aplicaciones móviles super-escalables
Aplicaciones móviles super-escalablesAplicaciones móviles super-escalables
Aplicaciones móviles super-escalables
 
Is soa
Is soaIs soa
Is soa
 
Arquitectura Orientada a Servicios
Arquitectura Orientada a ServiciosArquitectura Orientada a Servicios
Arquitectura Orientada a Servicios
 
Computacion en nube
Computacion en nubeComputacion en nube
Computacion en nube
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
 
Introducción SOA - Cloud Computing
Introducción SOA - Cloud ComputingIntroducción SOA - Cloud Computing
Introducción SOA - Cloud Computing
 
Microservicios con ASP.NET Core
Microservicios con ASP.NET CoreMicroservicios con ASP.NET Core
Microservicios con ASP.NET Core
 
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
 
SOA Open Source
SOA Open SourceSOA Open Source
SOA Open Source
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
M vs m
M vs mM vs m
M vs m
 
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
 
AWS Cloud Experience CA: Desplegando y Desarrollando Aplicaciones Modernas en...
AWS Cloud Experience CA: Desplegando y Desarrollando Aplicaciones Modernas en...AWS Cloud Experience CA: Desplegando y Desarrollando Aplicaciones Modernas en...
AWS Cloud Experience CA: Desplegando y Desarrollando Aplicaciones Modernas en...
 

Más de Arkhotech

An Evening with Agile lean design_thinking
An Evening with Agile lean design_thinkingAn Evening with Agile lean design_thinking
An Evening with Agile lean design_thinkingArkhotech
 
An Evening with Meetup microservices-s2
An Evening with Meetup microservices-s2An Evening with Meetup microservices-s2
An Evening with Meetup microservices-s2Arkhotech
 
An evening with...Rust
An evening with...RustAn evening with...Rust
An evening with...RustArkhotech
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go LangArkhotech
 
An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... DockerArkhotech
 
An evening with "Rework" - Reinventando nuestra forma de trabajar
An evening with "Rework" - Reinventando nuestra forma de trabajarAn evening with "Rework" - Reinventando nuestra forma de trabajar
An evening with "Rework" - Reinventando nuestra forma de trabajarArkhotech
 
An evening with... Scrum
An evening with... ScrumAn evening with... Scrum
An evening with... ScrumArkhotech
 
An evening with... Liquidbase
An evening with... LiquidbaseAn evening with... Liquidbase
An evening with... LiquidbaseArkhotech
 
An evening with... DevOps
An evening with... DevOpsAn evening with... DevOps
An evening with... DevOpsArkhotech
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup Arkhotech
 
An evening with... BPM redhat Meetup
An evening with... BPM redhat MeetupAn evening with... BPM redhat Meetup
An evening with... BPM redhat MeetupArkhotech
 
An evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupAn evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupArkhotech
 
An evening with... Agile Metrics Meetup
An evening with... Agile Metrics MeetupAn evening with... Agile Metrics Meetup
An evening with... Agile Metrics MeetupArkhotech
 
An evening with... Apache hadoop Meetup
An evening with...  Apache hadoop MeetupAn evening with...  Apache hadoop Meetup
An evening with... Apache hadoop MeetupArkhotech
 
An evening with... Polymer Intro Meetup
An evening with... Polymer Intro MeetupAn evening with... Polymer Intro Meetup
An evening with... Polymer Intro MeetupArkhotech
 
An evening with... Oracle Endeca Guided Search & Experience Manager Meetup
An evening with... Oracle Endeca Guided Search & Experience Manager MeetupAn evening with... Oracle Endeca Guided Search & Experience Manager Meetup
An evening with... Oracle Endeca Guided Search & Experience Manager MeetupArkhotech
 
An evening with... No SQL Meetup
An evening with... No SQL MeetupAn evening with... No SQL Meetup
An evening with... No SQL MeetupArkhotech
 

Más de Arkhotech (17)

An Evening with Agile lean design_thinking
An Evening with Agile lean design_thinkingAn Evening with Agile lean design_thinking
An Evening with Agile lean design_thinking
 
An Evening with Meetup microservices-s2
An Evening with Meetup microservices-s2An Evening with Meetup microservices-s2
An Evening with Meetup microservices-s2
 
An evening with...Rust
An evening with...RustAn evening with...Rust
An evening with...Rust
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go Lang
 
An evening with... Docker
An evening with... DockerAn evening with... Docker
An evening with... Docker
 
An evening with "Rework" - Reinventando nuestra forma de trabajar
An evening with "Rework" - Reinventando nuestra forma de trabajarAn evening with "Rework" - Reinventando nuestra forma de trabajar
An evening with "Rework" - Reinventando nuestra forma de trabajar
 
An evening with... Scrum
An evening with... ScrumAn evening with... Scrum
An evening with... Scrum
 
An evening with... Liquidbase
An evening with... LiquidbaseAn evening with... Liquidbase
An evening with... Liquidbase
 
An evening with... DevOps
An evening with... DevOpsAn evening with... DevOps
An evening with... DevOps
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup
 
An evening with... BPM redhat Meetup
An evening with... BPM redhat MeetupAn evening with... BPM redhat Meetup
An evening with... BPM redhat Meetup
 
An evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupAn evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro Meetup
 
An evening with... Agile Metrics Meetup
An evening with... Agile Metrics MeetupAn evening with... Agile Metrics Meetup
An evening with... Agile Metrics Meetup
 
An evening with... Apache hadoop Meetup
An evening with...  Apache hadoop MeetupAn evening with...  Apache hadoop Meetup
An evening with... Apache hadoop Meetup
 
An evening with... Polymer Intro Meetup
An evening with... Polymer Intro MeetupAn evening with... Polymer Intro Meetup
An evening with... Polymer Intro Meetup
 
An evening with... Oracle Endeca Guided Search & Experience Manager Meetup
An evening with... Oracle Endeca Guided Search & Experience Manager MeetupAn evening with... Oracle Endeca Guided Search & Experience Manager Meetup
An evening with... Oracle Endeca Guided Search & Experience Manager Meetup
 
An evening with... No SQL Meetup
An evening with... No SQL MeetupAn evening with... No SQL Meetup
An evening with... No SQL Meetup
 

An evening with... Microservices - Session 1