SlideShare una empresa de Scribd logo
MICROSERVICIOS
JOAN SEBASTIÁN RAMÍREZ PÉREZ
2017
AGENDA
• ¿Qué son los microservicios?
• ¿Por qué usar microservicios?
• Microservicios vs monolíticos
• Arquitectura microservicios
• Patrones usados en microservicios
• Herramientas para implementarlo
• Bibliografía
¿QUÉ SON LOS
MICROSERVICIOS?
• Una forma particular de diseñar aplicaciones de
software como un conjunto de independiente de
servicios desplegables.
• Conjunción de diversos servicios independientes
que se despliegan según se vayan necesitando. Por
tanto, tendremos una aplicación modular a base de
pequeñas piezas, que podremos ir ampliando o
reduciendo a medida que sea necesario.
CASOS DE ÉXITO
¿POR QUÉ USAR
MICROSERVICIOS?
• Los servicios en sí son muy simples de construir, pues se centran en hacer
solamente una cosa bien, de forma que son fáciles de probar y se puede
asegurar mayor calidad.
• Cada servicio podría construirse con las tecnologías y herramientas más
adecuadas, permitiendo “Polyglot Programming” (las aplicaciones se deben
escribir en una mezcla de lenguajes para explotar sus mejores
características).
• Múltiples equipos pueden trabajar independientemente. Esto fomenta
“continuous delivery” debido a que permite actualizaciones frecuentes
mientras el resto del sistema se mantiene estable.
• Si un servicio deja de funcionar, solo afectará las partes que dependen
directamente de él (si las hay). El resto operará normalmente.
¿POR QUÉ USAR
MICROSERVICIOS?
• Combinar los servicios como nos interese.
• Escalar a nivel de microservicios.
• Simplificación del mantenimiento.
• Su fallo no arrastra a todo el sistema.
• Podemos hacer despliegue progresivo, no
necesariamente todo junto.
MICROSERVICIOS VS MONOLÍTICOS
ARQUITECTURA
MICROSERVICIOS
HTTPS://MARTINFOWLER.COM/VIDEOS.HTML
#MICROSERVICES
ARQUITECTURA
MICROSERVICIOS
HTTPS://MARTINFOWLER.COM/VIDEOS.HTML
#MICROSERVICES
PATRONES DE DISEÑO
HTTP://MICROSERVICES.IO/PATTERNS/INDEX.HT
ML
PATRONES CORE
• Arquitectura monolítica: arquitectura de una
aplicación como una única unidad desplegable
• Arquitectura micro servicio: arquitectura de una
aplicación como una colección de servicios sin
acoplamiento
PATRONES DESCOMPOSICIÓN
• Descomponer por capacidades del negocio: definir
servicios correspondientes a las capacidades del
negocio
• Descomponer por subdominio: definir servicios
correspondiente a subdominio DDD (Domain Driven
Design)
PATRONES DE DESPLIEGUE
• Múltiples instancias de servicio por servidor: desplegar múltiples instancias de un
servicio en un único servidor
• Instancia de servicio por servidor: desplegar cada instancia de servicio en su propio
servidor
• Instancia de servicio por máquina virtual :desplegar cada instancia del servicio en su
propia VM.
• Instancia de servicio por contenedor: desplegar cada instancia del servicio en su
propio contenedor
• Despliegue Serverless: desplegar un servicio usando una plataforma de despliegue
Serverless (aplicaciones que dependen de terceros)
• Plataforma de despliegue de servicios: desplegar servicios usando una plataforma de
despliegue altamente automatizada que provea servicios de abstracción
PATRONES PREOCUPACIONES
TRANSVERSALES
• Micro servicio chasis: un framework que permite
resolver las preocupaciones transversales y
simplifica el desarrollo de servicios
• Externalizar configuraciones: dejar de manera
externa todas las configuraciones como locación de
base de datos y credenciales
PATRONES DE COMUNICACIÓN
• Remote Procedure Invocation: una un protocolo
basado en RPI para comunicación entre servicios
• Messaging: usa mensajes asíncronos para la
comunicación entre servicios
• Protocolo de dominio específico: una un protocolo
de dominio especifico.
API EXTERNA
• API gateway: un servicio que provee a cada cliente
una interface unificada de servicios
• Backend for front-end: un API gateway for each
separado para cada tipo de cliente.
API GATEWAY
• Es una capa abstracta que oculta a todos los
microservicios, dejando un único Endpoint para que
los clientes se comuniquen. Las solicitudes que
lleguen al Gateway serán procesadas/enrutadas
hacia los servicios específicos. El Gateway también
nos permite monitorear fácilmente el tráfico y uso de
los servicios.
DESCUBRIMIENTO DE
SERVICIOS
• Descubrimiento en el lado del cliente: consultas en el cliente a un registrador
de servicios para descubrir la locación de las instancias de servicios
• Descubrimiento en el lado del servidor: consultas a un registrador de servicios
para obtener la locación de las instancias de los servicios
• Registrador de servicio: una base de datos para encontrar las instancias de
los servicios
• Registro a si mismo: instancia del servicio que se registra a si mismo con el
registrador de servicio
• Registro tercera parte: registradores de un tercero que registra la instancia del
servicio con el registrador de servicios
CONFIABILIDAD
• Cortacircuitos: busca prevenir fallos en cascada de
los servicios por problemas de red. Para esto invoca
un servicio remoto a través de un proxy que falla de
inmediato cuando hay una tasa de fallo o el llamado
excede la capacidad
GESTIONAR CONSISTENCIA DE
DATOS
• Base de datos por servicio: cada servicio tiene su propia base de datos privada
• Base de datos compartida: servicios comparten una base de datos
• Arquitectura basa en eventos: usar eventos para mantener la consistencia de la
información a través de los servicios.
• Fuente de eventos: persistir agregados como secuencias de eventos.
• Cola de los de transacciones: publicar cambios como se capturan en el registro de
transacciones de la base de datos como mensajes
• Disparadores de base de datos: usar triggers para capturar cambios en los datos.
• Eventos de aplicación: la aplicación inserta eventos en una tabla de la base de datos que
es usada como una cola de mensajes
• CQRS: mantener una o más vistas materializadas que pueden hacer consultas eficientes
SEGURIDAD
• Token de acceso: un token que almacena de
manera segura la información sobre el usuario y
que se intercambia entre los servicios
TESTING
• Service Component Test: un conjunto de pruebas
de un servicio aislado usando simulaciones para
cualquier otro servicio que invoque.
• Service Integration Contract Test: un conjunto de
pruebas para un servicio que es escrito por los
desarrolladores de otro servicio que consume.
OBSERVABILIDAD
• Logs de aplicación: agregar logs a la aplicación
• Métricas de aplicación: instrumentar un código de servicio para obtener
estadísticas sobre operaciones.
• Logging de auditoria: almacenar las actividades del usuario en una base de datos
• Traza distribuida: instrumentar servicios con un código que se asigna a cada
petición externa con un identificador único que se pasa entre los servicios
• Rastreo de excepciones: reporta todas las excepciones en un servicio de
monitoreo de excepciones que agrega, deja traza y notifica a los desarrolladores
• Validar salud de la API: servicio de la API que retorna la salud de un servicio y al
cual se le puede hacer ping
PATRONES UI
• Composición fragmento de página en el lado del
servidor: construir una página web en el lado del
servidor componiendo fragmentos HTML que son
pintados por múltiples componentes
• Composición UI del lado del cliente: construir una
interfaz de usuario en el lado del cliente compuesta
por fragmentos que son pintados por múltiples
componentes
HERRAMIENTAS
HYSTRIX PARA INGENIERÍA
RESILIENTE
• Hystrix es una librería ,
creada por Netflix,
diseñada para controlar la
interacción entre servicios
distribuidos; provee una
gran tolerancia a la
latencia y a los fallos.
• http://github.com/Netflix/H
ystrix
SPRING BOOT
• Permite crear fácilmente aplicaciones stand-alone,
aplicaciones que solo se necesita ejecutar.
• https://projects.spring.io/spring-boot/
NO TODO ES COLOR ROSA
ALGUNAS CONSIDERACIONES
TENER MUY PRESENTE
• Los micro servicios generan mayor complejidad en la arquitectura
• Se requiere cluster para conmutación por fallas y resiliencia
• Un simple llamado tradicional podría convertirse en un llamado de
procedimiento remoto (RPC), un REST o un mensaje asincrónico.
Los desarrolladores necesitan pensar más en problemas como la
latencia entre servicios, tolerancia a fallos, control de versiones, etc.
• Son más fáciles de probar por sí mismos, las pruebas de integración
end-to-end son más difíciles. Como el flujo de código es complejo,
puede ser difícil identificar en qué parte de la cadena se presentan
los errores.
“WHILE OUR EXPERIENCES SO FAR ARE POSITIVE COMPARED TO
MONOLITHIC APPLICATIONS, WE'RE CONSCIOUS OF THE FACT THAT
NOT ENOUGH TIME HAS PASSED FOR US TO MAKE A FULL
JUDGEMENT.”
JAMES LEWIS AND MARTIN FOWLER
HTTPS://MARTINFOWLER.COM/MICROSERVICES/
BIBLIOGRAFÍA
• Microservices [En línea]
<https://martinfowler.com/articles/microservices.html> [Consulta: 15 Enero
2017]
• ¿Por qué usar un enfoque de microservicios para crear aplicaciones? [En
línea] <https://docs.microsoft.com/es-es/azure/service-fabric/service-fabric-
overview-microservices> [Consulta: 15 Enero 2017]
• [En línea] <http://microservices.io/patterns/> [Consulta: 15 Enero 2017]
• [En línea] <https://projects.spring.io/spring-boot/> [Consulta: 15 Enero
2017]
• [En línea] <https://github.com/Netflix/Hystrix> [Consulta: 15 Enero 2017]

