Artículo
· 11 feb, 2022 Lectura de 4 min

Migración de Ensemble a IRIS for Health

Hasta hace no mucho, todos los entornos con los que trabajábamos eran Ensemble 2017.2. Pero recientemente hemos migrado todos los entornos a la versión 2021.1 de IRIS for Health. Ha sido un camino complicado, pero tras analizarlo detenidamente, encontramos la forma de conseguirlo.

Contamos con un servidor de desarrollo y dos servidores en producción en mirroring, en modo Failover. Tenemos más de 40 Namespaces dando servicio, unos con integraciones HL7, otros con servicios Soap, servicios Rest, procesado de archivos... un poco de todo. Necesitábamos estar seguros de que la migración a IRIS no iba a suponer un problema y sobre todo, evitar a toda costa un corte de servicio. Así que lo primero que teníamos que hacer era establecer un plan.

Fase 1: Establecer el procedimiento de migración

Teníamos que decidir cuál era la mejor forma de migrar a IRIS. Lo primero que se nos vino a la cabeza, dado que contamos con un mirror en modo Failover, fue crear una instancia de IRIS for Health, restaurar un backup en esta instancia y añadirlo al mirror.

Para evitar problemas con los entornos de producción hicimos pruebas en máquinas separadas. Creamos todas las instancias, creamos un Namespace con una producción sencilla y comenzamos las pruebas de restauración de backup. Conseguimos restaurar un backup de Ensemble en una instancia IRIS, aunque requería recompilar todo el código. Pero tras varios intentos vimos que no era posible mantener en mirror una instancia de Ensemble y otra de IRIS, no se reconocen mutuamente.

Así que pasamos al plan B: crear instancias nuevas de IRIS for Health e ir migrando una a una todas las producciones que teníamos.

Fase 2: Migración del entorno de desarrollo y testeo de todo el código

Lo primero que hicimos fue migrar el entorno de desarrollo. Para ello:

  1. Creamos una máquina nueva
  2. Instalamos IRIS for Health
  3. Creamos uno a uno todos los Namespaces
  4. Exportamos los proyectos de la versión Ensemble 2017 y los importamos y recompilamos en la versión IRIS for Health 2021
  5. Hicimos pruebas con cada una de las producciones migradas, para asegurarnos de que todo seguía funcionando

Una vez testeado todo en un entorno de pruebas, estábamos listos para pasar a producción.

Fase 3: Preparación de los entornos de producción

Para migrar los entornos de producción, seguimos los mismos pasos que con el entorno de desarrollo:

  1. Creamos dos máquinas nuevas
  2. Instalamos IRIS for Health en cada una de ellas
  3. Los configuramos en mirroring, pero sin asignar la IP virtual
  4. Creamos uno a uno todos los Namespaces en ambos servidores
  5. Exportamos los proyectos de la versión Ensemble 2017 y los importamos y recompilamos en la versión IRIS for Health 2021, pero únicamente en el servidor principal
  6. Hicimos un backup de todas las bases de datos del nodo principal y lo restauramos en el nodo backup

Con esto ya teníamos los servidores listos para funcionar en producción.

Fase 4: Pase a producción

Esta fue la fase más importante. Teníamos dos máquinas nuevas, con IP's nuevas. Queríamos evitar un corte de servicio, pero también evitar tener que coordinar a todos los proveedores con los que nos conectamos para que hiciesen cambio en las comunicaciones. Así que ideamos un plan para poder pasar a producción teniendo el corte de servicio mínimo y con el menor impacto:

Para que se entienda mejor todo, voy a nombrar a los servidores de Ensemble ENS1 como nodo primario del mirror, ENS2 como nodo secundario del mirror, y a los servidores de IRIS IRIS1 como nodo primario del mirror e IRIS2 como nodo secundario del mirror.
  1. Primero apagamos el servidor ENS2, dejando únicamente ENS1, el nodo primario, dando servicio
  2. Le quitamos la IP a ENS2 y se la pusimos al servidor nuevo IRIS2 que está como nodo backup en IRIS
  3. Convertimos el nodo backup IRIS2 en nodo primario
  4. Paramos IRIS en el servidor IRIS1 (el que ahora está como nodo backup)

En este punto teníamos todo listo para realizar el corte. Necesitábamos que se liberase la IP virtual del mirror actual para poder configurarla en el nuevo mirror, y que todo siguiese funcionando. Así que:

  1. Paramos el servidor de Ensemble ENS1. Aquí comenzaba el corte de servicio
  2. Configuramos la IP virtual en el mirror de IRIS en el servidor IRIS2

A partir de aquí, se restauró el servicio. El tiempo final de parada fue de unos 10 minutos. En cuanto terminamos de configurar la instancia de IRIS con la IP virtual, comenzamos a recibir las peticiones en todas las producciones.

Ya solo quedaba dejar correctamente configurado el segundo servidor:

  1. Al servidor IRIS1 le pusimos la IP del servidor ENS1
  2. Arrancamos IRIS en este nuevo servidor
  3. Esperamos a que se sincronizasen IRIS1 e IRIS2. Y ya teníamos los servidores de producción en marcha de nuevo.

 

Como decía al principio, ha sido un camino complicado, pero hemos llegado a buen puerto, y ahora contamos con IRIS en todos nuestros entornos, lo que seguro nos proporcionará grandes beneficios y nuevos retos que superar.

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