SlideShare una empresa de Scribd logo
Seminario Web
MongoDB & Paradigma
Desarrolle aplicaciones más escalables utilizando
microservicios
Ruben Terceño
Senior Solutions Architect
MongoDB
Miguel Garrido
Senior Solutions Architect
Paradigma Digital
Agenda
Introducción a los microservicios:
¿Por qué han surgido? ¿Qué beneficios aportan frente a
arquitecturas tradicionales?
Nuevas tecnologías que ayudan en arquitecturas de
microservicios
¿Qué beneficios aporta el uso de MongoDB en este
tipo de arquitecturas?
INTRODUCCIÓN A LOS
MICROSERVICIOS
5
Definición de microservicio
“Microservices is a software
architecture style, in which complex
applications are composed of small,
independent processes communicating
with each other using language-
agnostic APIs. These services are
small, highly decoupled and focus on
doing a small task.”
6
Un poco de historia
Equipo de
desarrollo
Arquitecturas monolíticas (pre-
SOA)
Arquitecturas SOA Microservicios
En arquitecturas monolíticas cualquier
cambio afecta al producto completo y
todos los equipos deben estar de
acuerdo en implementarlo.
Los elementos en SOA se desarrollan de
manera más autónoma pero los equipos
deben coordinarse con otros para que
los cambios encajen en el diseño
general.
El nuevo paradigma de desarrollo
7
• Alto nivel de acoplamiento
• Complejidad de código
• Un pequeño cambio de código en la aplicación implica un despliegue
completo
• Escalado ineficiente
• Menos especialización
Arquitecturas monolíticas
8
• Menor acoplamiento entre servicios
• Bus de servicios que mapea el servicio lógico y llama al servicio físico
• Se premia la reusabilidad, lo que puede llevar a que contengan
demasiado código
• Los servicios tienen estado
• Suelen utilizar modelos de datos relacionales
• En algunos casos, es complicado separar la funcionalidad entre
servicios
Arquitecturas SOA
9
Arquitecturas de microservicios
• Principio de responsabilidad única
• Desarrollo eficiente
• Escalado elástico
• Ciclo de vida independiente
• Menor Time-to-Market (Continuous Delivery)
• Facilidad de integración con otros sistemas
10
Retos de una arquitectura de microservicios
• ¿Dónde se encuentran desplegados los servicios?
• ¿Qué pasa si alguno falla?
• ¿Cómo se configuran?
• ¿Dónde se guardan las trazas?
• ¿Cómo los monitorizamos?
• ¿Cómo los desplegamos?
• Gestionar el aumento del tráfico interno
PaaS
Microservici
o 1
Microservici
o 2
Microservici
o 3
Microservici
o 4
Servicio de enrutamiento
Almacenamiento
Servicio de
orquestación
Servicio de
descubrimiento
Registro de
contenedores
Consumidores
Servicios de logging /
monitorización
Servicio de
configuración
Herramient
a de CI
Control de
versiones
11
Herramientas
Microservicio
1
Microservicio
2
Microservicio
3
Microservicio
4
Servicio de enrutamiento
Docker registry
Servicio de orquestación
Servicio de
descubrimiento
Devops
Consumidores
Servicios de logging /
monitorización
Servicio de configuración
12
Herramientas
Microservicio
1
Microservicio
2
Microservicio
3
Microservicio
4
Servicio de enrutamiento
Docker registry
Servicio de orquestación
Servicio de
descubrimiento
Devops
Consumidores
Servicios de logging /
monitorización
Servicio de configuración
Encargado del
pipeline de
Continuous Delivery
Gestión del código
fuente de los
microservicios
Gestión de imágenes
docker de los
diferentes
microservicios
Motor de base de
datos
13
Ejemplo de una arquitectura de microservicios
PaaS
Consumidor 1
CPD 1
Node 1
Gestión de
pedidos
Gestión de
clientes
Gestión de
artículos
Gestión de
usuarios
Node 2
Eureka
Gestión de
clientes
CPD 2
Node 3
Gestión de
pedidos
Node 4
Gestión de
clientes
Gestión de
artículos
Gestión de
usuarios
Zuul
Zuul
Spring Cloud
Config
Eureka
Spring Cloud
Config
MongoDBMongoDB
CPD 3
(virtual)
MongoDB
Arbiter
Master 1 Master 2
MongoDBMongoDB
Master 3
Consumidor 2 Consumidor 3 Consumidor 4 Consumidor 5 Consumidor 6
14
• Como hemos visto, la manera de comunicarse entre microservicios son los protocolos de red, especialmente el
protocolo http, definiendo APIs REST como interfaz de comunicación. Estas APIs proporcionan:
– Organizan sistemas internos para dar apoyo a nuevos proyectos innovadores de una manera uniforme.
– Reducen costes de mantenimiento.
– Incrementan la agilidad en los procesos de transformación.
– Acercan la omnicanalidad a la empresa
Microservicios y APIs
Servicio
API
15
JSON como formato de intercambio
• JSON son las siglas de JavaScript Object Notation, y fue originalmente pensado para llevar la notación nativa
usada para declarar objetos en JavaScript a otros lenguajes. Proporciona:
– Flexibilidad
– Ligereza
– Evita transformaciones con bases de datos en formato JSON
– Modelo de datos autoexplicativo
16
Proyecciones y expansiones
• Funcionamiento similar a MongoDB
• Minimizan el tráfico y optimizan el servicio en
casos de acceso a múltiples datastores
• Ejemplo de llamada con proyección:
rest/api/content?type=page&spaceKey=TEST&proje
ctions=version, history
• Proporcionan mayor rendimiento y menor
consumo, limitando el número de llamadas a un
API
• Permiten la expansión de campos e items
embebidos de un recurso
• Ejemplo de llamada con expansión:
rest/api/content?type=page&spaceKey=TEST&expa
nd=version,history.lastUpdated
Proyecciones Expansiones
17
Transaccionalidad en microservicios
La división de los datos en diferentes repositorios (base de datos, colas de mensajes, etc) y su accesibilidad a través
de servicios que los envuelven supone perder la transaccionalidad nativa a nivel de base de datos:
Existen diversos patrones que permiten tratar esta situación:
• Reintentar: en situaciones de caída puntual o no
disponibilidad parcial del servicio (caída de un nodo por
ejemplo), reintentar la operación puede ser una solución
válida.
• Abortar la operación completa: en esta situación,
debe existir una operación de ‘compensación’ para
volver a un estado de consistencia.
• Transacción distribuida: basa su funcionamiento en la
la existencia de un proceso de gobierno de la
transacción (‘transaction manager’).
Ok
Servicio 1
Servicio 2
Servicio 3
Servicio 3
Ok
Reintento
Servicio 1
Servicio 2
Servicio 3
Deshacer
Coordinador
Servicio 2
Servicio 3
Preparar
Servicio 1 Commit
TECNOLOGÍAS MICROSERVICIOS
19
Cloud, IaaS y PaaS
• Ayudan con la gestión eficiente de recursos
• Posibilitan escalado ilimitado
• Delegación de responsabilidad en piezas propias (balanceo de
carga, enrutamiento, descubrimiento, seguridad...etc)
• Monitorización de servicios
• Logs centralizados
• Trazabilidad de servicios
• Despliegue automatizado con estrategias de balanceo
automáticas
20
Docker containers
• Proveen entornos aislados gestionados por
procesos (hypervisor) con el mínimo kernel de
sistema operativo en cada contenedor
• Con el mismo hardware se pueden ejecutar más
contenedores que con máquinas virtuales
• Docker ha conseguido un gran seguimiento de la
comunidad con un repositorio público de
imágenes, Docker Hub, que contiene sobre
400.000 imágenes
21
Broker de mensajería
• Broker de mensajería publisher / subscriber con persistencia en disco
• Conecta microservicios
• Desacopla llamadas entre microservicios
• Proporciona alta disponibilidad
Microservicio 1 Microservicio 2
Almacenamiento
Microservicio 1 Microservicio 2
Almacenamiento
- Dependencia entre servicios
- Gestión de errores y
reintentos en el servicio
llamante
- Añadir un nuevo servicio
implica sólo suscripción
- Gestión de reintentos en
Kafka
- Desacoplamiento entre
servicios
MICROSERVICIOS Y MONGODB
23
Bases de datos NoSQL
Lenguaje de búsqueda expresivo
Índices secundarios
Consistencia Fuerte
Integración con herramientas
de gestión
Escalable y distribuido
• Escalabilidad horizontal
• Cloud
Rendimiento
• Usuarios globales
• Muy alta disponibilidad
Flexibilidad
• Esquema flexible
• Datos no estructurados
• Sin relaciones complejas
24
MongoDB Nexus Architecture
Lenguaje de búsqueda expresivo
Índices secundarios
Consistencia Fuerte
Integración con herramientas
de gestión
The only NoSQL Database that combines best of RDBMS + NoSQL
Escalable y distribuido
• Escalabilidad horizontal
• Cloud
Rendimiento
• Usuarios globales
• Muy alta disponibilidad
Flexibilidad
• Esquema flexible
• Datos no estructurados
• Sin relaciones complejas
25
Modelo de datos flexible
Consumidor A Consumidor B
Microservicio 1
• El esquema flexible de MongoDB permite que cada
consumidor del servicio pueda tener una percepción
propia de un modelo común, sin afectar esto a la
morfología del dato en MongoDB
• La propagación de los cambios en el modelo de
datos de los consumidores es automática
• Las vistas read-only permiten exponer el modelo de
datos de forma polimórfica y realizar ofuscación
26
Redundancia
Debido a la naturaleza distribuida de los microservicios, estos tienen que ser diseñados teniendo en cuenta la
redundancia del dato. MongoDB encaja perfectamente en este requerimiento, ya que proporciona de base redundancia
a través de sus replica set.
Es muy importante destacar MongoDB permite que la política de redundancia puede ser variable por petición y por
criticidad del dato
CloudCPD 2CPD 1
Replica set
Nodo 1 Nodo 2 ArbiterNodo 3 Nodo 4
Los microservicios no se pueden interrumpir para hacer cambios en su esquema de datos. MongoDB
puede adaptarse a cambios en el esquema de datos sin ninguna pérdida de servicio. Su arquitectura
independiente de la plataforma proporciona facilidad de portabilidad.
Frontend
Applications
Digital & Mobile
Apps
Backend
Applications …
Operational & BI
Reporting
Application Layer
API Access Layer
Microservices
Layer
Database
Layer
Flexibilidad para modelar estructuras de datos
cambiantes sin necesidad de parar la
plataforma para realizar mantenimiento.
1
MongoDB and Microservices – Flexibility
La habilidad de escalar rapidamente para adaptarse a una demanda cambiante es un atributo clave
de los microservicios. La arquitectura de MongoDB permite escalado y alta disponibilidad de forma
nativa.
Frontend
Applications
Digital & Mobile
Apps
Backend
Applications …
Operational & BI
Reporting
Application Layer
API Access Layer
Microservices
Layer
Database
Layer
2
La escalabilidad y alta disponibilidad nativas se
dan la mano con el alto rendimiento necesario
en una plataforma de microservicios.
MongoDB and Microservices – Scalability
MongoDB proporciona funcionalidad de autenticación, control de acceso, auditoría y cifrado para
proteger los despliegues de MongoDB. Las vistas read-only permiten exponer el modelo de datos de
forma polimórfica y realizar ofuscación.
Frontend
Applications
Digital & Mobile
Apps
Backend
Applications …
Operational & BI
Reporting
Application Layer
API Access Layer
Microservices
Layer
Database
Layer
3
Seguridad nativa que protege los datos y
facilita el desarrollo de aplicaciones al asumir
el control de accesos y la visibilidad.
MongoDB and Microservices – Security
Nuestra receta:
Orquestación de MongoDB con Docker
Gestiona y provisiona los contenedores
Convierte un grupo de contenedores en un único servicio
Define una aplicación multicontenedor en un único
fichero de descripción
Ecosistema Docker
Orquestación
Coordina los contenedores de MongoDB para realizar un
despliegue según las mejores prácticas.
Control de Recursos
Dimensionado de cada instancia (y cada clúster) para evitar
contención de recursos
Docker
5x más rápido
que Kubernetes
para lanzar un
nuevo contenedor
7x más rápido que
Kubernetes en listar
los contenedores
activos
Evaluación de plataformas a
gran escala
1000 instancias EC2 en un
clúster
¿Rendimiento?
¿Capacidad operativa?
¿Facilidad de soporte?
https://medium.com/on-docker/evaluating-container-platforms-at-scale-
5e7b44d93f2c#.k2fxds8c2
https://www.docker.com/survey-2016
Porqué Swarm?
swarm-node-2
swarm-node-3swarm-node-1
¿Cómo conectamos los diferentes procesos mongod?
• Swarm proporciona redes host a host
• Utiliza el hostname definido en el archivo Compose
magicmagic
magic
Redes multi host de Swarm
SECONDARY
cgroup/docker
cgroup/docker cgroup/docker cgroup/docker
cgroup/docker cgroup/docker
cgroup/dockercgroup/docker cgroup/docker
cgroup/dockercgroup/docker cgroup/docker
cgroup/dockercgroup/docker cgroup/docker
cgroup/dockercgroup/docker cgroup/docker
PRIMARY SECONDARY SECONDARY
PRIMARY SECONDARY
PRIMARYSECONDARY SECONDARY
PRIMARYSECONDARY SECONDARY
PRIMARYSECONDARY SECONDARY
PRIMARYSECONDARY SECONDARY
Tendremos un primario y al menos dos
secundarios por aplicación.
Definiremos reglas de afinidad en Docker
Compose para evitar que los miembros de
un mismo replicaset se desplieguen el en
mismo servidor físico.
Con Linux cgroups aislaremos los
recursos (RAM / CPU / BlockIO) a lo que
tendrá acceso cada mongod.
MongoDB Ops/Cloud Manager es clave
en este proceso ya que permite la
provisión programática !
MACHINE 1
APP
1
MACHINE 2 MACHINE 3
APP
2
APP
3
APP
4
APP
5
APP
6
SECONDARY
Despliegue en alta disponibilidad
SECONDARY
cgroup/docker
cgroup/docker cgroup/docker cgroup/docker
cgroup/docker cgroup/docker
cgroup/dockercgroup/docker cgroup/docker
cgroup/dockercgroup/docker cgroup/docker
cgroup/dockercgroup/docker cgroup/docker
cgroup/dockercgroup/docker cgroup/docker
PRIMARY PRIMARY SECONDARY
PRIMARY PRIMARY
PRIMARYSECONDARY SECONDARY
PRIMARYSECONDARY SECONDARY
PRIMARYSECONDARY SECONDARY
PRIMARYSECONDARY SECONDARY
MACHINE 1
APP
1
MACHINE 2 MACHINE 3
APP
2
APP
3
APP
4
APP
5
APP
6
SECONDARY
En caso de fallo a nivel de servidor alguno
de los nodos secundarios tomará el rol de
primario.
Cuando los contenedores de la máquina
en fallo se vuelvan a levantar, siempre que
respeten los nombres la arquitectura se
resincroniza.
Evento de HA (La ley de Murphy)
Frontend
Applications
Digital & Mobile
Apps
Backend
Applications
… Operational & BI
Reporting
Application Layer
API Access Layer
Microservice
s
Layer
Database
Application
Storage
Modelo Uno:
Contenedores para todos
Pros:
• Se despliega como un todo
• Se migra fácilmente entre
entornos
Cons:
• El storage debe ser
persistente
• La comunicación intra nodo es
más compleja
• Más difícil de debugear
Arquitectura de referencia
Frontend
Applications
Digital & Mobile
Apps
Backend
Applications
… Operational & BI
Reporting
Application Layer
API Access Layer
Microservice
s
Layer
Database Cluster
Modelo Dos:
Contenedores para la aplicación
Pros:
• Permite a la base de datos
manejear su propia HA y
escalado
• Permite la separación entre
las capas lógicas y de datos
(Seguridad)
• Más fácil de debuguear
Cons:
• La base de datos se
provisiona de forma
independiente.
Arquitectura de referencia
• Nuevos clústers en
segundos
• Despliegues con
redundancia y alta
disponibilidad
• Completamente
elástico, sin pérdida
de servicio
• Parches
automáticos y
acceso inmediato a
nuevas
funcionalidades
• Con autenticación y
cifrado
• Backup continuo
con recuperación a
la carta
• Alertas
personalizables y
monitorización fina
Completamente
seguro
Ya lo
hacemos
nosotros
• Pago or uso.
Facturación por
horas
• Soporte multi cloud
(AWS ahora mismo,
Azure & Google
Cloud antes de
verano)
• Fácil migración
mediante
herramientas a
despliegues cloud,
on premise o
híbridos.
Sin trucos
MongoDB Atlas
Base de datos como servicio de MongoDB
Preguntas
Gracias.
ruben@mongodb.com
@mongodb
www.mongodb.com
Publicidad