Más contenido relacionado

La actualidad más candente

Microservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design PatternMicroservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design Pattern
jeetendra mandal
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
Kasun Indrasiri
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
Nguyen Tung
 
Microservicios
MicroserviciosMicroservicios
Microservicios
Sergio Maurenzi
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
Kelvin Yeung
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
Mettje Heegstra
 
¿Que son los microservicios?
¿Que son los microservicios?¿Que son los microservicios?
¿Que son los microservicios?
Jose Luis Bugarin Peche
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
Kashif Ali Siddiqui
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
Araf Karsh Hamid
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice Architecture
WSO2
 
Java Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM GarageJava Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM Garage
Holly Cummins
 
SecDevOps
SecDevOpsSecDevOps
SecDevOps
Peter Lamar
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
Bozhidar Bozhanov
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
Ravindu Fernando
 
Benefits of DevSecOps
Benefits of DevSecOpsBenefits of DevSecOps
Funny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
Mikalai Alimenkou
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
Luciano Moreira da Cruz
 

La actualidad más candente (20)

Microservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design PatternMicroservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design Pattern
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
¿Que son los microservicios?
¿Que son los microservicios?¿Que son los microservicios?
¿Que son los microservicios?
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice Architecture
 
Java Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM GarageJava Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM Garage
 
