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

Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsGuozhang Wang
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...Edureka!
 
Api management best practices with wso2 api manager
Api management best practices with wso2 api managerApi management best practices with wso2 api manager
Api management best practices with wso2 api managerChanaka Fernando
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewJames Falkner
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices Amazon Web Services
 
Monoliths to microservices workshop
Monoliths to microservices workshopMonoliths to microservices workshop
Monoliths to microservices workshopJudy Breedlove
 
What are Microservices | Microservices Architecture Training | Microservices ...
What are Microservices | Microservices Architecture Training | Microservices ...What are Microservices | Microservices Architecture Training | Microservices ...
What are Microservices | Microservices Architecture Training | Microservices ...Edureka!
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecAdam Paxton
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365OutSystems
 
The Migration to Event-Driven Microservices (Adam Bellemare, Flipp) Kafka Sum...
The Migration to Event-Driven Microservices (Adam Bellemare, Flipp) Kafka Sum...The Migration to Event-Driven Microservices (Adam Bellemare, Flipp) Kafka Sum...
The Migration to Event-Driven Microservices (Adam Bellemare, Flipp) Kafka Sum...confluent
 
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...SlideTeam
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker, Inc.
 

La actualidad más candente (20)

Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka Streams
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Api management best practices with wso2 api manager
Api management best practices with wso2 api managerApi management best practices with wso2 api manager
Api management best practices with wso2 api manager
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
Monoliths to microservices workshop
Monoliths to microservices workshopMonoliths to microservices workshop
Monoliths to microservices workshop
 
What are Microservices | Microservices Architecture Training | Microservices ...
What are Microservices | Microservices Architecture Training | Microservices ...What are Microservices | Microservices Architecture Training | Microservices ...
What are Microservices | Microservices Architecture Training | Microservices ...
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Construyendo aplicaciones Serverless
Construyendo aplicaciones ServerlessConstruyendo aplicaciones Serverless
Construyendo aplicaciones Serverless
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365
 
The Migration to Event-Driven Microservices (Adam Bellemare, Flipp) Kafka Sum...
The Migration to Event-Driven Microservices (Adam Bellemare, Flipp) Kafka Sum...The Migration to Event-Driven Microservices (Adam Bellemare, Flipp) Kafka Sum...
The Migration to Event-Driven Microservices (Adam Bellemare, Flipp) Kafka Sum...
 
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to 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.