Más contenido relacionado

La actualidad más candente (20)

Azure Networking (1).pptx
Azure Networking (1).pptxAzure Networking (1).pptx
Azure Networking (1).pptx
Razith2
 
Strategic Enterprise Architecture Roadmap
Strategic Enterprise Architecture RoadmapStrategic Enterprise Architecture Roadmap
Strategic Enterprise Architecture Roadmap
Joaquin Marques
 
Getting started with Serverless on AWS
Getting started with Serverless on AWSGetting started with Serverless on AWS
Getting started with Serverless on AWS
Adrian Hornsby
 
Estimating the Total Costs of Your Cloud Analytics Platform 
Estimating the Total Costs of Your Cloud Analytics Platform Estimating the Total Costs of Your Cloud Analytics Platform 
Estimating the Total Costs of Your Cloud Analytics Platform 
DATAVERSITY
 
A Comprehensive Approach to Application Portfolio Rationalization
A Comprehensive Approach to Application Portfolio RationalizationA Comprehensive Approach to Application Portfolio Rationalization
A Comprehensive Approach to Application Portfolio Rationalization
Cognizant
 
The Eight Building Blocks of Enterprise Application Architecture
The Eight Building Blocks of Enterprise Application ArchitectureThe Eight Building Blocks of Enterprise Application Architecture
The Eight Building Blocks of Enterprise Application Architecture
TechAhead
 