SecDevOps
SecDevOpsSecDevOps
SecDevOps
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Benefits of DevSecOps
Benefits of DevSecOpsBenefits of DevSecOps
Benefits of DevSecOps
 
Funny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 

Destacado

Microservicios - RabbitMQ
Microservicios - RabbitMQMicroservicios - RabbitMQ
Microservicios - RabbitMQ
Mariano German Egui
 
Introducción al protocolo AMQP
Introducción al  protocolo AMQPIntroducción al  protocolo AMQP
Introducción al protocolo AMQP
Abraham Ntd
 
Claves Exito Agile en tu equipo o empresa
Claves Exito Agile en tu equipo o empresaClaves Exito Agile en tu equipo o empresa
Claves Exito Agile en tu equipo o empresa
Juan Carlos Vizueta
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
Joan Sebastián Ramírez Pérez
 
Código Limpio
Código LimpioCódigo Limpio
Patrones GOF
Patrones GOFPatrones GOF
Código Limpio
Código LimpioCódigo Limpio
Elevator pitch
Elevator pitchElevator pitch
Uml
UmlUml
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
Joan Sebastián Ramírez Pérez
 
Modelo negocio
Modelo negocioModelo negocio
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
Joan Sebastián Ramírez Pérez
 
Metodologías agiles
Metodologías agilesMetodologías agiles
Metodologías agiles
Joan Sebastián Ramírez Pérez
 
Ceremonias scrum
Ceremonias scrumCeremonias scrum
Roles scrum
Roles scrumRoles scrum
Retrospectiva
RetrospectivaRetrospectiva
Servicios web
Servicios webServicios web
MVC
MVCMVC
BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD

Destacado (20)

Microservicios - RabbitMQ
Microservicios - RabbitMQMicroservicios - RabbitMQ
Microservicios - RabbitMQ
 
Introducción al protocolo AMQP
Introducción al  protocolo AMQPIntroducción al  protocolo AMQP
Introducción al protocolo AMQP
 
Claves Exito Agile en tu equipo o empresa
Claves Exito Agile en tu equipo o empresaClaves Exito Agile en tu equipo o empresa
Claves Exito Agile en tu equipo o empresa
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Elevator pitch
Elevator pitchElevator pitch
Elevator pitch
 
