Despliegue de Cluster de CockroachDB de Alta Disponibilidad
CockroachDB es una base de datos SQL distribuida construida en un almacén de valores clave transaccional y consistente.
Arquitectura
Esta arquitectura de referencia muestra un despliegue típico de tres nodos de CockroachDB en instancias de Oracle Cloud Infrastructure Compute. Un equilibrador de carga público se utiliza para distribuir las cargas de trabajo en estos tres nodos.
El siguiente diagrama ilustra esta arquitectura de referencia.

Descripción de la ilustración cockroachdb-oci.png
- Regiones
Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones, y grandes distancias pueden separarlas (entre países o incluso continentes).
- Dominios de disponibilidad
Los dominios de disponibilidad son centros de datos independientes e independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como energía o refrigeración, o la red de dominio de disponibilidad interna. Por lo tanto, es poco probable que un fallo en un dominio de disponibilidad afecte a los otros dominios de disponibilidad de la región.
- Dominios de Fallos
Un dominio de fallo es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad tiene tres dominios de fallos con energía y hardware independientes. Cuando distribuye recursos en varios dominios de fallos, las aplicaciones pueden tolerar fallos físicos del servidor, mantenimiento del sistema y fallos de energía dentro de un dominio de fallos.
- Red virtual en la nube (VCN) y subredes
VCN es una red personalizable definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes tradicionales de centros de datos, las VCN le proporcionan un control completo sobre su entorno de red. VCN puede tener varios bloques CIDR no superpuestos que puede cambiar después de crear VCN. Puede segmentar VCN en subredes, que se pueden asignar a una región o a un dominio de disponibilidad. Cada subred consta de un rango contiguo de direcciones que no se superponen con las otras subredes de VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.
Esta arquitectura utiliza una subred pública para alojar el equilibrador de carga público y las tres instancias informáticas que ejecutan CockroachDB.
- Equilibrador de carga
El servicio Oracle Cloud Infrastructure Load Balancing proporciona distribución automática del tráfico de un punto de entrada a varios servidores a los que se puede acceder desde VCN. Esta arquitectura tiene dos listeners, uno para el puerto TCP 8080 y otro para el puerto TCP 26257. El equilibrador de carga también tiene dos juegos de backend que corresponden a estos dos listeners.
- Listas de seguridad
Para cada subred, puede crear reglas de seguridad que especifiquen el origen, destino y tipo de tráfico que se debe permitir dentro y fuera de la subred.
Esta arquitectura utiliza reglas de entrada para los puertos TCP 8080 y 26257 para que los clientes puedan acceder al tráfico de listener HTTP y CockroachDB.
Recomendaciones
Sus requisitos pueden diferir de la arquitectura descrita aquí. Utilice las siguientes recomendaciones como punto de partida.
- Unidades informáticas
Esta arquitectura utiliza la imagen del sistema operativo Oracle Linux 7.9 con la forma VM.Standard. E3. Flex Compute. Para su aplicación, puede elegir una forma diferente si necesita más memoria, núcleos o ancho de banda de red.
- VCN
-
Al crear un VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque en función del número de recursos que tiene previsto asociar a subredes en VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.
-
Seleccione bloques CIDR que no se superpongan con ninguna otra red (en Oracle Cloud Infrastructure, el centro de datos local u otro proveedor en la nube) en la que desee configurar conexiones privadas.
-
Después de crear un VCN, puede cambiar, agregar y eliminar sus bloques CIDR.
-
Cuando diseñe las subredes, tenga en cuenta sus requisitos de flujo de tráfico y seguridad. Conecte todos los recursos dentro de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.
- Utilice una subred regional.
-
- Ancho de banda del equilibrador de carga
Al crear el equilibrador de carga, puede seleccionar una forma predefinida que proporcione un ancho de banda fijo o especificar una forma personalizada (flexible) en la que defina un rango de ancho de banda y permita al servicio escalar el ancho de banda automáticamente en función de los patrones de tráfico. Con cualquier enfoque, puede cambiar la forma en cualquier momento después de crear el equilibrador de carga.
Consideraciones
- Escalabilidad
El menor número de nodos necesarios para alcanzar el quórum es de tres, por lo que esta arquitectura despliega tres nodos. Es posible que necesite más nodos para cumplir con los requisitos de rendimiento o alta disponibilidad de la aplicación.
Puede escalar horizontalmente el cluster de base de datos agregando más nodos de cálculo e incluyéndolos en los juegos de backend del equilibrador de carga.
Puede escalar verticalmente el cluster de base de datos cambiando la forma de VM de cada nodo de cálculo. El uso de una forma de recuento de núcleo superior también aumenta la memoria asignada a la instancia de Compute y al ancho de banda de red.
- Disponibilidad
Los dominios de fallo proporcionan la mejor resiliencia dentro de un único dominio de disponibilidad. En esta arquitectura, en lugar de desplegar la aplicación en un dominio de disponibilidad, puede desplegar instancias informáticas que realicen las mismas tareas en regiones que tienen varios dominios de disponibilidad. Este diseño elimina un único punto de fallo introduciendo redundancia. Una vez desplegada la arquitectura, utilice la dirección IP pública del equilibrador de carga para conectarse a CockroachDB mediante el cliente SQL incorporado.
- Costo
Seleccione la forma de máquina virtual (VM) basada en los núcleos, la memoria y el ancho de banda de red que necesita para la base de datos. Puede empezar con una forma de núcleo único y, si necesita más rendimiento, memoria o ancho de banda de red para el nodo de base de datos, puede cambiar la forma de VM más adelante.
Desplegar
El código Terraform para esta arquitectura de referencia está disponible como pila de ejemplo en Oracle Cloud Infrastructure Resource Manager. También puede descargar el código de GitHub y personalizarlo para adaptarlo a sus requisitos específicos.
- Desplegar mediante la pila de ejemplo en Oracle Cloud Infrastructure Resource Manager:
- Haga clic en
Si aún no ha iniciado sesión, introduzca las credenciales de arrendamiento y usuario.
- Seleccione la región en la que desea desplegar la pila.
- Siga las instrucciones y peticiones de datos en pantalla para crear la pila.
- Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
- Espere a que se complete el trabajo y revise el plan.
Para realizar cualquier cambio, vuelva a la página Detalles de Pila, haga clic en Editar Pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.
- Si no son necesarios otros cambios, vuelva a la página Detalles de Pila, haga clic en Acciones de Terraform y seleccione Aplicar.
- Haga clic en
- Despliegue mediante el código Terraform en GitHub:
- Vaya a GitHub.
- Clone o descargue el repositorio en su computadora local.
- Siga las instrucciones del documento
README
.