Accelerate Adoption of SAP S/4HANA with Intelligent, Continuous Automation
Accelerate Adoption of SAP S/4HANA with Intelligent, Continuous AutomationAccelerate Adoption of SAP S/4HANA with Intelligent, Continuous Automation
Accelerate Adoption of SAP S/4HANA with Intelligent, Continuous Automation
Worksoft
 
Information management and data governance in Office 365
Information management and data governance in Office 365Information management and data governance in Office 365
Information management and data governance in Office 365
Joanne Klein
 
Azure Storage
Azure StorageAzure Storage
Azure Storage
Mustafa
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
Elaine Cecília Gatto
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for Databricks
Databricks
 
Implantando a governança de ti
Implantando a governança de tiImplantando a governança de ti
Implantando a governança de ti
Silvino Neto
 
AWS glue technical enablement training
AWS glue technical enablement trainingAWS glue technical enablement training
AWS glue technical enablement training
Info Alchemy Corporation
 
Introduction to SAP Signavio
Introduction to SAP SignavioIntroduction to SAP Signavio
Introduction to SAP Signavio
rtoscanoevoluto
 
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Kai Wähner
 
Infrastructure monitoring made easy, from ingest to insight
 Infrastructure monitoring made easy, from ingest to insight Infrastructure monitoring made easy, from ingest to insight
Infrastructure monitoring made easy, from ingest to insight
Elasticsearch
 
Microsoft Cloud Identity and Access Management Poster - Atidan
Microsoft Cloud Identity and Access Management Poster - AtidanMicrosoft Cloud Identity and Access Management Poster - Atidan
Microsoft Cloud Identity and Access Management Poster - Atidan
David J Rosenthal
 
Arquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudarArquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudar
Better Developer
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
Jitendra Bafna
 
AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介
Akio Katayama
 
Azure Networking (1).pptx
Azure Networking (1).pptxAzure Networking (1).pptx
Azure Networking (1).pptx
Razith2
 
Strategic Enterprise Architecture Roadmap
Strategic Enterprise Architecture RoadmapStrategic Enterprise Architecture Roadmap
Strategic Enterprise Architecture Roadmap
Joaquin Marques
 
Getting started with Serverless on AWS
Getting started with Serverless on AWSGetting started with Serverless on AWS
Getting started with Serverless on AWS
Adrian Hornsby
 
Estimating the Total Costs of Your Cloud Analytics Platform 
Estimating the Total Costs of Your Cloud Analytics Platform Estimating the Total Costs of Your Cloud Analytics Platform 
Estimating the Total Costs of Your Cloud Analytics Platform 
DATAVERSITY
 
A Comprehensive Approach to Application Portfolio Rationalization
A Comprehensive Approach to Application Portfolio RationalizationA Comprehensive Approach to Application Portfolio Rationalization
A Comprehensive Approach to Application Portfolio Rationalization
Cognizant
 
The Eight Building Blocks of Enterprise Application Architecture
The Eight Building Blocks of Enterprise Application ArchitectureThe Eight Building Blocks of Enterprise Application Architecture
The Eight Building Blocks of Enterprise Application Architecture
TechAhead
 
Accelerate Adoption of SAP S/4HANA with Intelligent, Continuous Automation
Accelerate Adoption of SAP S/4HANA with Intelligent, Continuous AutomationAccelerate Adoption of SAP S/4HANA with Intelligent, Continuous Automation
Accelerate Adoption of SAP S/4HANA with Intelligent, Continuous Automation
Worksoft
 
Information management and data governance in Office 365
Information management and data governance in Office 365Information management and data governance in Office 365
Information management and data governance in Office 365
Joanne Klein
 
Azure Storage
Azure StorageAzure Storage
Azure Storage
Mustafa
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
Elaine Cecília Gatto
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for Databricks
Databricks
 
Implantando a governança de ti
Implantando a governança de tiImplantando a governança de ti
Implantando a governança de ti
Silvino Neto
 
Introduction to SAP Signavio
Introduction to SAP SignavioIntroduction to SAP Signavio
Introduction to SAP Signavio
rtoscanoevoluto
 
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Kai Wähner
 
Infrastructure monitoring made easy, from ingest to insight
 Infrastructure monitoring made easy, from ingest to insight Infrastructure monitoring made easy, from ingest to insight
Infrastructure monitoring made easy, from ingest to insight
Elasticsearch
 