Uml
UmlUml
Uml
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Scrum
ScrumScrum
Scrum
 
Modelo negocio
Modelo negocioModelo negocio
Modelo negocio
 
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
 
Metodologías agiles
Metodologías agilesMetodologías agiles
Metodologías agiles
 
Ceremonias scrum
Ceremonias scrumCeremonias scrum
Ceremonias scrum
 
Roles scrum
Roles scrumRoles scrum
Roles scrum
 
Retrospectiva
RetrospectivaRetrospectiva
Retrospectiva
 
Servicios web
Servicios webServicios web
Servicios web
 
MVC
MVCMVC
MVC
 
BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD
BDD TDD ATDD
 

Similar a Microservicios

.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
Guillermo Javier Bellmann
 
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
 
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
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
RonnyElasAlHuanca
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
Diego Delavega Loayza
 
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
Software Guru
 
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
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
Fernando Solis
 
Arquitecturaclienteservidor
ArquitecturaclienteservidorArquitecturaclienteservidor
Arquitecturaclienteservidor
Fernando Solis
 
cliente servidor
cliente servidorcliente servidor
cliente servidor
Fernando Solis
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
Plain Concepts
 
Cloud Native Development in the JVM
Cloud Native Development in the JVMCloud Native Development in the JVM
Cloud Native Development in the JVM
Domingo Suarez Torres
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
HaroldConde
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidorJonathan
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1
Arkhotech
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Micael Gallego
 
Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWS
Amazon Web Services LATAM
 
S6-DAW-2022S1.pptx
S6-DAW-2022S1.pptxS6-DAW-2022S1.pptx
S6-DAW-2022S1.pptx
Luis Fernando Aguas Bucheli
 

Similar a Microservicios (20)

.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
 
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 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...
 
Introducción SOA - Cloud Computing
Introducción SOA - Cloud ComputingIntroducción SOA - Cloud Computing
Introducción SOA - Cloud Computing
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
 
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
 
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 ...
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Arquitecturaclienteservidor
ArquitecturaclienteservidorArquitecturaclienteservidor
Arquitecturaclienteservidor
 
cliente servidor
cliente servidorcliente servidor
cliente servidor
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 
Cloud Native Development in the JVM
Cloud Native Development in the JVMCloud Native Development in the JVM
Cloud Native Development in the JVM
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
 
Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWS
 
S6-DAW-2022S1.pptx
S6-DAW-2022S1.pptxS6-DAW-2022S1.pptx
S6-DAW-2022S1.pptx
 

Más de Joan Sebastián Ramírez Pérez

Clean architecture
Clean architectureClean architecture
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Bddtddatdd
BddtddatddBddtddatdd
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
Joan Sebastián Ramírez Pérez
 
Orm
OrmOrm
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
Joan Sebastián Ramírez Pérez
 
Principios SOLID
Principios SOLIDPrincipios SOLID
Modelo diseño
Modelo diseñoModelo diseño
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
Joan Sebastián Ramírez Pérez
 
Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
Joan Sebastián Ramírez Pérez
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
Joan Sebastián Ramírez Pérez
 
Calidad en el desarrollo del software
Calidad en el desarrollo del softwareCalidad en el desarrollo del software
Calidad en el desarrollo del software
Joan Sebastián Ramírez Pérez
 

Más de Joan Sebastián Ramírez Pérez (17)

Clean architecture
Clean architectureClean architecture
Clean architecture
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Bddtddatdd
BddtddatddBddtddatdd
Bddtddatdd
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 
Orm
OrmOrm
Orm
 
Ciclo devida
Ciclo devidaCiclo devida
Ciclo devida
 
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
 
Lean startup
Lean startupLean startup
Lean startup
 
Principios SOLID
Principios SOLIDPrincipios SOLID
Principios SOLID
 
Modelo diseño
Modelo diseñoModelo diseño
Modelo diseño
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Calidad en el desarrollo del software
Calidad en el desarrollo del softwareCalidad en el desarrollo del software
Calidad en el desarrollo del software
 
Lean canvas
Lean canvasLean canvas
Lean canvas
 

Último

Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 

Último (20)

Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 

