Topología: La arquitectura de los sistemas distribuidos

No se puede juzgar un libro por su portada, pero sí la arquitectura de un sistema distribuido por su topología.

Si dos sistemas distribuidos son igual de eficaces, ¿es el que tiene una topología más sencilla el que tiene una arquitectura mejor? Este artículo compara la arquitectura de dos bases de datos de documentos y dos almacenes de columnas anchas examinando sus topologías.

Tienda de columna ancha

Topología #1

wcs_one

 

Wow. Aquí pasan muchas cosas. Hay cuatro tipos de nodos y múltiples componentes por nodo.

Topología #2

 

wcs_two

Bonito. Simple. Hay un tipo de nodo.

¿Qué tienda de columnas anchas elegiría?

  • ¿Cuál será más fácil de desplegar?
  • ¿Cuál será más fácil de mantener?
  • ¿Cuál será más fácil de escalar?
  • ¿Cuál va a ser más resistente

Creo que cuantas menos piezas móviles, mejor.

Apache HBase

 wcs_hbase

Apaceh HBase se asienta sobre Apache Hadoop, por lo que hay muchos tipos de nodos y componentes. Apache Hadoop requiere nodos de nombres y nodos de datos para HDFS. Requiere rastreadores de trabajos y rastreadores de tareas para map / reduce. Apache HBase requiere servidores maestros, servidores de región y un clúster Zookeeper. Los componentes Apache HBase, HDFS y map / reduce pueden estar ubicados en el mismo sitio. Sin embargo, no tienen por qué estarlo.

El servidor maestro y el nodo de nombres pueden ser puntos únicos de fallo. Sin embargo, se pueden desplegar múltiples nodos de nombres, así como múltiples servidores maestros. Dicho esto, habrá problemas si los nodos de nombres no están disponibles, los servidores maestros no están disponibles, y / o el clúster Zookeeper no está disponible.

Apache Cassandra

 

wcs_cass

Hay un tipo de nodo. Eso es todo. Los clientes se comunican directamente con los nodos. No hay puntos únicos de fallo. No hay dependencias de nodos independientes o clusters separados.

Bases de datos de documentos

Topología #1

 

doc_db_one

Wow. Aquí pasan muchas cosas. Hay cuatro tipos de nodos y dos capas de agrupaciones lógicas.

Topología #2

 

doc_db_two

Bonito. Simple. Hay un tipo de nodo.

¿Qué base de datos de documentos elegiría?

  • ¿Cuál será más fácil de desplegar?
  • ¿Cuál será más fácil de mantener?
  • ¿Cuál será más fácil de escalar?
  • ¿Cuál va a ser más resistente?

Creo que cuantas menos piezas móviles, mejor.

MongoDB

 

doc_db_mongo

La topología de MongoDB es similar a la de Apache HBase. La diferencia es que los clientes no se conectan directamente a los nodos. Las peticiones de los clientes son proxyadas por los nodos router. Los nodos enrutadores recuperan la información de los fragmentos de los nodos de configuración. Un fragmento consiste en un conjunto de réplicas. Un conjunto de réplicas está formado por varios nodos y un árbitro.

Al igual que Apache HBase, el nodo router y el nodo config pueden ser puntos únicos de fallo. Sin embargo, al igual que Apache HBase, se pueden desplegar múltiples nodos router y múltiples nodos config. Dicho esto, habrá problemas si los nodos enrutadores y/o los nodos de configuración no están disponibles.

Servidor Couchbase

 

doc_db_cbs

Hay un tipo de nodo. Eso es todo. Los clientes se comunican directamente con los nodos. No hay puntos únicos de fallo. No hay dependencias de nodos independientes o clusters separados.

Resumen

Una gran arquitectura equilibra flexibilidad y sencillez. Hay valor en una arquitectura modular. Hay valor en una arquitectura simple. Sin embargo, la modularidad no tiene por qué reflejarse en la topología de un sistema distribuido. Couchbase Server es un sistema modular distribuido. Una única instancia está compuesta por múltiples componentes y servicios. Sin embargo, la modularidad no se impone a los administradores. Es un aspecto del propio sistema distribuido, no de su despliegue.

Únete a la conversación en reddit (enlace).
Únete a la conversación en Hacker News (enlace).

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Shane Johnson, Director de Marketing de Producto, Couchbase

Shane K Johnson fue Director de Marketing de Producto en Couchbase. Antes de Couchbase, ocupó varios puestos en desarrollo y evangelización con formación en Java y sistemas distribuidos. Ha sido consultor de organizaciones de los sectores financiero, minorista, de las telecomunicaciones y de los medios de comunicación para diseñar e implantar arquitecturas basadas en sistemas distribuidos para datos y análisis.

2 Comentarios

  1. ¡Bien escrito! Muy eficaz.

  2. [...] Couchbase Server sólo ofrece el máximo rendimiento, es fácil de escalar (enlace) y es consistente [...]

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.