Microsoft Cloud Identity and Access Management Poster - Atidan
Microsoft Cloud Identity and Access Management Poster - AtidanMicrosoft Cloud Identity and Access Management Poster - Atidan
Microsoft Cloud Identity and Access Management Poster - Atidan
David J Rosenthal
 
Arquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudarArquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudar
Better Developer
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
Jitendra Bafna
 
AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介
Akio Katayama
 

Destacado (20)

Webinar: 10-Step Guide to Creating a Single View of your Business
Webinar: 10-Step Guide to Creating a Single View of your BusinessWebinar: 10-Step Guide to Creating a Single View of your Business
Webinar: 10-Step Guide to Creating a Single View of your Business
MongoDB
 
Webinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBWebinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDB
MongoDB
 
Back to Basics 2017: Introduction to Sharding
Back to Basics 2017: Introduction to ShardingBack to Basics 2017: Introduction to Sharding
Back to Basics 2017: Introduction to Sharding
MongoDB
 
Back to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica SetsBack to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica Sets
MongoDB
 
Back to Basics: My First MongoDB Application
Back to Basics: My First MongoDB ApplicationBack to Basics: My First MongoDB Application
Back to Basics: My First MongoDB Application
MongoDB
 
Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn Research - Mobile Advertising Landscape, February 2017Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn
 
The Rise of Microservices
The Rise of MicroservicesThe Rise of Microservices
The Rise of Microservices
MongoDB
 
Webinar: Introducing the MongoDB Connector for BI 2.0 with Tableau
Webinar: Introducing the MongoDB Connector for BI 2.0 with TableauWebinar: Introducing the MongoDB Connector for BI 2.0 with Tableau
Webinar: Introducing the MongoDB Connector for BI 2.0 with Tableau
MongoDB
 
Back to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQLBack to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQL
MongoDB
 
How Auto Trader enables the UK's largest digital automotive marketplace
How Auto Trader enables the UK's largest digital automotive marketplaceHow Auto Trader enables the UK's largest digital automotive marketplace
How Auto Trader enables the UK's largest digital automotive marketplace
MongoDB
 
The importance of efficient data management for Digital Transformation
The importance of efficient data management for Digital TransformationThe importance of efficient data management for Digital Transformation
The importance of efficient data management for Digital Transformation
MongoDB
 
Webinar: Transitioning from SQL to MongoDB
Webinar: Transitioning from SQL to MongoDBWebinar: Transitioning from SQL to MongoDB
Webinar: Transitioning from SQL to MongoDB
MongoDB
 
Creating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital TransformationCreating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital Transformation
MongoDB
 
2015 Internet Trends Report
2015 Internet Trends Report2015 Internet Trends Report
2015 Internet Trends Report
IQbal KHan
 
Intro To MongoDB
Intro To MongoDBIntro To MongoDB
Intro To MongoDB
Alex Sharp
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Ravi Teja
 
Mongo DB
Mongo DBMongo DB
Mongo DB
Edureka!
 
Tracxn Research - Insurance Tech Landscape, February 2017
Tracxn Research - Insurance Tech Landscape, February 2017Tracxn Research - Insurance Tech Landscape, February 2017
Tracxn Research - Insurance Tech Landscape, February 2017
Tracxn
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Mike Dirolf
 
MongoDB World 2016: Poster Sessions eBook
MongoDB World 2016: Poster Sessions eBookMongoDB World 2016: Poster Sessions eBook
MongoDB World 2016: Poster Sessions eBook
MongoDB
 
Webinar: 10-Step Guide to Creating a Single View of your Business
Webinar: 10-Step Guide to Creating a Single View of your BusinessWebinar: 10-Step Guide to Creating a Single View of your Business
Webinar: 10-Step Guide to Creating a Single View of your Business
MongoDB
 
Webinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBWebinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDB
MongoDB
 
Back to Basics 2017: Introduction to Sharding
Back to Basics 2017: Introduction to ShardingBack to Basics 2017: Introduction to Sharding
Back to Basics 2017: Introduction to Sharding
MongoDB
 
Back to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica SetsBack to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica Sets
MongoDB
 
Back to Basics: My First MongoDB Application
Back to Basics: My First MongoDB ApplicationBack to Basics: My First MongoDB Application
Back to Basics: My First MongoDB Application
MongoDB
 
Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn Research - Mobile Advertising Landscape, February 2017Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn
 
The Rise of Microservices
The Rise of MicroservicesThe Rise of Microservices
The Rise of Microservices
MongoDB
 
Webinar: Introducing the MongoDB Connector for BI 2.0 with Tableau
Webinar: Introducing the MongoDB Connector for BI 2.0 with TableauWebinar: Introducing the MongoDB Connector for BI 2.0 with Tableau
Webinar: Introducing the MongoDB Connector for BI 2.0 with Tableau
MongoDB
 
Back to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQLBack to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQL
MongoDB
 
How Auto Trader enables the UK's largest digital automotive marketplace
How Auto Trader enables the UK's largest digital automotive marketplaceHow Auto Trader enables the UK's largest digital automotive marketplace
How Auto Trader enables the UK's largest digital automotive marketplace
MongoDB
 
The importance of efficient data management for Digital Transformation
The importance of efficient data management for Digital TransformationThe importance of efficient data management for Digital Transformation
The importance of efficient data management for Digital Transformation
MongoDB
 
Webinar: Transitioning from SQL to MongoDB
Webinar: Transitioning from SQL to MongoDBWebinar: Transitioning from SQL to MongoDB
Webinar: Transitioning from SQL to MongoDB
MongoDB
 
Creating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital TransformationCreating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital Transformation
MongoDB
 
2015 Internet Trends Report
2015 Internet Trends Report2015 Internet Trends Report
2015 Internet Trends Report
IQbal KHan
 
Intro To MongoDB
Intro To MongoDBIntro To MongoDB
Intro To MongoDB
Alex Sharp
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Ravi Teja
 
Tracxn Research - Insurance Tech Landscape, February 2017
Tracxn Research - Insurance Tech Landscape, February 2017Tracxn Research - Insurance Tech Landscape, February 2017
Tracxn Research - Insurance Tech Landscape, February 2017
Tracxn
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Mike Dirolf
 
MongoDB World 2016: Poster Sessions eBook
MongoDB World 2016: Poster Sessions eBookMongoDB World 2016: Poster Sessions eBook
MongoDB World 2016: Poster Sessions eBook
MongoDB
 
Publicidad

Similar a Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando microservicios (20)

.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric
Guillermo Javier Bellmann
 
Microservicios.pptx
Microservicios.pptxMicroservicios.pptx
Microservicios.pptx
Alex Amaguaña Amaguaña
 
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
Denodo
 
Cloud Native Development in the JVM
Cloud Native Development in the JVMCloud Native Development in the JVM
Cloud Native Development in the JVM
Domingo Suarez Torres
 
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
MongoDB
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
RonnyElasAlHuanca
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architecture
Domingo Suarez Torres
 
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Guillermo Javier Bellmann
 
M vs m
M vs mM vs m
M vs m
Paco Ocampo
 
SOA y Microservices Diferencias y Aplicaciones
SOA y Microservices Diferencias y AplicacionesSOA y Microservices Diferencias y Aplicaciones
SOA y Microservices Diferencias y Aplicaciones
Guatemala User Group
 
Introducción SOA - Cloud Computing
Introducción SOA - Cloud ComputingIntroducción SOA - Cloud Computing
Introducción SOA - Cloud Computing
José Ignacio Orlando
 
Microservicios - RabbitMQ
Microservicios - RabbitMQMicroservicios - RabbitMQ
Microservicios - RabbitMQ
Mariano German Egui
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Software Guru
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
Diego Delavega Loayza
 
