La alta disponibilidad es una técnica que garantiza la actividad del sistema y minimiza o evita la pérdida de datos en caso de fallo del equipo. ArcGIS Server, al igual que otros componentes de ArcGIS Enterprise, se puede implementar en una configuración de alta disponibilidad con un equilibrador de carga de red de terceros.
Esta configuración es una variación de la implementación en un solo equipo de alta disponibilidad (activo-pasivo), donde el equilibrador de carga está configurado para repartir la carga en todos los sitios en todo momento. En esta configuración, no hay sitios en espera.
En esta arquitectura, se configuran dos o más sitios de ArcGIS Server tras un equilibrador de carga de terceros para aumentar la capacidad de su implementación de ArcGIS Server. Puede utilizar esta técnica para ajustar algunas de las limitaciones de alta disponibilidad descritas en la implementación en un solo equipo y en los escenarios de implementación en un solo equipo con un servidor proxy inverso o ampliar agregando más equipos.
Aunque se puede ampliar y conseguir una alta disponibilidad utilizando sitios con varios equipos, hay desventajas y limitaciones en las implementaciones activo-activo que se abordan en este tema.
La arquitectura activo-activo trabaja para clonar un sitio de un solo equipo y colocar instancias independientes del mismo tras un equilibrador de carga. Técnicamente, esta configuración no se puede describir como un sitio de varios equipos, ya que cada uno de los sitios es independiente del otro, está compuesto por un solo equipo de ArcGIS Server y tiene su almacén de configuración local y sus directorios de servidor propios.
Las implementaciones de un sitio de ArcGIS Server en varios equipos simplifica enormemente la administración del servidor. Sin embargo, la arquitectura activo-activo puede utilizarse en escenarios donde el número y los ajustes de servicios están bien definidos y se mantienen estáticos. En estos casos, tal configuración puede ofrecer importantes ventajas de rendimiento en sitios de varios equipos, especialmente en los servicios de mapas almacenados en caché.
Esta arquitectura puede facilitar la sustitución de equipos defectuosos u obsoletos, aplicar actualizaciones o agregar y eliminar equipos del sitio según sea necesario sin interrumpir servicios ni anular solicitudes. Sin embargo, con una arquitectura activo-activo, es su responsabilidad mantener todos los sitios sincronizados. Esto agrega una carga administrativa que puede hacer que este patrón de implementación no sea práctico en los casos en los que hay muchos equipos o servicios o cachés que cambian frecuentemente. Usted o su personal de TI deben tener un buen conocimiento de equilibradores de carga de terceros.
Equipos de ArcGIS Server, directorios de servidor y almacén de configuración
Cada equipo de ArcGIS Server debe tener su propio almacén de configuraciones local y directorios de caché, de trabajos y de sistema. De este modo se garantiza el máximo rendimiento y se minimizan las interdependencias. Por el contrario, el directorio (o directorios) de salida debe compartirse entre los sitios. Para obtener más detalles, consulte otras consideraciones a continuación.
Datos
Si se utilizan fuentes de datos basadas en archivos en los servicios SIG, se recomienda que se almacenen localmente en cada equipo de ArcGIS Server en vez de almacenarse en ubicaciones compartidas de red para potenciar al máximo el rendimiento de los servicios. En algunos casos, como cuando se manejan grandes cantidades de imágenes, compartir los archivos en la red puede ser a única opción práctica. Si se utilizan archivos en recursos compartidos a través de la red, es muy importante elegir un dispositivo de almacenamiento configurado para alta disponibilidad.
Si se utilizan bases de datos, se puede dedicar una base de datos a cada uno de los sitios: una base de datos en el sitio primario y otra independiente en el sitio en espera. Para mantener las bases de datos en sincronía, se puede aprovechar la replicación de la base de datos o, en caso necesario, las técnicas de replicación de geodatabase. También se puede sacar partido de otras técnicas de alta disponibilidad del proveedor de la base de datos.
Servidor proxy inverso
En esta configuración, se requiere un equilibrador de carga de terceros. Como mínimo, este componente distribuye la carga entre todos los sitios. Los equilibradores de carga tienen distintas configuraciones para distribuir la carga, como la operación por turnos y las conexiones mínimas. La selección de la distribución de carga adecuada depende de los servicios web que esté ejecutando en los sitios de ArcGIS Server y de sus patrones de uso.
Los equilibradores de carga también aprovechan normalmente distintas opciones para manejar los fallos. Por ejemplo, puede aplicar reglas en el equilibrador de carga para evitar que este reenvíe solicitudes a un equipo que no está disponible debido a un fallo de hardware o de red o a un determinado servicio de ArcGIS Server que no está disponible. Si se utilizan sitios de un solo equipo como en este patrón, se garantiza que las solicitudes enviadas a un equipo concreto las administrará ese equipo.
El uso de ArcGIS Web Adaptor es opcional y normalmente solo es necesario en este escenario si desea aprovechar la autenticación de nivel web. Puede optar por configurarlo en el mismo equipo que su ArcGIS Server, o en un equipo dedicado. En cualquier caso, si utiliza ArcGIS Web Adaptor, debe configurar un ArcGIS Web Adaptor independiente para ambos sitios en la configuración activo-activo.
Normalmente, el propio equilibrador de carga también cumple la función de servidor proxy inverso. En algunos escenarios, puede que ya tenga configurado un servidor proxy inverso aparte del equilibrador de carga.
Si su equilibrador de carga de red admite una función de verificación de estado, puede utilizar el extremo de verificación de estado de ArcGIS Server para determinar si el sitio está disponible para recibir solicitudes. Esto resulta útil para determinar rápidamente si hay un fallo de software o hardware en el sitio. Para obtener más información, consulte Verificación de estado en la API REST de ArcGIS.
Consideraciones para configuraciones activo-activo
Debe tener en cuenta lo siguiente a la hora de planificar un sitio de ArcGIS Server con una configuración activo-activo de alta disponibilidad.
Sincronizar servicios
A diferencia de un verdadero sitio en varios equipos, esta configuración requiere que todos los sitios detrás del equilibrador de carga alojen exactamente el mismo contenido y sigan el mismo modelo de seguridad. Es responsabilidad suya asegurarse de que todos los sitios parecen exactamente el mismo para el equilibrador de carga.
Aquí hay algunas técnicas que pueden ayudarle a mantener los servicios de ArcGIS Server sincronizados entre los sitios principales y los de conmutación por error:
- Script: ArcGIS Server incluye una API REST para crear scripts de tareas administrativas como publicar servicios y cambiar su configuración de seguridad. Puede crear sus propios scripts para aplicar cambios de modo coherente a todos los equipos de ArcGIS Server incluidos en su implementación. La secuencia de comando es especialmente útil cuando es necesario hacer pequeños ajustes, como cambiar la seguridad de un servicio o sobrescribirlo.
Nota:
Cada sitio puede crearse mediante scripts. Después de crear todos los sitios, cree una copia de seguridad de uno de los sitios y restaure la copia de seguridad en todos los demás sitios. De esta forma se garantiza que todos los equipos utilicen la misma clave de cifrado.
- Virtualización: cree una plantilla de máquina virtual y úsela para lanzar nuevos sitios. Como ya se ha mencionado, de esta forma se garantiza que todas las máquinas utilicen la misma clave de cifrado. Además, cada plantilla tendrá una copia de los datos necesarios para los servicios SIG (a menos que se utilice una base de datos) y todos los servicios publicados y configurados. Si es necesario hacer cambios, por ejemplo, agregar o actualizar servicios existentes, cree una plantilla para lanzar otras máquinas virtuales que sustituirían al grupo de equipos de ArcGIS Server existente que utiliza el equilibrador de carga. También puede utilizar plantillas de máquina virtual para recuperar equipos de ArcGIS Server obsoletos.
El procedimiento recomendado para aplicar cambios a los sitios en este patrón de implementación es el siguiente:
- Realice cambios administrativos primero en un sitio que esté en modo de espera. Por ejemplo, agregue un nuevo servicio y cambie la seguridad de otro en un sitio que no esté gestionando solicitudes activamente. Con ello se garantiza que las aplicaciones que utilizan el sitio principal no se vean afectadas.
- Configure manualmente el equilibrador de carga para pasar todas las solicitudes al sitio en espera en el que se han realizado los cambios.
- Aplique los mismos cambios al sitio inactivo.
- Revierta el equilibrador de carga de modo que las solicitudes vuelvan a dirigirse al sitio principal original y deje el sitio en espera en modo de espera.
Los cambios del sitio que se han descrito en el procedimiento anterior pueden aplicarse manualmente mediante ArcGIS Server Manager, scripts o imágenes virtuales.
Compartir el directorio de salida
Algunas operaciones de servicios de ArcGIS Server utilizan como referencia los recursos de uno o varios directorios de salida. Por ejemplo, los servicios de mapas pueden escribir imágenes en un directorio de salida y hacer referencia a ellas a través de una URL en la respuesta a la solicitud. Para que los clientes obtengan correctamente la imagen, todos los sitios de su configuración activo-activo deben hacer referencia al mismo directorio de salida. Esto se consigue colocando los directorios de salida en un recurso de red y compartiéndolos con los sitios.
A continuación, se proporciona una lista de las operaciones de servicio que utilizan directorios de salida:
- Crear una réplica del servicio de entidades (servicio de entidades)
- Descargar una imagen ráster (servicio de imágenes)
- Exportar una imagen de mapa (servicio de mapas)
- Exportar un diagrama esquemático (recursos esquemáticos en un servicio de mapas)
- Exportar un mapa web (servicio de geoprocesamiento)
Ejecución asíncrona de los servicios de geoprocesamiento
Los servicios de geoprocesamiento de ArcGIS Server admiten dos modos de ejecución: síncrona y asíncrona. La ejecución síncrona sigue un patrón de solicitud-respuesta sin estado y es totalmente compatible con una configuración activo-activo. La ejecución asíncrona sigue un patrón de solicitud-respuesta con estado y es la opción predeterminada. Para utilizar una ejecución asíncrona en una configuración activo-activo, debe tener en cuenta lo siguiente:
- Al enviar un trabajo de geoprocesamiento asíncrono, se le devuelve un Id. de trabajo que utiliza como referencia el trabajo enviado y sus resultados. Solo el sitio de ArcGIS Server que recibe el original puede reconocer este Id. Por este motivo, la configuración activo-activo le exige definir la afinidad del equilibrador de carga (también conocido como sesiones permanentes) si quiere utilizar la ejecución asíncrona. Esto ayuda a proporcionar una alta disponibilidad para las salidas de servicio de mapas y el geoprocesamiento asíncrono. Consulte la información del proveedor del equilibrador de carga para conocer las consecuencias de habilitar sesiones permanentes.
- Si su servicio de geoprocesamiento no utiliza servicios de mapas para generar salidas y no se han definido salidas del tipo Archivo, puede seleccionar la ejecución síncrona para sus servicios de geoprocesamiento. No se necesitan sesiones permanentes en el equilibrador de carga.
Utilizar la seguridad basada en token
Si se utiliza la autenticación basada en token, también denominada autenticación de nivel de servidor, es importante que todos los sitios de esta configuración utilicen exactamente la misma clave de token compartida. De lo contrario, los token generados para un equipo no son válidos cuando se utilizan en otro equipo. Para duplicar las claves de token compartidas en varios sitios, puede editar la configuración de token en Manager.
Enfoques para la actualización
Para garantizar el menor tiempo de inactividad posible, puede actualizar sus sitios de ArcGIS Server en secuencia. Al actualizar un sitio, puede configurar el equilibrador de carga para que no reenvíe solicitudes al sitio no disponible y distribuir la carga entre otros sitios independientes de su arquitectura activo-activo.
El otro enfoque, que actualiza todos los sitios de ArcGIS Server en paralelo, resulta práctico si su organización puede tolerar alguna cantidad de tiempo de inactividad y pérdida de datos. Dado que todos los sitios de una arquitectura activo-activo son independientes entre sí, puede actualizarlos simultáneamente sin generar problemas de interdependencia.