Artículo
· 22 jun, 2021 Lectura de 4 min

Cómo desplegar un clúster sharded con Docker y MergeCPF

En este artículo, ejecutaremos un clúster InterSystems IRIS usando Docker y archivos CPF combinados - una nueva característica que permite configurar servidores con facilidad.

En UNIX® y Linux, puedes modificar el archivo predeterminado iris.cpf utilizando un archivo CPF combinado declarativo. Un archivo combinado es un CPF parcial en el que se establecen los valores deseados que queramos que tenga una instancia al iniciar. La operación de combinación en CPF sólo funciona una vez para cada instancia.

Nuestra arquitectura de clúster es muy sencilla, consistirá en un Nodo 1 (nodo maestro) y dos Nodos de datos (echa un vistazo a todas las funciones disponibles). Desafortunadamente, docker-compose no puede desplegar en diferentes servidores (aunque puede desplegar a hosts remotos), por lo que esto es útil para el desarrollo local de modelos de datos que utilicen sharding, pruebas, etc. Para el despliegue en producción de un cluster de estar características, debes utilizar ICM o IKO.

Docker-compose.yml

Comencemos con la configuración de docker-compose:

 

docker-compose.yml

Como puedes ver, estamos ejecutando una imagen intersystems/iris:2020.3.0.221.0, a la que pasamos un fichero de licencia (que debe ser compatible con sharding), persiste los datos utilizando la funcionalidad Durable %SYS, y le pasa un ISC_CPF_MERGE_FILE que apunta al archivo CPF que queremos combinar (son diferentes archivos los usados para el Nodo 1 y los nodos de datos).

Además, los nodos de datos se inician con un minuto de retraso dándole tiempo al Nodo 1 para que arranque. Esta es una estimación extremadamente conservadora, con un hardware adecuado el tiempo de inicio es del orden de segundos como máximo.

Revisaremos la configuración de clúster que tiene lugar en los archivos combinados CPF.

CPF2merge-data-instance.conf

[Startup]
PasswordHash=FBFE8593AEFA510C27FD184738D6E865A441DE98,u4ocm4qh
ShardRole=node1


[config]
MaxServerConn=64
MaxServers=64
globals=0,0,400,0,0,0
errlog=1000
routines=32
gmheap=256000
locksiz=1179648

¿Qué sucede aquí?

En la parte [Startup] habilitamos sharding al asignar el rol de Nodo1 a nuestro clúster. Y en [config] ampliamos un poco nuestro servidor al permitir más buffers de memoria y conexiones. ¡Eso es todo!

CPF2merge-data-instance.conf

[Startup]

ShardClusterURL=IRIS://iris1:1972/IRISCLUSTER
ShardRole=DATA

Para los nodos de datos, necesitamos proporcionar la URL del Nodo1 y el rol del nodo.

Pruébalo

Revisa el repositorio o ejecuta este código:

git clone https://github.com/intersystems-ru/iris-container-recipes.git
cd iris-container-recipes
cd cluster
// copy iris.key in cluster folder
docker-compose up -d

Después de iniciar el clúster de InterSystems IRIS, puedes acceder a él desde el navegador. El usuario/contraseña es: _SYSTEM/SYS.

Conclusiones

Los archivos CPF combinados son una excelente y sencilla herramienta, que permiten configurar instancias de InterSystems IRIS.

Gracias a @Luca Ravazzolo por proporcionar el código y responder a todas mis preguntas.

Comentarios (1)2
Inicie sesión o regístrese para continuar