ingenieria web.pptx
ingenieria web.pptxingenieria web.pptx
ingenieria web.pptx
medina2966
 
SOA Open Source
SOA Open SourceSOA Open Source
SOA Open Source
Lenin Lozano
 
Desarrollo moderno con DevOps y Cloud Native
Desarrollo moderno con DevOps y Cloud NativeDesarrollo moderno con DevOps y Cloud Native
Desarrollo moderno con DevOps y Cloud Native
Víctor Leonel Orozco López
 
MANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDAD
MANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDADMANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDAD
MANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDAD
Josue Elias Ipanaque Avalo
 
Cedes cloud 2013 ronald vargas quesada
Cedes cloud 2013 ronald vargas quesadaCedes cloud 2013 ronald vargas quesada
Cedes cloud 2013 ronald vargas quesada
Ronald Francisco Vargas Quesada
 
arquitectura de microservicios en el diseño de aplicaciones.pptx
arquitectura de microservicios en el diseño de aplicaciones.pptxarquitectura de microservicios en el diseño de aplicaciones.pptx
arquitectura de microservicios en el diseño de aplicaciones.pptx
nicksprofe
 
.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric
Guillermo Javier Bellmann
 
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
Denodo
 
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
MongoDB
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architecture
Domingo Suarez Torres
 
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Microservicios en la nube: un paseo por Azure Service Fabric - .NET Conf CL v...
Guillermo Javier Bellmann
 
SOA y Microservices Diferencias y Aplicaciones
SOA y Microservices Diferencias y AplicacionesSOA y Microservices Diferencias y Aplicaciones
SOA y Microservices Diferencias y Aplicaciones
Guatemala User Group
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Software Guru
 
ingenieria web.pptx
ingenieria web.pptxingenieria web.pptx
ingenieria web.pptx
medina2966
 
MANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDAD
MANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDADMANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDAD
MANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDAD
Josue Elias Ipanaque Avalo
 
arquitectura de microservicios en el diseño de aplicaciones.pptx
arquitectura de microservicios en el diseño de aplicaciones.pptxarquitectura de microservicios en el diseño de aplicaciones.pptx
arquitectura de microservicios en el diseño de aplicaciones.pptx
nicksprofe
 
Publicidad

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
 
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 MongoDB
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
 
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
 
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
 
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.2
MongoDB
 
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 Mindset
MongoDB
 
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
 
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 Dive
MongoDB
 
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
 
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
 
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
 
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 MongoDB
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
 
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
 
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
 
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.2
MongoDB
 
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 Mindset
MongoDB
 
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
 
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 Dive
MongoDB
 
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
 
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
 

Último (20)

Análisis y comparaciones de Páginas Web.pptx
Análisis y comparaciones de Páginas Web.pptxAnálisis y comparaciones de Páginas Web.pptx
Análisis y comparaciones de Páginas Web.pptx
igorgomez2021
 
Yo le caigo de una bebebe desde técnicas de disminuía.pptx
Yo le caigo de una bebebe desde técnicas de disminuía.pptxYo le caigo de una bebebe desde técnicas de disminuía.pptx
Yo le caigo de una bebebe desde técnicas de disminuía.pptx
Eegar1
 
amenorrea_gori.pptx..........yyhhhhhhhhhh
amenorrea_gori.pptx..........yyhhhhhhhhhhamenorrea_gori.pptx..........yyhhhhhhhhhh
amenorrea_gori.pptx..........yyhhhhhhhhhh
garciajhennyfer85
 
Poder de grupos raciales dentro de la comunidad judía histórico.pdf
Poder de grupos raciales dentro de la comunidad judía histórico.pdfPoder de grupos raciales dentro de la comunidad judía histórico.pdf
Poder de grupos raciales dentro de la comunidad judía histórico.pdf
JC Díaz Herrera
 
Las familias judías más ricas de México (1880-2025).pdf
Las familias judías más ricas de México (1880-2025).pdfLas familias judías más ricas de México (1880-2025).pdf
Las familias judías más ricas de México (1880-2025).pdf
JC Díaz Herrera
 
CARIES Y OTRAS ENFERMEDADES SEGUN CODIGO CIE 10.pptx
CARIES Y OTRAS ENFERMEDADES SEGUN CODIGO CIE 10.pptxCARIES Y OTRAS ENFERMEDADES SEGUN CODIGO CIE 10.pptx
CARIES Y OTRAS ENFERMEDADES SEGUN CODIGO CIE 10.pptx
josuepm025
 
Presentación_Monomios en la enseñanzahoy
Presentación_Monomios en la enseñanzahoyPresentación_Monomios en la enseñanzahoy
Presentación_Monomios en la enseñanzahoy
stalin94738
 
ANALISIS_TERRENO_FINAL moche area de 30.102m2
ANALISIS_TERRENO_FINAL moche area de 30.102m2ANALISIS_TERRENO_FINAL moche area de 30.102m2
ANALISIS_TERRENO_FINAL moche area de 30.102m2
bjgamers18
 
Manual de investigación cualitativa .pdf
Manual de investigación cualitativa .pdfManual de investigación cualitativa .pdf
Manual de investigación cualitativa .pdf
SimnEduardo1
 
TEJIDOS ADULTOS (3).pdfnklnkñjljlkjlljjj
TEJIDOS ADULTOS (3).pdfnklnkñjljlkjlljjjTEJIDOS ADULTOS (3).pdfnklnkñjljlkjlljjj
TEJIDOS ADULTOS (3).pdfnklnkñjljlkjlljjj
elcuybueno
 
Diferencias entre Eucariotas y procariotas.pptx
Diferencias entre Eucariotas y procariotas.pptxDiferencias entre Eucariotas y procariotas.pptx
Diferencias entre Eucariotas y procariotas.pptx
RodriguezDanielaAna
 
PIB PPA por ingreso en zonas geográficas en porcentaje global (1450 y 1825).pdf
PIB PPA por ingreso en zonas geográficas en porcentaje global (1450 y 1825).pdfPIB PPA por ingreso en zonas geográficas en porcentaje global (1450 y 1825).pdf
PIB PPA por ingreso en zonas geográficas en porcentaje global (1450 y 1825).pdf
JC Díaz Herrera
 
estructuras de datos de python y sus deviravados
estructuras de datos de python y sus deviravadosestructuras de datos de python y sus deviravados
estructuras de datos de python y sus deviravados
oidorjuan790
 
Presentación proyecto de literatura antigua académico vintage beis_20250429_1...
Presentación proyecto de literatura antigua académico vintage beis_20250429_1...Presentación proyecto de literatura antigua académico vintage beis_20250429_1...
Presentación proyecto de literatura antigua académico vintage beis_20250429_1...
hugovazquez123o
 
MEZCLAS Y METODOS DE SEPARACIÓN DE MEZCLAS.pptx
MEZCLAS Y METODOS DE SEPARACIÓN DE MEZCLAS.pptxMEZCLAS Y METODOS DE SEPARACIÓN DE MEZCLAS.pptx
MEZCLAS Y METODOS DE SEPARACIÓN DE MEZCLAS.pptx
yokolocolove1
 
PRESENTACION UPTAEB RUTA UNIV 2025 (1).pptx
PRESENTACION UPTAEB RUTA UNIV 2025 (1).pptxPRESENTACION UPTAEB RUTA UNIV 2025 (1).pptx
PRESENTACION UPTAEB RUTA UNIV 2025 (1).pptx
GloriaColmenares
 
