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
Wow. Aquí pasan muchas cosas. Hay cuatro tipos de nodos y múltiples componentes por nodo.
Topología #2
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
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
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
Wow. Aquí pasan muchas cosas. Hay cuatro tipos de nodos y dos capas de agrupaciones lógicas.
Topología #2
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
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
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).
¡Bien escrito! Muy eficaz.
[...] Couchbase Server sólo ofrece el máximo rendimiento, es fácil de escalar (enlace) y es consistente [...]