Microservicios

  • 2. AGENDA • ¿Qué son los microservicios? • ¿Por qué usar microservicios? • Microservicios vs monolíticos • Arquitectura microservicios • Patrones usados en microservicios • Herramientas para implementarlo • Bibliografía
  • 3. ¿QUÉ SON LOS MICROSERVICIOS? • Una forma particular de diseñar aplicaciones de software como un conjunto de independiente de servicios desplegables. • Conjunción de diversos servicios independientes que se despliegan según se vayan necesitando. Por tanto, tendremos una aplicación modular a base de pequeñas piezas, que podremos ir ampliando o reduciendo a medida que sea necesario.
  • 5. ¿POR QUÉ USAR MICROSERVICIOS? • Los servicios en sí son muy simples de construir, pues se centran en hacer solamente una cosa bien, de forma que son fáciles de probar y se puede asegurar mayor calidad. • Cada servicio podría construirse con las tecnologías y herramientas más adecuadas, permitiendo “Polyglot Programming” (las aplicaciones se deben escribir en una mezcla de lenguajes para explotar sus mejores características). • Múltiples equipos pueden trabajar independientemente. Esto fomenta “continuous delivery” debido a que permite actualizaciones frecuentes mientras el resto del sistema se mantiene estable. • Si un servicio deja de funcionar, solo afectará las partes que dependen directamente de él (si las hay). El resto operará normalmente.
  • 6. ¿POR QUÉ USAR MICROSERVICIOS? • Combinar los servicios como nos interese. • Escalar a nivel de microservicios. • Simplificación del mantenimiento. • Su fallo no arrastra a todo el sistema. • Podemos hacer despliegue progresivo, no necesariamente todo junto.
  • 8.
  • 9.
  • 10.
  • 11.
  • 15.
  • 16. PATRONES CORE • Arquitectura monolítica: arquitectura de una aplicación como una única unidad desplegable • Arquitectura micro servicio: arquitectura de una aplicación como una colección de servicios sin acoplamiento
  • 17. PATRONES DESCOMPOSICIÓN • Descomponer por capacidades del negocio: definir servicios correspondientes a las capacidades del negocio • Descomponer por subdominio: definir servicios correspondiente a subdominio DDD (Domain Driven Design)
  • 18. PATRONES DE DESPLIEGUE • Múltiples instancias de servicio por servidor: desplegar múltiples instancias de un servicio en un único servidor • Instancia de servicio por servidor: desplegar cada instancia de servicio en su propio servidor • Instancia de servicio por máquina virtual :desplegar cada instancia del servicio en su propia VM. • Instancia de servicio por contenedor: desplegar cada instancia del servicio en su propio contenedor • Despliegue Serverless: desplegar un servicio usando una plataforma de despliegue Serverless (aplicaciones que dependen de terceros) • Plataforma de despliegue de servicios: desplegar servicios usando una plataforma de despliegue altamente automatizada que provea servicios de abstracción
  • 19. PATRONES PREOCUPACIONES TRANSVERSALES • Micro servicio chasis: un framework que permite resolver las preocupaciones transversales y simplifica el desarrollo de servicios • Externalizar configuraciones: dejar de manera externa todas las configuraciones como locación de base de datos y credenciales
  • 20. PATRONES DE COMUNICACIÓN • Remote Procedure Invocation: una un protocolo basado en RPI para comunicación entre servicios • Messaging: usa mensajes asíncronos para la comunicación entre servicios • Protocolo de dominio específico: una un protocolo de dominio especifico.
  • 21. API EXTERNA • API gateway: un servicio que provee a cada cliente una interface unificada de servicios • Backend for front-end: un API gateway for each separado para cada tipo de cliente.
  • 22. API GATEWAY • Es una capa abstracta que oculta a todos los microservicios, dejando un único Endpoint para que los clientes se comuniquen. Las solicitudes que lleguen al Gateway serán procesadas/enrutadas hacia los servicios específicos. El Gateway también nos permite monitorear fácilmente el tráfico y uso de los servicios.
  • 23. DESCUBRIMIENTO DE SERVICIOS • Descubrimiento en el lado del cliente: consultas en el cliente a un registrador de servicios para descubrir la locación de las instancias de servicios • Descubrimiento en el lado del servidor: consultas a un registrador de servicios para obtener la locación de las instancias de los servicios • Registrador de servicio: una base de datos para encontrar las instancias de los servicios • Registro a si mismo: instancia del servicio que se registra a si mismo con el registrador de servicio • Registro tercera parte: registradores de un tercero que registra la instancia del servicio con el registrador de servicios
  • 24. CONFIABILIDAD • Cortacircuitos: busca prevenir fallos en cascada de los servicios por problemas de red. Para esto invoca un servicio remoto a través de un proxy que falla de inmediato cuando hay una tasa de fallo o el llamado excede la capacidad
  • 25. GESTIONAR CONSISTENCIA DE DATOS • Base de datos por servicio: cada servicio tiene su propia base de datos privada • Base de datos compartida: servicios comparten una base de datos • Arquitectura basa en eventos: usar eventos para mantener la consistencia de la información a través de los servicios. • Fuente de eventos: persistir agregados como secuencias de eventos. • Cola de los de transacciones: publicar cambios como se capturan en el registro de transacciones de la base de datos como mensajes • Disparadores de base de datos: usar triggers para capturar cambios en los datos. • Eventos de aplicación: la aplicación inserta eventos en una tabla de la base de datos que es usada como una cola de mensajes • CQRS: mantener una o más vistas materializadas que pueden hacer consultas eficientes
  • 26. SEGURIDAD • Token de acceso: un token que almacena de manera segura la información sobre el usuario y que se intercambia entre los servicios
  • 27. TESTING • Service Component Test: un conjunto de pruebas de un servicio aislado usando simulaciones para cualquier otro servicio que invoque. • Service Integration Contract Test: un conjunto de pruebas para un servicio que es escrito por los desarrolladores de otro servicio que consume.
  • 28. OBSERVABILIDAD • Logs de aplicación: agregar logs a la aplicación • Métricas de aplicación: instrumentar un código de servicio para obtener estadísticas sobre operaciones. • Logging de auditoria: almacenar las actividades del usuario en una base de datos • Traza distribuida: instrumentar servicios con un código que se asigna a cada petición externa con un identificador único que se pasa entre los servicios • Rastreo de excepciones: reporta todas las excepciones en un servicio de monitoreo de excepciones que agrega, deja traza y notifica a los desarrolladores • Validar salud de la API: servicio de la API que retorna la salud de un servicio y al cual se le puede hacer ping
  • 29. PATRONES UI • Composición fragmento de página en el lado del servidor: construir una página web en el lado del servidor componiendo fragmentos HTML que son pintados por múltiples componentes • Composición UI del lado del cliente: construir una interfaz de usuario en el lado del cliente compuesta por fragmentos que son pintados por múltiples componentes
  • 31. HYSTRIX PARA INGENIERÍA RESILIENTE • Hystrix es una librería , creada por Netflix, diseñada para controlar la interacción entre servicios distribuidos; provee una gran tolerancia a la latencia y a los fallos. • http://github.com/Netflix/H ystrix
  • 32. SPRING BOOT • Permite crear fácilmente aplicaciones stand-alone, aplicaciones que solo se necesita ejecutar. • https://projects.spring.io/spring-boot/
  • 33. NO TODO ES COLOR ROSA ALGUNAS CONSIDERACIONES
  • 34. TENER MUY PRESENTE • Los micro servicios generan mayor complejidad en la arquitectura • Se requiere cluster para conmutación por fallas y resiliencia • Un simple llamado tradicional podría convertirse en un llamado de procedimiento remoto (RPC), un REST o un mensaje asincrónico. Los desarrolladores necesitan pensar más en problemas como la latencia entre servicios, tolerancia a fallos, control de versiones, etc. • Son más fáciles de probar por sí mismos, las pruebas de integración end-to-end son más difíciles. Como el flujo de código es complejo, puede ser difícil identificar en qué parte de la cadena se presentan los errores.
  • 35. “WHILE OUR EXPERIENCES SO FAR ARE POSITIVE COMPARED TO MONOLITHIC APPLICATIONS, WE'RE CONSCIOUS OF THE FACT THAT NOT ENOUGH TIME HAS PASSED FOR US TO MAKE A FULL JUDGEMENT.” JAMES LEWIS AND MARTIN FOWLER HTTPS://MARTINFOWLER.COM/MICROSERVICES/
  • 36. BIBLIOGRAFÍA • Microservices [En línea] <https://martinfowler.com/articles/microservices.html> [Consulta: 15 Enero 2017] • ¿Por qué usar un enfoque de microservicios para crear aplicaciones? [En línea] <https://docs.microsoft.com/es-es/azure/service-fabric/service-fabric- overview-microservices> [Consulta: 15 Enero 2017] • [En línea] <http://microservices.io/patterns/> [Consulta: 15 Enero 2017] • [En línea] <https://projects.spring.io/spring-boot/> [Consulta: 15 Enero 2017] • [En línea] <https://github.com/Netflix/Hystrix> [Consulta: 15 Enero 2017]