Introduccion-a-Ricardo-Palma educación historia
Introduccion-a-Ricardo-Palma educación historiaIntroduccion-a-Ricardo-Palma educación historia
Introduccion-a-Ricardo-Palma educación historia
MilagrosCcunoCalcina
 
Guia para la elaboracion de un estudio de riesgo
Guia para la elaboracion de un estudio de riesgoGuia para la elaboracion de un estudio de riesgo
Guia para la elaboracion de un estudio de riesgo
kikReina
 
Proceso de flujos de administracion de abastecimiento
Proceso de flujos de administracion de abastecimientoProceso de flujos de administracion de abastecimiento
Proceso de flujos de administracion de abastecimiento
abigailgreassemillas
 
Diagnostico-Situacional-de-Leoncio-Prado-Final.pptx
Diagnostico-Situacional-de-Leoncio-Prado-Final.pptxDiagnostico-Situacional-de-Leoncio-Prado-Final.pptx
Diagnostico-Situacional-de-Leoncio-Prado-Final.pptx
roling1
 
Análisis y comparaciones de Páginas Web.pptx
Análisis y comparaciones de Páginas Web.pptxAnálisis y comparaciones de Páginas Web.pptx
Análisis y comparaciones de Páginas Web.pptx
igorgomez2021
 
Yo le caigo de una bebebe desde técnicas de disminuía.pptx
Yo le caigo de una bebebe desde técnicas de disminuía.pptxYo le caigo de una bebebe desde técnicas de disminuía.pptx
Yo le caigo de una bebebe desde técnicas de disminuía.pptx
Eegar1
 
amenorrea_gori.pptx..........yyhhhhhhhhhh
amenorrea_gori.pptx..........yyhhhhhhhhhhamenorrea_gori.pptx..........yyhhhhhhhhhh
amenorrea_gori.pptx..........yyhhhhhhhhhh
garciajhennyfer85
 
Poder de grupos raciales dentro de la comunidad judía histórico.pdf
Poder de grupos raciales dentro de la comunidad judía histórico.pdfPoder de grupos raciales dentro de la comunidad judía histórico.pdf
Poder de grupos raciales dentro de la comunidad judía histórico.pdf
JC Díaz Herrera
 
Las familias judías más ricas de México (1880-2025).pdf
Las familias judías más ricas de México (1880-2025).pdfLas familias judías más ricas de México (1880-2025).pdf
Las familias judías más ricas de México (1880-2025).pdf
JC Díaz Herrera
 
CARIES Y OTRAS ENFERMEDADES SEGUN CODIGO CIE 10.pptx
CARIES Y OTRAS ENFERMEDADES SEGUN CODIGO CIE 10.pptxCARIES Y OTRAS ENFERMEDADES SEGUN CODIGO CIE 10.pptx
CARIES Y OTRAS ENFERMEDADES SEGUN CODIGO CIE 10.pptx
josuepm025
 
Presentación_Monomios en la enseñanzahoy
Presentación_Monomios en la enseñanzahoyPresentación_Monomios en la enseñanzahoy
Presentación_Monomios en la enseñanzahoy
stalin94738
 
ANALISIS_TERRENO_FINAL moche area de 30.102m2
ANALISIS_TERRENO_FINAL moche area de 30.102m2ANALISIS_TERRENO_FINAL moche area de 30.102m2
ANALISIS_TERRENO_FINAL moche area de 30.102m2
bjgamers18
 
Manual de investigación cualitativa .pdf
Manual de investigación cualitativa .pdfManual de investigación cualitativa .pdf
Manual de investigación cualitativa .pdf
SimnEduardo1
 
TEJIDOS ADULTOS (3).pdfnklnkñjljlkjlljjj
TEJIDOS ADULTOS (3).pdfnklnkñjljlkjlljjjTEJIDOS ADULTOS (3).pdfnklnkñjljlkjlljjj
TEJIDOS ADULTOS (3).pdfnklnkñjljlkjlljjj
elcuybueno
 
Diferencias entre Eucariotas y procariotas.pptx
Diferencias entre Eucariotas y procariotas.pptxDiferencias entre Eucariotas y procariotas.pptx
Diferencias entre Eucariotas y procariotas.pptx
RodriguezDanielaAna
 
PIB PPA por ingreso en zonas geográficas en porcentaje global (1450 y 1825).pdf
PIB PPA por ingreso en zonas geográficas en porcentaje global (1450 y 1825).pdfPIB PPA por ingreso en zonas geográficas en porcentaje global (1450 y 1825).pdf
PIB PPA por ingreso en zonas geográficas en porcentaje global (1450 y 1825).pdf
JC Díaz Herrera
 
estructuras de datos de python y sus deviravados
estructuras de datos de python y sus deviravadosestructuras de datos de python y sus deviravados
estructuras de datos de python y sus deviravados
oidorjuan790
 
Presentación proyecto de literatura antigua académico vintage beis_20250429_1...
Presentación proyecto de literatura antigua académico vintage beis_20250429_1...Presentación proyecto de literatura antigua académico vintage beis_20250429_1...
Presentación proyecto de literatura antigua académico vintage beis_20250429_1...
hugovazquez123o
 
MEZCLAS Y METODOS DE SEPARACIÓN DE MEZCLAS.pptx
MEZCLAS Y METODOS DE SEPARACIÓN DE MEZCLAS.pptxMEZCLAS Y METODOS DE SEPARACIÓN DE MEZCLAS.pptx
MEZCLAS Y METODOS DE SEPARACIÓN DE MEZCLAS.pptx
yokolocolove1
 
PRESENTACION UPTAEB RUTA UNIV 2025 (1).pptx
PRESENTACION UPTAEB RUTA UNIV 2025 (1).pptxPRESENTACION UPTAEB RUTA UNIV 2025 (1).pptx
PRESENTACION UPTAEB RUTA UNIV 2025 (1).pptx
GloriaColmenares
 
Introduccion-a-Ricardo-Palma educación historia
Introduccion-a-Ricardo-Palma educación historiaIntroduccion-a-Ricardo-Palma educación historia
Introduccion-a-Ricardo-Palma educación historia
MilagrosCcunoCalcina
 
Guia para la elaboracion de un estudio de riesgo
Guia para la elaboracion de un estudio de riesgoGuia para la elaboracion de un estudio de riesgo
Guia para la elaboracion de un estudio de riesgo
kikReina
 
Proceso de flujos de administracion de abastecimiento
Proceso de flujos de administracion de abastecimientoProceso de flujos de administracion de abastecimiento
Proceso de flujos de administracion de abastecimiento
abigailgreassemillas
 
