5. POR QUÉ UTILIZAR MICROSERVICIOS (¿A
ALGUIEN LE SUENA WEBSCALE?)
Velocidad Cambio Mantenimiento Escalamiento Capacitación
Creación rápida de
MVP
Iteraciones rápidas Componentes simples Producto Equipo ==
Componente
Reacción al mercado Efectos aislados Equipo Comités
6. POR QUÉ UTILIZAR MICROSERVICIOS (¿A
ALGUIEN LE SUENA WEBSCALE?)
Velocidad Cambio Mantenimiento Escalamiento Capacitación
Creación rápida de
MVP
Iteraciones rápidas Componentes simples Producto Equipo ==
Componente
Reacción al mercado Efectos aislados Equipo Comités
7. POR QUÉ UTILIZAR MICROSERVICIOS (¿A
ALGUIEN LE SUENA WEBSCALE?)
Velocidad Cambio Mantenimiento Escalamiento Capacitación
Creación rápida de
MVP
Iteraciones rápidas Componentes simples Producto Equipo ==
Componente
Reacción al mercado Efectos aislados Equipo Comités
8. POR QUÉ UTILIZAR MICROSERVICIOS (¿A
ALGUIEN LE SUENA WEBSCALE?)
Velocidad Cambio Mantenimiento Escalamiento Capacitación
Creación rápida de
MVP
Iteraciones rápidas Componentes simples Producto Equipo ==
Componente
Reacción al mercado Efectos aislados Equipo Comités
9. POR QUÉ UTILIZAR MICROSERVICIOS (¿A
ALGUIEN LE SUENA WEBSCALE?)
Velocidad Cambio Mantenimiento Escalamiento Capacitación
Creación rápida de
MVP
Iteraciones rápidas Componentes simples Producto Equipo ==
Componente
Reacción al mercado Efectos aislados Equipo Comités
10. POR QUÉ UTILIZAR MICROSERVICIOS (¿A
ALGUIEN LE SUENA WEBSCALE?)
Velocidad Cambio Mantenimiento Escalamiento Capacitación
Creación rápida de
MVP
Iteraciones rápidas Componentes simples Producto Equipo ==
Componente
Reacción al mercado Efectos aislados Equipo Comités
21. CONTENEDORES: POTENCIANDO LOS
MICROSERVICIOS
Contenedores de software
• 1 imagen -> Muchos
contenedores
‒ Portátil, centro de datos y nube
‒ Desarrollo, control de calidad,
producción y asistencia técnica
• Simple y eficiente
• Aislamiento
• Tamaño delimitado
22. MÁQUINAS VIRTUALES VS.
CONTENEDORES
Máquina virtual Máquina virtualMáquina virtual
Equipo sin sistema operativo
Sistema operativo anfitrión
Hipervisor
SO invitado
Bibliotecas
Apps
Servicio
SO invitado
Bibliotecas
Apps
Servicio
SO invitado
Bibliotecas
Apps
Servicio
Contenedor ContenedorContenedor
Equipo sin sistema operativo
Sistema operativo anfitrión
Motor de Docker
Bibliotecas
Bibliotecas
Apps
Bibliotecas
Apps
Servicio ServicioServicio
23. MÁQUINAS VIRTUALES VS.
CONTENEDORES
Máquina virtual Máquina virtualMáquina virtual
Equipo sin sistema operativo
Sistema operativo anfitrión
Hipervisor
SO invitado
Bibliotecas
Apps
Servicio
SO invitado
Bibliotecas
Apps
Servicio
SO invitado
Bibliotecas
Apps
Servicio
Contenedor ContenedorContenedor
Equipo sin sistema operativo
Sistema operativo anfitrión
Motor de Docker
Bibliotecas
Bibliotecas
Apps
Bibliotecas
Apps
Servicio ServicioServicio
24. MÁQUINAS VIRTUALES VS.
CONTENEDORES
Máquina virtual Máquina virtualMáquina virtual
Equipo sin sistema operativo
Sistema operativo anfitrión
Hipervisor
SO invitado
Bibliotecas
Apps
Servicio
SO invitado
Bibliotecas
Apps
Servicio
SO invitado
Bibliotecas
Apps
Servicio
Contenedor ContenedorContenedor
Equipo sin sistema operativo
Sistema operativo anfitrión
Motor de Docker
Bibliotecas
Bibliotecas
Apps
Bibliotecas
Apps
Servicio ServicioServicio
25. DOCKER
• Fácil de usar
• Más de 100 000 imágenes en
Docker Hub
• Se crean imágenes a partir de
imágenes
• Plataformas:
‒ Linux, OS X y Windows
‒ Portátil, máquina virtual, nube…
‒ Servicios en la nube
29. ARQUITECTURAS DE MICROSERVICIOS
BASADAS EN CONTENEDORES
Diversos contenedores pequeños y
especializados -> servicios sofisticados
• API bien definidas
• Lenguajes y bibliotecas
independientes
• Modularidad: fácil mantenimiento +
reutilización
• Tolerancia a errores
• Escalabilidad
30. CONEXIÓN DE LOS MICROSERVICIOS: KAFKA
Productor
9
8
7
123...
Tema A
Consumidor
31. CONEXIÓN DE LOS MICROSERVICIOS: KAFKA
Productor
9
8
7
123...
Tema A
Consumidor
Productor Consumidor
32. CONEXIÓN DE LOS MICROSERVICIOS: KAFKA
Productor
9
8
7
123...
Partición 0
Tema A
Consumidor
Productor Consumidor
4
3
5
123...
Partición 1
33. CONEXIÓN DE LOS MICROSERVICIOS: KAFKA
Productor
LÍDER
Tema A / Partición 0
Agente 1
SEGUIDOR
Tema A / Partición 1
SEGUIDOR
Tema A / Partición 0
Agente 2
LÍDER
Tema A / Partición 1
34. CONEXIÓN DE LOS MICROSERVICIOS: KAFKA
Productor
Producto
r
Producto
r
9
8
7
123
...
Partición 0
4
3
5
123
...
Partición 1
7
3
2
123
...
Partición N
Tema A
Tema B
7
6
5
123
...
Partición 0
Nuevo ← Anterior
Consumidor
Consumidor
Productor
Productor
36. ORQUESTACIÓN
Implementación, conexión y
mantenimiento automáticos de
múltiples contenedores
• Aprovisionamiento de hosts
• Contenedores
‒ Creación de instancias
‒ Reprogramación
‒ Enlace
‒ Escalado y reducción horizontal
• Exposición de servicios
37. KUBERNETES
Creado por Google, con muchas
funcionalidades y con un uso muy
extendido:
• Implementación y «replicación»
• Escalado y reducción horizontal en línea
• Actualizaciones graduales
• Alta disponibilidad
• Persistencia
• Puertos
• Equilibrio de carga
• Google Compute Engine
38. APACHE MESOS
10 000 servidores físicos: usado por
Twitter, Airbnb y Apple
• Código («marcos de trabajo») vs.
declarativo
• Menos funcionalidades que
Kubernetes
• Kubernetes como marco de
trabajo de Mesos
• Base para sistemas distribuidos
‒ Apache Aurora, Chronos y Marathon
39. ELECCIÓN DE UN MARCO DE TRABAJO DE
ORQUESTACIÓN
• Se cuenta con:
‒ ¿Aptitudes?
‒ ¿Marcos de trabajo de DevOps?
‒ ¿Número de hosts?
‒ ¿Equipos sin sistema operativo,
máquinas virtuales o nube?
• Ciclo de vida
• Funcionalidades
‒ ¿Alta disponibilidad automática?
‒ ¿Agrupación o equilibrio de carga?
‒ ¿Como servicio?
41. POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
42. POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
43. POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
44. POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
45. POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
46. POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
47. UTILIZACIÓN DE MONGODB CON CONTENEDORES
Ingesta
de
Twitter
Ingesta
de
Snapcha
t
Fusión
de feeds
Ingesta de
Facebook
Ingesta
de
Whatsapp
Ingesta
de
Snapcha
t
Ingesta
de
Snapcha
t
MongoDB
Atlas
48. UTILIZACIÓN DE MONGODB CON CONTENEDORES
Ingesta
de
Twitter
Ingesta
de
Snapcha
t
Fusión
de feeds
Ingesta de
Facebook
Ingesta de
Whatsapp
Ingesta
de
Snapcha
t
Ingesta
de
Snapchat
Kubernetes
Agente
de Ops
Mgr
Agente
de Ops
MgrAgente
de Ops
Mgr
49. UTILIZACIÓN DE MONGODB CON CONTENEDORES
Ingesta
de
Twitter
Ingesta
de
Snapchat
Fusión
de feeds
Ingesta de
Facebook
Ingesta de
Whatsapp
Ingesta
de
SnapchatIngesta
de
Snapchat
Kubernetes
mongod
mongod
mongod
50. ORQUESTACIÓN DE MONGODB MEDIANTE
KUBERNETES
Aplicación distribuida y con estado
• Volúmenes persistentes
• Direcciones IP externas para comunicaciones
internas
• Inicialización del conjunto de réplicas de
MongoDB
• Supervisor
• Copia de seguridad
51.
52.
53. STATEFULSETS
Función Beta en Kubernetes 1.5/6
• Identificadores de red únicos,
predecibles y estables.
‒ Las direcciones IP pueden cambiar
• Almacenamiento persistente y
estable
• Implementación y escalabilidad
ordenadas (0 →N-1)
• Borrado y finalización ordenados
(N-1 → 0)
54. EN LA PRÁCTICA
MongoDB y los microservicios - Parte 2: Creación de microservicios de MongoDB
de alta disponibilidad con contenedores Docker y Kubernetes
Fecha: Jueves 19 de octubre
Hora: 16:00 CEST | 9:00 CDT | 11:00 ART
Aunque la mayoría de microservicios necesitan bases de datos, la implementación de MongoDB en
contenedores tiene una complejidad añadida: las bases de datos son aplicaciones con estado donde los datos
son cruciales. MongoDB es un sistema distribuido complejo con implementación de alta disponibilidad propia
donde la utilización de contenedores puede comportar ciertos riesgos adicionales.
59. REFERENCIAS
• Enabling Microservices – Containers & Orchestration Explained (Habilitación de microservicios:
información detalladas sobre contenedores y orquestación)
https://www.mongodb.com/collateral/microservices-containers-and-orchestration-explained
• Microservicios: The Evolution of Building Modern Applications (La evolución de en la arquitectura
de las aplicaciones modernas)
https://www.mongodb.com/collateral/microservices-the-evolution-of-building-modern-applications
• Data Streaming with Apache Kafka & MongoDB (Flujo de datos con Apache Kafka y MongoDB)
https://www.mongodb.com/collateral/data-streaming-with-apache-kafka-and-mongodb
60. EN LA PRÁCTICA
MongoDB y los microservicios - Parte 2: Creación de microservicios de MongoDB
de alta disponibilidad con contenedores Docker y Kubernetes
Fecha: Jueves 19 de octubre
Hora: 16:00 CEST | 9:00 CDT | 11:00 ART
Aunque la mayoría de microservicios necesitan bases de datos, la implementación de MongoDB en
contenedores tiene una complejidad añadida: las bases de datos son aplicaciones con estado donde los datos
son cruciales. MongoDB es un sistema distribuido complejo con implementación de alta disponibilidad propia
donde la utilización de contenedores puede comportar ciertos riesgos adicionales.