Escalar es uno de los puntos fuertes de Couchbase Server. Es fácil de escalar, y la arquitectura de Couchbase hace un uso eficiente de tus recursos de escalado. De hecho, cuando Viber, cliente de Couchbase, cambió de Mongo a Couchbase, redujeron la el número de servidores que necesitaban.
Esta entrada del blog es la tercera de una serie (suelta) de entradas sobre Azure.
El primer post te mostraba el beneficios de informática sin servidor en Azure con Couchbase.
El segundo post mostraba un ejemplo concreto de creación de un chatbot utilizando funciones Azure y Couchbase Server.
El post anterior sólo utilizaba un clúster con un único nodo a efectos de demostración. Ahora supongamos que has estado en producción durante un tiempo, y tu chatbot está empezando a ser muy popular. Necesitas escalar tu cluster de Couchbase. Si desplegaste Couchbase desde Mercado AzureEsto es pan comido. En pocas palabras: basta con mover un control deslizante. Pero este post le llevará a través de todos los detalles:
-
Creación de un nuevo clúster con 3 nodos.
-
Escalado del clúster hasta 5 nodos.
-
Reducción del clúster a 4 nodos.
Crear un clúster de Couchbase en Azure
Si dispone de una cuenta Azure, inicie sesión en el portal. Si aún no la tiene,
Empezar a utilizar Azure es fácil y gratuito.
Una vez que hayas iniciado sesión, haz clic en "+ Nuevo" y busca Couchbase Server en el mercado. Estoy usando BYOL (traiga su propia licencia) para la demostración, pero también hay una opción de "Precios por hora" que viene con soporte plata.
Una vez que seleccione Couchbase, se le llevará a través de un asistente de instalación de Azure. Haz clic en el botón "Crear" para empezar.
El paso 1 es el "Básico". Rellena el nombre de usuario y la contraseña que quieres para Couchbase, el nombre de un grupo de recursos y una ubicación (yo elegí North Central US porque me queda cerca geográficamente). Asegúrate de anotar esta información, ya que la necesitarás más adelante.
El siguiente paso es Couchbase Config. Hay algunos tipos de máquinas virtuales recomendadas. Yo utilicé DS1_V2 para mantener esta entrada de blog barata, pero probablemente quieras al menos 4 núcleos y 4gb de RAM para tu entorno de producción. También decidí no instalar ningún nodo Sync Gateway, pero si planeas usar Couchbase Mobile, también los necesitarás. Estoy pidiendo un total de 3 nodos para Couchbase Server.
Después de esto, el paso 3 es sólo un resumen de la información que ha introducido.
El último paso es "comprar". Esto le muestra las condiciones. Un botón "Crear" es todo lo que queda.
Ahora, Azure se pondrá a trabajar aprovisionando 3 VMs, instalando Couchbase Server en ellas, y luego creando un cluster. Esto llevará un poco de tiempo. Recibirás una notificación de Azure cuando haya terminado.
Tendrás tiempo suficiente para tomarte una buena bebida.
Uso de su clúster Couchbase
Cuando Azure termine con el despliegue, vaya a ver "Grupos de recursos" en el portal de Azure. Busca tu grupo de recursos. El mío se llamaba mi_grupo_de_recursos_cb.
Haz clic en el grupo de recursos. Dentro de ese grupo de recursos, verás 4 cosas:
-
grupos de seguridad de la red (se trata básicamente de reglas de cortafuegos)
-
vnet (la red en la que están todos los recursos del grupo)
-
servidor (instancias de Couchbase Server)
-
syncgateway (Instancias de Couchbase Sync Gateway. No pedí ninguna, así que es una agrupación vacía).
Primero, haz clic en "servidor" y, a continuación, en "instancias". Deberías ver 3 servidores (o los que hayas aprovisionado).
A continuación, haz clic en "despliegues". Debería ver uno para Couchbase en la lista. Haga clic en él para obtener más información sobre el despliegue.
La siguiente pantalla te indicará la URL que necesitas para acceder a la interfaz de usuario de Couchbase Server (y a la interfaz de usuario de Sync Gateway, si la has instalado). Debería ser algo parecido a: http://vm0.server-foobarbazqux.northcentralus.cloudapp.azure.com:8091
.
Pegue esa URL en un navegador. Accederá a la pantalla de inicio de sesión de Couchbase Server. Utilice las credenciales que especificó anteriormente para iniciar sesión.
Después de iniciar sesión, haz clic en "servidores". Verás los tres servidores listados aquí. Las URL coincidirán con las implementaciones que veas en el portal de Azure.
¡Pongamos algunos datos en esta base de datos! Ve a Ajustes → Cubos de muestra y carga el cubo 'muestra-viaje'.
Esta muestra de datos contiene 31591 documentos. Cuando termine de cargarse, vuelve a "servidores". Puedes ver cómo los "ítems" (y réplicas de ítems) están distribuidos uniformemente entre los tres servidores. Cada nodo en Couchbase puede hacer tanto lecturas como escrituras, así que esta no es una situación de maestro/esclavo o de conjuntos de réplicas de sólo lectura.
Ampliación
Ahora, supongamos que tu aplicación está despegando y necesitas escalarla para proporcionar capacidad adicional, almacenamiento y rendimiento. Dado que estamos utilizando Couchbase desplegado desde el marketplace de Azure, esto es aún más fácil de lo habitual. Ve al portal de Azure, vuelve al grupo de recursos y haz clic en "servidor" de nuevo. Ahora haz clic en "escalado".
A continuación, verás un control deslizante que puedes ajustar para añadir más instancias. Vamos a subirlo a 5 servidores en total. Asegúrate de hacer clic en "Guardar".
Ahora, vuelve a 'instancias' de nuevo. Nota: es posible que tenga que actualizar la página. Azure no parece querer actualizar la página obsoleta servida al navegador por su cuenta. Ahora verá servidor_3 y servidor_4 en estado "creando".
Tendrás que esperar a que Azure los despliegue. Mientras tanto, puedes volver a la interfaz de usuario de Couchbase Server y esperar a que aparezcan allí también.
Al añadir nuevos servidores, el cluster debe estar reequilibrado. La implementación de Azure debería intentar hacerlo automáticamente (pero en caso de que falle, también puede activar el reequilibrio manualmente).
Durante este periodo de reequilibrio, el clúster sigue siendo accesible desde sus aplicaciones. No habrá tiempo de inactividad. Una vez finalizado el reequilibrio, podrá ver que el # de elementos en cada servidor ha cambiado. Se ha redistribuido (junto con las réplicas).
Eso es todo. Es más o menos sólo mover un control deslizante y esperar unos minutos.
Reducción de escala
En algún momento, es posible que desee reducir su clúster. Tal vez necesite 5 servidores durante una determinada parte del año, pero solo necesite 3 durante otras partes, y le gustaría ahorrar algo de dinero en su factura de Azure.
Una vez más, se trata simplemente de ajustar el control deslizante. Sin embargo, es una buena idea reducir la escala de un servidor a la vez para evitar cualquier riesgo de pérdida de datos.
Cuando reduzcas, Azure elegirá una VM para desmantelar. Couchbase Server puede responder de dos maneras:
-
El comportamiento por defecto es simplemente indicar que un nodo está caído. Esto podría activar una alerta por correo electrónico. Aparecerá como "caído" en la interfaz de usuario.
-
Auto-failover puede ser activado. Esto significa que una vez que un nodo está caído, el cluster Couchbase automáticamente lo considerará 'fallido', promoverá las réplicas en otros nodos, y reequilibrará el cluster.
Voy a dejar el auto-failover desactivado y mostrar el comportamiento por defecto.
En primer lugar, el servidor mostrará un estado de "borrado" en el portal de Azure.
Poco después, Couchbase reconocerá que un nodo no responde. Sugerirá la conmutación por error para "activar las réplicas disponibles".
Voy a seguir adelante y hacer precisamente eso.
Una vez eliminado del clúster, tendrás que activar un "reequilibrio".
Resumen y recursos
Escalar un clúster de Couchbase en Azure es simplemente cuestión de usar el deslizador.
Si está reduciendo la escala, considere la posibilidad de hacerlo de nodo en nodo.
Para más información, consulte estos recursos:
-
A vídeo de Ben Lackey que cubre el proceso de escalado de Couchbase en Azure.
-
Asegúrese de leer sobre Auto-failover en la documentación.
-
Consulte también la documentación sobre reequilibrio.
Si tiene alguna pregunta, póngase en contacto conmigo en Twitter @mgroves o deja un comentario.