Diagnostico-Situacional-de-Leoncio-Prado-Final.pptx
Diagnostico-Situacional-de-Leoncio-Prado-Final.pptxDiagnostico-Situacional-de-Leoncio-Prado-Final.pptx
Diagnostico-Situacional-de-Leoncio-Prado-Final.pptx
roling1
 

Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando microservicios

  • 1. Seminario Web MongoDB & Paradigma Desarrolle aplicaciones más escalables utilizando microservicios
  • 2. Ruben Terceño Senior Solutions Architect MongoDB Miguel Garrido Senior Solutions Architect Paradigma Digital
  • 3. Agenda Introducción a los microservicios: ¿Por qué han surgido? ¿Qué beneficios aportan frente a arquitecturas tradicionales? Nuevas tecnologías que ayudan en arquitecturas de microservicios ¿Qué beneficios aporta el uso de MongoDB en este tipo de arquitecturas?
  • 5. 5 Definición de microservicio “Microservices is a software architecture style, in which complex applications are composed of small, independent processes communicating with each other using language- agnostic APIs. These services are small, highly decoupled and focus on doing a small task.”
  • 6. 6 Un poco de historia Equipo de desarrollo Arquitecturas monolíticas (pre- SOA) Arquitecturas SOA Microservicios En arquitecturas monolíticas cualquier cambio afecta al producto completo y todos los equipos deben estar de acuerdo en implementarlo. Los elementos en SOA se desarrollan de manera más autónoma pero los equipos deben coordinarse con otros para que los cambios encajen en el diseño general. El nuevo paradigma de desarrollo
  • 7. 7 • Alto nivel de acoplamiento • Complejidad de código • Un pequeño cambio de código en la aplicación implica un despliegue completo • Escalado ineficiente • Menos especialización Arquitecturas monolíticas
  • 8. 8 • Menor acoplamiento entre servicios • Bus de servicios que mapea el servicio lógico y llama al servicio físico • Se premia la reusabilidad, lo que puede llevar a que contengan demasiado código • Los servicios tienen estado • Suelen utilizar modelos de datos relacionales • En algunos casos, es complicado separar la funcionalidad entre servicios Arquitecturas SOA
  • 9. 9 Arquitecturas de microservicios • Principio de responsabilidad única • Desarrollo eficiente • Escalado elástico • Ciclo de vida independiente • Menor Time-to-Market (Continuous Delivery) • Facilidad de integración con otros sistemas
  • 10. 10 Retos de una arquitectura de microservicios • ¿Dónde se encuentran desplegados los servicios? • ¿Qué pasa si alguno falla? • ¿Cómo se configuran? • ¿Dónde se guardan las trazas? • ¿Cómo los monitorizamos? • ¿Cómo los desplegamos? • Gestionar el aumento del tráfico interno PaaS Microservici o 1 Microservici o 2 Microservici o 3 Microservici o 4 Servicio de enrutamiento Almacenamiento Servicio de orquestación Servicio de descubrimiento Registro de contenedores Consumidores Servicios de logging / monitorización Servicio de configuración Herramient a de CI Control de versiones
  • 11. 11 Herramientas Microservicio 1 Microservicio 2 Microservicio 3 Microservicio 4 Servicio de enrutamiento Docker registry Servicio de orquestación Servicio de descubrimiento Devops Consumidores Servicios de logging / monitorización Servicio de configuración
  • 12. 12 Herramientas Microservicio 1 Microservicio 2 Microservicio 3 Microservicio 4 Servicio de enrutamiento Docker registry Servicio de orquestación Servicio de descubrimiento Devops Consumidores Servicios de logging / monitorización Servicio de configuración Encargado del pipeline de Continuous Delivery Gestión del código fuente de los microservicios Gestión de imágenes docker de los diferentes microservicios Motor de base de datos
  • 13. 13 Ejemplo de una arquitectura de microservicios PaaS Consumidor 1 CPD 1 Node 1 Gestión de pedidos Gestión de clientes Gestión de artículos Gestión de usuarios Node 2 Eureka Gestión de clientes CPD 2 Node 3 Gestión de pedidos Node 4 Gestión de clientes Gestión de artículos Gestión de usuarios Zuul Zuul Spring Cloud Config Eureka Spring Cloud Config MongoDBMongoDB CPD 3 (virtual) MongoDB Arbiter Master 1 Master 2 MongoDBMongoDB Master 3 Consumidor 2 Consumidor 3 Consumidor 4 Consumidor 5 Consumidor 6
  • 14. 14 • Como hemos visto, la manera de comunicarse entre microservicios son los protocolos de red, especialmente el protocolo http, definiendo APIs REST como interfaz de comunicación. Estas APIs proporcionan: – Organizan sistemas internos para dar apoyo a nuevos proyectos innovadores de una manera uniforme. – Reducen costes de mantenimiento. – Incrementan la agilidad en los procesos de transformación. – Acercan la omnicanalidad a la empresa Microservicios y APIs Servicio API
  • 15. 15 JSON como formato de intercambio • JSON son las siglas de JavaScript Object Notation, y fue originalmente pensado para llevar la notación nativa usada para declarar objetos en JavaScript a otros lenguajes. Proporciona: – Flexibilidad – Ligereza – Evita transformaciones con bases de datos en formato JSON – Modelo de datos autoexplicativo
  • 16. 16 Proyecciones y expansiones • Funcionamiento similar a MongoDB • Minimizan el tráfico y optimizan el servicio en casos de acceso a múltiples datastores • Ejemplo de llamada con proyección: rest/api/content?type=page&spaceKey=TEST&proje ctions=version, history • Proporcionan mayor rendimiento y menor consumo, limitando el número de llamadas a un API • Permiten la expansión de campos e items embebidos de un recurso • Ejemplo de llamada con expansión: rest/api/content?type=page&spaceKey=TEST&expa nd=version,history.lastUpdated Proyecciones Expansiones
  • 17. 17 Transaccionalidad en microservicios La división de los datos en diferentes repositorios (base de datos, colas de mensajes, etc) y su accesibilidad a través de servicios que los envuelven supone perder la transaccionalidad nativa a nivel de base de datos: Existen diversos patrones que permiten tratar esta situación: • Reintentar: en situaciones de caída puntual o no disponibilidad parcial del servicio (caída de un nodo por ejemplo), reintentar la operación puede ser una solución válida. • Abortar la operación completa: en esta situación, debe existir una operación de ‘compensación’ para volver a un estado de consistencia. • Transacción distribuida: basa su funcionamiento en la la existencia de un proceso de gobierno de la transacción (‘transaction manager’). Ok Servicio 1 Servicio 2 Servicio 3 Servicio 3 Ok Reintento Servicio 1 Servicio 2 Servicio 3 Deshacer Coordinador Servicio 2 Servicio 3 Preparar Servicio 1 Commit
  • 19. 19 Cloud, IaaS y PaaS • Ayudan con la gestión eficiente de recursos • Posibilitan escalado ilimitado • Delegación de responsabilidad en piezas propias (balanceo de carga, enrutamiento, descubrimiento, seguridad...etc) • Monitorización de servicios • Logs centralizados • Trazabilidad de servicios • Despliegue automatizado con estrategias de balanceo automáticas
  • 20. 20 Docker containers • Proveen entornos aislados gestionados por procesos (hypervisor) con el mínimo kernel de sistema operativo en cada contenedor • Con el mismo hardware se pueden ejecutar más contenedores que con máquinas virtuales • Docker ha conseguido un gran seguimiento de la comunidad con un repositorio público de imágenes, Docker Hub, que contiene sobre 400.000 imágenes
  • 21. 21 Broker de mensajería • Broker de mensajería publisher / subscriber con persistencia en disco • Conecta microservicios • Desacopla llamadas entre microservicios • Proporciona alta disponibilidad Microservicio 1 Microservicio 2 Almacenamiento Microservicio 1 Microservicio 2 Almacenamiento - Dependencia entre servicios - Gestión de errores y reintentos en el servicio llamante - Añadir un nuevo servicio implica sólo suscripción - Gestión de reintentos en Kafka - Desacoplamiento entre servicios
  • 23. 23 Bases de datos NoSQL Lenguaje de búsqueda expresivo Índices secundarios Consistencia Fuerte Integración con herramientas de gestión Escalable y distribuido • Escalabilidad horizontal • Cloud Rendimiento • Usuarios globales • Muy alta disponibilidad Flexibilidad • Esquema flexible • Datos no estructurados • Sin relaciones complejas
  • 24. 24 MongoDB Nexus Architecture Lenguaje de búsqueda expresivo Índices secundarios Consistencia Fuerte Integración con herramientas de gestión The only NoSQL Database that combines best of RDBMS + NoSQL Escalable y distribuido • Escalabilidad horizontal • Cloud Rendimiento • Usuarios globales • Muy alta disponibilidad Flexibilidad • Esquema flexible • Datos no estructurados • Sin relaciones complejas
  • 25. 25 Modelo de datos flexible Consumidor A Consumidor B Microservicio 1 • El esquema flexible de MongoDB permite que cada consumidor del servicio pueda tener una percepción propia de un modelo común, sin afectar esto a la morfología del dato en MongoDB • La propagación de los cambios en el modelo de datos de los consumidores es automática • Las vistas read-only permiten exponer el modelo de datos de forma polimórfica y realizar ofuscación
  • 26. 26 Redundancia Debido a la naturaleza distribuida de los microservicios, estos tienen que ser diseñados teniendo en cuenta la redundancia del dato. MongoDB encaja perfectamente en este requerimiento, ya que proporciona de base redundancia a través de sus replica set. Es muy importante destacar MongoDB permite que la política de redundancia puede ser variable por petición y por criticidad del dato CloudCPD 2CPD 1 Replica set Nodo 1 Nodo 2 ArbiterNodo 3 Nodo 4
  • 27. Los microservicios no se pueden interrumpir para hacer cambios en su esquema de datos. MongoDB puede adaptarse a cambios en el esquema de datos sin ninguna pérdida de servicio. Su arquitectura independiente de la plataforma proporciona facilidad de portabilidad. Frontend Applications Digital & Mobile Apps Backend Applications … Operational & BI Reporting Application Layer API Access Layer Microservices Layer Database Layer Flexibilidad para modelar estructuras de datos cambiantes sin necesidad de parar la plataforma para realizar mantenimiento. 1 MongoDB and Microservices – Flexibility
  • 28. La habilidad de escalar rapidamente para adaptarse a una demanda cambiante es un atributo clave de los microservicios. La arquitectura de MongoDB permite escalado y alta disponibilidad de forma nativa. Frontend Applications Digital & Mobile Apps Backend Applications … Operational & BI Reporting Application Layer API Access Layer Microservices Layer Database Layer 2 La escalabilidad y alta disponibilidad nativas se dan la mano con el alto rendimiento necesario en una plataforma de microservicios. MongoDB and Microservices – Scalability
  • 29. MongoDB proporciona funcionalidad de autenticación, control de acceso, auditoría y cifrado para proteger los despliegues de MongoDB. Las vistas read-only permiten exponer el modelo de datos de forma polimórfica y realizar ofuscación. Frontend Applications Digital & Mobile Apps Backend Applications … Operational & BI Reporting Application Layer API Access Layer Microservices Layer Database Layer 3 Seguridad nativa que protege los datos y facilita el desarrollo de aplicaciones al asumir el control de accesos y la visibilidad. MongoDB and Microservices – Security
  • 30. Nuestra receta: Orquestación de MongoDB con Docker
  • 31. Gestiona y provisiona los contenedores Convierte un grupo de contenedores en un único servicio Define una aplicación multicontenedor en un único fichero de descripción Ecosistema Docker
  • 32. Orquestación Coordina los contenedores de MongoDB para realizar un despliegue según las mejores prácticas. Control de Recursos Dimensionado de cada instancia (y cada clúster) para evitar contención de recursos Docker
  • 33. 5x más rápido que Kubernetes para lanzar un nuevo contenedor 7x más rápido que Kubernetes en listar los contenedores activos Evaluación de plataformas a gran escala 1000 instancias EC2 en un clúster ¿Rendimiento? ¿Capacidad operativa? ¿Facilidad de soporte? https://medium.com/on-docker/evaluating-container-platforms-at-scale- 5e7b44d93f2c#.k2fxds8c2 https://www.docker.com/survey-2016 Porqué Swarm?
  • 34. swarm-node-2 swarm-node-3swarm-node-1 ¿Cómo conectamos los diferentes procesos mongod? • Swarm proporciona redes host a host • Utiliza el hostname definido en el archivo Compose magicmagic magic Redes multi host de Swarm
  • 35. SECONDARY cgroup/docker cgroup/docker cgroup/docker cgroup/docker cgroup/docker cgroup/docker cgroup/dockercgroup/docker cgroup/docker cgroup/dockercgroup/docker cgroup/docker cgroup/dockercgroup/docker cgroup/docker cgroup/dockercgroup/docker cgroup/docker PRIMARY SECONDARY SECONDARY PRIMARY SECONDARY PRIMARYSECONDARY SECONDARY PRIMARYSECONDARY SECONDARY PRIMARYSECONDARY SECONDARY PRIMARYSECONDARY SECONDARY Tendremos un primario y al menos dos secundarios por aplicación. Definiremos reglas de afinidad en Docker Compose para evitar que los miembros de un mismo replicaset se desplieguen el en mismo servidor físico. Con Linux cgroups aislaremos los recursos (RAM / CPU / BlockIO) a lo que tendrá acceso cada mongod. MongoDB Ops/Cloud Manager es clave en este proceso ya que permite la provisión programática ! MACHINE 1 APP 1 MACHINE 2 MACHINE 3 APP 2 APP 3 APP 4 APP 5 APP 6 SECONDARY Despliegue en alta disponibilidad
  • 36. SECONDARY cgroup/docker cgroup/docker cgroup/docker cgroup/docker cgroup/docker cgroup/docker cgroup/dockercgroup/docker cgroup/docker cgroup/dockercgroup/docker cgroup/docker cgroup/dockercgroup/docker cgroup/docker cgroup/dockercgroup/docker cgroup/docker PRIMARY PRIMARY SECONDARY PRIMARY PRIMARY PRIMARYSECONDARY SECONDARY PRIMARYSECONDARY SECONDARY PRIMARYSECONDARY SECONDARY PRIMARYSECONDARY SECONDARY MACHINE 1 APP 1 MACHINE 2 MACHINE 3 APP 2 APP 3 APP 4 APP 5 APP 6 SECONDARY En caso de fallo a nivel de servidor alguno de los nodos secundarios tomará el rol de primario. Cuando los contenedores de la máquina en fallo se vuelvan a levantar, siempre que respeten los nombres la arquitectura se resincroniza. Evento de HA (La ley de Murphy)
  • 37. Frontend Applications Digital & Mobile Apps Backend Applications … Operational & BI Reporting Application Layer API Access Layer Microservice s Layer Database Application Storage Modelo Uno: Contenedores para todos Pros: • Se despliega como un todo • Se migra fácilmente entre entornos Cons: • El storage debe ser persistente • La comunicación intra nodo es más compleja • Más difícil de debugear Arquitectura de referencia
  • 38. Frontend Applications Digital & Mobile Apps Backend Applications … Operational & BI Reporting Application Layer API Access Layer Microservice s Layer Database Cluster Modelo Dos: Contenedores para la aplicación Pros: • Permite a la base de datos manejear su propia HA y escalado • Permite la separación entre las capas lógicas y de datos (Seguridad) • Más fácil de debuguear Cons: • La base de datos se provisiona de forma independiente. Arquitectura de referencia
  • 39. • Nuevos clústers en segundos • Despliegues con redundancia y alta disponibilidad • Completamente elástico, sin pérdida de servicio • Parches automáticos y acceso inmediato a nuevas funcionalidades • Con autenticación y cifrado • Backup continuo con recuperación a la carta • Alertas personalizables y monitorización fina Completamente seguro Ya lo hacemos nosotros • Pago or uso. Facturación por horas • Soporte multi cloud (AWS ahora mismo, Azure & Google Cloud antes de verano) • Fácil migración mediante herramientas a despliegues cloud, on premise o híbridos. Sin trucos MongoDB Atlas Base de datos como servicio de MongoDB