SlideShare una empresa de Scribd logo
1 de 60
UTILIZACIÓN DE
MICROSERVICIOS CON
DOCKER, KUBERNETES, KAFKA
Y MONGODB
Alejandro Mancilla
Senior Solutions Architect, LATAM
@alxmancilla
Manuel Fontán
Technical Services Engineer, EMEA
@manfontan
Código manuel20 te otorga
20% descuento del precio de lista.
8 de Noviembre de 2017
London, UK
Intercontinental at the 02
CONTENIDO
Microservicios
Qué, cómo y
porqué
Contenedores
Docker y Kafka
Orquestación
Kubernetes,
Mesos…
MongoDB
Cómo y porqué
Cuándo Usos prácticos
Quién y porqué
1 2 3 4 5 6
MICROSERVICIOS
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
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
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
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
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
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
Monolito
Equipos
interdependientes
Vinculación
estrecha
Pequeño
cambio
Gran
impacto
Prueba
del
sistema
Microservicios
Desacoplados
Desarrolladores
independientes
Efecto aislado
EJEMPLO DE MICROSERVICIOS
Ingesta
de
Twitter
Ingesta
de
Google+
Ingesta de
Snapchat
Fusión
de feeds
Ingesta de
Facebook
EJEMPLO DE MICROSERVICIOS
Ingesta
de
Twitter
Ingesta de
Snapchat
Fusión
de feeds
Ingesta de
Facebook
EJEMPLO DE MICROSERVICIOS
Ingesta
de
Twitter
Ingesta de
Snapchat
Fusión
de feeds
Ingesta de
Facebook
EJEMPLO DE MICROSERVICIOS
Ingesta
de
Twitter
Ingesta de
Snapchat
Fusión
de feeds
Ingesta de
Facebook
Ingesta de
Whatsapp
EJEMPLO DE MICROSERVICIOS
Ingesta
de
Twitter
Ingesta de
Snapchat
Fusión
de feeds
Ingesta de
Facebook
Ingesta de
Whatsapp
Ingesta de
Snapchat
Ingesta de
Snapchat
EQUIPOS DE DESARROLLO
CONTENEDORES
CONTENEDORES: POTENCIANDO LOS
MICROSERVICIOS
Contenedores de carga reales
• Envío por carretera, ferrocarril o
mar
• Contenido intacto
• Ubiquo y estandarizado
• Simple
• Contenido protegido
• Tamaño delimitado
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
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
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
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
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
EJECUCIÓN DE MONGODB
docker run -d mongo
SOLO EL TÍTULO
SOLO EL TÍTULO
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
CONEXIÓN DE LOS MICROSERVICIOS: KAFKA
Productor
9
8
7
123...
Tema A
Consumidor
CONEXIÓN DE LOS MICROSERVICIOS: KAFKA
Productor
9
8
7
123...
Tema A
Consumidor
Productor Consumidor
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
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
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
ORQUESTACIÓN
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
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
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
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?
MONGODB
POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
POR QUÉ MONGODB ENCAJA BIEN CON LA
UTILIZACIÓN DE LOS MICROSERVICIOS
Supervisión
y
automatización
Modelo de datos
flexible
Redundancia Escalabilidad Simplicidad
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
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
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
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
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)
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.
CUÁNDO UTILIZAR
MICROSERVICIOS
CUÁNDO UTILIZAR MICROSERVICIOS
USOS PRÁCTICOS
MONGODB Y LOS MICROSERVICIOS
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
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.

Más contenido relacionado

La actualidad más candente

Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Janusz Nowak
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days UkraineSam Newman
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetesDr Ganesh Iyer
 
Kubernetes
KubernetesKubernetes
KubernetesHenry He
 
ExpertsLive NL 2022 - Microsoft Purview - What's in it for my organization?
ExpertsLive NL 2022 - Microsoft Purview - What's in it for my organization?ExpertsLive NL 2022 - Microsoft Purview - What's in it for my organization?
ExpertsLive NL 2022 - Microsoft Purview - What's in it for my organization?Albert Hoitingh
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerJohn Willis
 
MySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaMySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaYoungHeon (Roy) Kim
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 
Denodo Data Virtualization Platform: Overview (session 1 from Architect to Ar...
Denodo Data Virtualization Platform: Overview (session 1 from Architect to Ar...Denodo Data Virtualization Platform: Overview (session 1 from Architect to Ar...
Denodo Data Virtualization Platform: Overview (session 1 from Architect to Ar...Denodo
 
Apache Kafka® and the Data Mesh
Apache Kafka® and the Data MeshApache Kafka® and the Data Mesh
Apache Kafka® and the Data MeshConfluentInc1
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For BeginnersRahul Nath
 
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech TalkArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech TalkRed Hat Developers
 
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton PipelinesCloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton PipelinesNikhil Thomas
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in PracticeKasun Indrasiri
 
Microservices
MicroservicesMicroservices
MicroservicesSmartBear
 

La actualidad más candente (20)

Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days Ukraine
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
ExpertsLive NL 2022 - Microsoft Purview - What's in it for my organization?
ExpertsLive NL 2022 - Microsoft Purview - What's in it for my organization?ExpertsLive NL 2022 - Microsoft Purview - What's in it for my organization?
ExpertsLive NL 2022 - Microsoft Purview - What's in it for my organization?
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Microservices
MicroservicesMicroservices
Microservices
 
MySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaMySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & Grafana
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Denodo Data Virtualization Platform: Overview (session 1 from Architect to Ar...
Denodo Data Virtualization Platform: Overview (session 1 from Architect to Ar...Denodo Data Virtualization Platform: Overview (session 1 from Architect to Ar...
Denodo Data Virtualization Platform: Overview (session 1 from Architect to Ar...
 
Apache Kafka® and the Data Mesh
Apache Kafka® and the Data MeshApache Kafka® and the Data Mesh
Apache Kafka® and the Data Mesh
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
 
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech TalkArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton PipelinesCloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Network Service Mesh
Network Service MeshNetwork Service Mesh
Network Service Mesh
 
Cloud Pub_Sub
Cloud Pub_SubCloud Pub_Sub
Cloud Pub_Sub
 
Microservices
MicroservicesMicroservices
Microservices
 
¿Qué es docker?
¿Qué es docker?¿Qué es docker?
¿Qué es docker?
 

Similar a MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes, Kafka y MongoDB

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
 
Seminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con AtlasSeminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con AtlasMongoDB
 
Microservicios y Gestion de APIs
Microservicios y Gestion de APIsMicroservicios y Gestion de APIs
Microservicios y Gestion de APIsJorge Rodriguez
 
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
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
 
AWS Cloud Experience CA: Nuevos Paradigmas de Arquitecturas en la Nube (Serve...
AWS Cloud Experience CA: Nuevos Paradigmas de Arquitecturas en la Nube (Serve...AWS Cloud Experience CA: Nuevos Paradigmas de Arquitecturas en la Nube (Serve...
AWS Cloud Experience CA: Nuevos Paradigmas de Arquitecturas en la Nube (Serve...Amazon Web Services LATAM
 
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 DayPlain Concepts
 
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
 
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
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Andres Solorzano
 
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
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricBelatrix Software
 
Pasando modelos de Machine Learning a producción usando AWS
Pasando modelos de Machine Learning a producción usando AWSPasando modelos de Machine Learning a producción usando AWS
Pasando modelos de Machine Learning a producción usando AWSRoberto Esteves
 
Presentación omega peripherals
Presentación omega peripheralsPresentación omega peripherals
Presentación omega peripheralsOmega Peripherals
 

Similar a MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes, Kafka y MongoDB (20)

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...
 
Seminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con AtlasSeminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con Atlas
 
Microservicios y Gestion de APIs
Microservicios y Gestion de APIsMicroservicios y Gestion de APIs
Microservicios y Gestion de APIs
 
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...
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
AWS Cloud Experience CA: Nuevos Paradigmas de Arquitecturas en la Nube (Serve...
AWS Cloud Experience CA: Nuevos Paradigmas de Arquitecturas en la Nube (Serve...AWS Cloud Experience CA: Nuevos Paradigmas de Arquitecturas en la Nube (Serve...
AWS Cloud Experience CA: Nuevos Paradigmas de Arquitecturas en la Nube (Serve...
 
Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish) Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish)
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
 
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
 
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
 
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 ...
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018
 
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
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service Fabric
 
Pasando modelos de Machine Learning a producción usando AWS
Pasando modelos de Machine Learning a producción usando AWSPasando modelos de Machine Learning a producción usando AWS
Pasando modelos de Machine Learning a producción usando AWS
 
Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
Presentación omega peripherals
Presentación omega peripheralsPresentación omega peripherals
Presentación omega peripherals
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
 
Backbeam
BackbeamBackbeam
Backbeam
 

Más de MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

Más de MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes, Kafka y MongoDB

  • 1. UTILIZACIÓN DE MICROSERVICIOS CON DOCKER, KUBERNETES, KAFKA Y MONGODB Alejandro Mancilla Senior Solutions Architect, LATAM @alxmancilla Manuel Fontán Technical Services Engineer, EMEA @manfontan
  • 2. Código manuel20 te otorga 20% descuento del precio de lista. 8 de Noviembre de 2017 London, UK Intercontinental at the 02
  • 3. CONTENIDO Microservicios Qué, cómo y porqué Contenedores Docker y Kafka Orquestación Kubernetes, Mesos… MongoDB Cómo y porqué Cuándo Usos prácticos Quién y porqué 1 2 3 4 5 6
  • 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
  • 13. EJEMPLO DE MICROSERVICIOS Ingesta de Twitter Ingesta de Google+ Ingesta de Snapchat Fusión de feeds Ingesta de Facebook
  • 14. EJEMPLO DE MICROSERVICIOS Ingesta de Twitter Ingesta de Snapchat Fusión de feeds Ingesta de Facebook
  • 15. EJEMPLO DE MICROSERVICIOS Ingesta de Twitter Ingesta de Snapchat Fusión de feeds Ingesta de Facebook
  • 16. EJEMPLO DE MICROSERVICIOS Ingesta de Twitter Ingesta de Snapchat Fusión de feeds Ingesta de Facebook Ingesta de Whatsapp
  • 17. EJEMPLO DE MICROSERVICIOS Ingesta de Twitter Ingesta de Snapchat Fusión de feeds Ingesta de Facebook Ingesta de Whatsapp Ingesta de Snapchat Ingesta de Snapchat
  • 20. CONTENEDORES: POTENCIANDO LOS MICROSERVICIOS Contenedores de carga reales • Envío por carretera, ferrocarril o mar • Contenido intacto • Ubiquo y estandarizado • Simple • Contenido protegido • Tamaño delimitado
  • 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.
  • 58. MONGODB Y LOS MICROSERVICIOS
  • 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.