Alta disponibilidad

Todos los sistemas informáticos tienen un propósito. Para cumplir ese propósito, tiene que estar disponible para su uso. Algunos sistemas informáticos son fundamentales para una empresa y, por lo tanto, deben tener una alta disponibilidad sin periodos de tiempo, o con periodos mínimos, de indisponibilidad parcial o total. Otros sistemas son menos vitales y una cierta cantidad de tiempo de inactividad programado o no programado es aceptable, por ejemplo, si los usuarios pueden recurrir a flujos de trabajo alternativos o simplemente esperar hasta que el sistema vuelva a estar disponible. Muchos sistemas se sitúan en algún punto intermedio entre estos dos extremos.

Definir y comprender la disponibilidad

La alta disponibilidad (HA) es un planteamiento de diseño que habilita un sistema para alcanzar un nivel preestablecido de rendimiento operativo durante un periodo de tiempo específico. Los sistemas de alta disponibilidad proporcionan a los clientes un sistema y un entorno fiables para satisfacer o superar sus requisitos empresariales de prestación de servicios y rendir al nivel de calidad esperado.

Nota:

La alta disponibilidad, aunque está relacionada con la recuperación ante desastres (DR), es un concepto independiente. En general, la HA se enfoca en evitar tiempos de inactividad no planificados para la prestación de servicios, mientras que la DR se centra en conservar los datos y recursos necesarios para restaurar un sistema a un estado previo aceptable tras un desastre. Cuando se implementan los planes de DR, es habitual que la prestación de servicios se vea interrumpida hasta que se haya restaurado el sistema. Consulte Copias de seguridad y recuperación ante desastres para obtener más información.

Otro término de uso común en este espacio es la redundancia geográfica, que generalmente se refiere al objetivo de diseño de tener una aplicación o sistema que pueda sobrevivir a una interrupción completa del centro de datos teniendo sistemas adicionales o un sistema de copia de seguridad disponible en otra ubicación geográfica. Este planteamiento puede ayudar a protegerse contra catástrofes naturales, cortes de electricidad u otras interrupciones de la disponibilidad del centro de datos.

Muchos arquitectos utilizan un conjunto común de términos para referirse y describir en detalle un planteamiento de alta disponibilidad a nivel de sistema o de componente. Los términos más utilizados en esta área son:

  • Activo-activo, que es un patrón de tolerancia a fallos que depende de que dos o más sistemas reciban y procesen activamente las solicitudes. En un sistema activo-activo, cada nodo que recibe una solicitud es igual a los demás, y las solicitudes suelen estar equilibradas en carga para que se envíen en una proporción aproximadamente igual a cada nodo backend.
  • Activo-pasivo, también denominado primario/en espera, es un patrón de tolerancia a fallos en el que las peticiones de los usuarios fluyen en su totalidad a un sistema, con un segundo sistema a la espera de un escenario en el que se requiera, ya sea por un fallo del sistema primario (en el que el sistema activo deja de procesar las peticiones) o por una conmutación programada o planificada, cualquiera de las cuales da lugar a que el tráfico de los usuarios se envíe al sistema pasivo, que pasa a considerarse el sistema activo.
  • Los sistemas de conmutación por error están diseñados para mantenerse totalmente sincronizados con un sistema activo, pero preparados para recibir tráfico; solo lo recibirán si el sistema primario ha fallado por algún motivo. Un sistema de conmutación por error es similar a una configuración activo-pasivo, pero puede tener otro flujo de trabajo asociado con la «conmutación por error» a ese sistema.

Objetivos de disponibilidad

Una métrica con la que se puede medir la disponibilidad es el tiempo de actividad, que generalmente se mide como el porcentaje de tiempo que un sistema ha estado «disponible» durante un periodo determinado. La definición de disponible es subjetiva y debe establecerse al principio del proceso de diseño del sistema para poder llegar a un acuerdo compartido sobre este objetivo. Un nivel deseado de disponibilidad se define con frecuencia como un tiempo de actividad objetivo, expresado a menudo en términos de nueves. Por ejemplo:

  • 99 % (dos nueves): equivale a 3,65 días de tiempo de inactividad permitido al año
  • 99,9 % (tres nueves): equivale a 8,77 horas de tiempo de inactividad permitido al año

Los objetivos de disponibilidad pueden formalizarse en forma de un acuerdo de nivel de servicio (SLA) entre los usuarios de un sistema y la organización que opera dicho sistema. A menudo, los acuerdos de nivel de servicio incluyen otras métricas relacionadas con el rendimiento más allá de los objetivos de disponibilidad pura, como los tiempos de respuesta previstos, y pueden definir penalizaciones por cumplir esos objetivos si existe una relación entre el proveedor y el cliente. Los SLA internos también son igualmente importantes, aunque generalmente no incluyen los requisitos de penalización e información de un SLA de cara al cliente.

Niveles de criticidad

Otro planteamiento que adoptan las organizaciones en relación con la disponibilidad es establecer niveles de criticidad para los sistemas que mantienen, que van desde los no esenciales hasta los fundacionales, en función del impacto que pueda tener una interrupción en una organización. Las consideraciones pueden incluir la experiencia del usuario y el impacto financiero, reputacional y normativo; además, cada nivel de criticidad puede tener una definición de SLA objetivo diferente. Algunas organizaciones pueden referirse a un determinado sistema como de «nivel 1» o «fundamental para el negocio» mientras que otros sistemas son de «nivel 2» o menos fundamentales para el negocio y, por tanto, tienen menos restricciones o configuraciones diferentes.

El diseño y la construcción de un sistema para alcanzar un nivel de disponibilidad predefinido requiere un planteamiento holístico que tenga en cuenta muchos otros aspectos o áreas temáticas, entre ellos:

  • Seleccionar cuidadosamente componentes de software y hardware de mayor calidad que hayan sido diseñados específicamente para reducir el tiempo medio entre fallos (MTBF), en lugar de utilizar componentes básicos.
  • Eliminar cualquier punto o puntos únicos de fallo en el sistema mediante la redundancia de todos los componentes. Un punto único de fallo es un elemento de software o hardware que, cuando falla, provoca que todo el sistema deje de estar disponible. Con un único punto de fallo, un sistema puede tolerar el fallo de cualquiera de sus componentes sin que afecte notablemente a la disponibilidad.
  • Establecer planes para recuperar un sistema en caso de que efectivamente deje de estar disponible y probar dichos planes. Aquí se podría incluir la definición de objetivos para la cantidad aceptable de tiempo que se necesita para que el sistema vuelva a estar disponible y cuánta pérdida de datos es admisible.
  • Aplicar políticas y procedimientos con énfasis en la administración de cambios para minimizar las posibilidades de interrupciones accidentales o involuntarias, por ejemplo, debidas a errores humanos.

Crear un sistema que se adapte a las mayores exigencias de tiempo de actividad suele requerir una importante inversión inicial y continua de tiempo y recursos si se compara con una línea base que solo cumple un nivel normativo de disponibilidad. Sin embargo, la alta disponibilidad no es una proposición de todo o nada, y con frecuencia es útil considerar si hay subsistemas para los que los objetivos de disponibilidad pueden relajarse sin afectar significativamente al valor empresarial de un sistema informático. 

Consideraciones sobre el diseño

El proceso de diseño de un sistema de alta disponibilidad no comienza con un lienzo en blanco. En la mayoría de los casos, la infraestructura informática, las políticas, los conocimientos y las preferencias existentes en una organización determinarán el marco general al que debe adaptarse un sistema SIG corporativo. Esto incluye las expectativas de tiempo de actividad o disponibilidad de los sistemas de apoyo y qué componentes de TI están disponibles para ayudar a lograr un alto nivel de disponibilidad. Considere las interdependencias entre las decisiones, donde una decisión de diseño con frecuencia engendra otra. Muchos de estos detalles pueden considerarse restricciones de diseño, que ayudan a guiar un proceso de diseño hacia un destino mutuamente aceptable, en el que el sistema cumpla los requisitos generales al tiempo que se ajusta a las normas ya establecidas por la organización y equilibra el coste, la manejabilidad y otros factores.

Con frecuencia, las limitaciones de diseño entran dentro de estas categorías:

  • Necesidades empresariales: los requisitos empresariales de una organización determinan qué cantidad de tiempo de inactividad es aceptable, desde cero tiempo de inactividad hasta horas o días de inactividad antes de restaurar el sistema. Se denomina objetivo de tiempo de recuperación (RTO). Los requisitos empresariales también son indicativos de cuánta pérdida de datos, expresada en tiempo, puede tolerarse en caso de fallo. Es lo que se denomina objetivo de punto de recuperación (RPO) y suele oscilar entre cero segundos y una semana de pérdida de datos.
  • Patrón de implementación: elegir un patrón de implementación determinado predeterminará con frecuencia el grado en que las consideraciones de disponibilidad deben tenerse en cuenta en las decisiones de diseño detalladas. En otras palabras, cuando se construye un sistema en torno a ofertas SaaS o PaaS, muchas de esas decisiones ya han sido tomadas por la organización que aloja la oferta. Por otro lado, la implementación del software del servidor SIG en un centro de datos que su organización posea y administre proporciona el mayor nivel de flexibilidad con respecto a la satisfacción de sus requisitos exactos de disponibilidad, pero también conlleva la mayor cantidad de responsabilidades.
  • Infraestructura: en la mayoría de los casos, los profesionales de TI que diseñan y construyen sistemas SIG para su implementación en los centros de datos que gestiona su organización no necesitan preocuparse por la infraestructura física básica, como las instalaciones de alojamiento, la energía, la refrigeración y la red, porque ya están establecidas y suelen ofrecer altos niveles de disponibilidad de esos productos básicos.
  • Mantenimiento: para algunos sistemas, la capacidad de parchear o actualizar los sistemas sin tiempo de inactividad es fundamental para garantizar que los usuarios no se vean afectados o que otros sistemas puedan funcionar de forma continua. En estos casos, la aplicación de parches de forma continua o el uso de un entorno azul-verde o primario/de reserva puede ser coherente con esos objetivos, pero es importante tener en cuenta el impacto potencial de las acciones de mantenimiento deseadas y la cadencia de mantenimiento en cualquier diseño de sistema.

Del mismo modo, las organizaciones de TI pueden limitar aún más el rango de opciones para la infraestructura, por ejemplo, marcas y modelos específicos para el hardware físico, capas de virtualización, sistemas de almacenamiento, equilibradores de carga, proxies inversos, etc.

Aprovechar la infraestructura como servicio (IaaS) comercial basada en la nube, ya sean equipos virtuales o clústeres de Kubernetes, también restringe sus opciones.

  • Software: los niveles a los que los componentes de software que conforman un sistema admiten mayores grados de disponibilidad varían, desde ningún soporte designado hasta configuraciones de alta disponibilidad totalmente admitidas y documentadas. También difieren en grado: no todos los niveles de disponibilidad pueden alcanzarse con un determinado elemento de software, lo que limita el SLA, RPO o RTO que se puede obtener.
  • Personas y procesos: con frecuencia es preferible aprovechar los procesos y procedimientos establecidos para crear y administrar sistemas de alta disponibilidad que su organización ya haya establecido, para beneficiarse de la experiencia existente.

Patrones de alta disponibilidad

Con respecto a ArcGIS Enterprise, la alta disponibilidad se refiere a las medidas que aumentan la disponibilidad de una sola implementación de ArcGIS Enterprise. Las implementaciones replicadas, normalmente distribuidas geográficamente en otro centro de datos o en otra región de la nube, proporcionan una funcionalidad de recuperación ante desastres. Más información sobre Alta disponibilidad en ArcGIS Enterprise.

ArcGIS Enterprise proporciona mayores niveles de disponibilidad mediante la combinación de varios equipos en distintas configuraciones. Los componentes de ArcGIS Enterprise utilizan planteamientos distintos para lograr una alta disponibilidad:

Portal for ArcGIS

Un sitio de portal de alta disponibilidad que consta de dos servidores que se unen para crear el sitio de HA. Cada uno de ellos es totalmente redundante, pero el sistema mantiene un equipo como nodo primario y el otro equipo es el nodo en espera. Si el equipo primario falla, el equipo en espera detectará el fallo y se promoverá a sí mismo para convertirse en el primario.

A nivel del servidor web, el sistema es activo-activo, ya que cada nodo del portal puede atender las solicitudes entrantes y los índices de búsqueda se mantienen sincronizados en ambos sistemas. Sin embargo, solo un nodo gestiona los cambios de estado, en los que las ediciones, las invitaciones a miembros y las configuraciones se guardan en la base de datos del portal, por lo que el sistema global se considera activo-pasivo.

Un portal de alta disponibilidad también requiere un equilibrador de carga para distribuir las peticiones entre los dos nodos, normalmente por turnos. Los nodos primario y en espera comparten el estado mediante la comunicación entre equipos a través de puertos y la sincronización de bases de datos, pero también dependen del almacenamiento compartido de archivos para el directorio de contenido del portal, que puede ser un archivo compartido NFS, un archivo compartido UNC o un almacenamiento de objetos nativo en la nube.

Más información sobre la Configuración de una implementación de Portal for ArcGIS de alta disponibilidad.

Servidor SIG

Un sitio de servidor SIG de alta disponibilidad consta de dos o más equipos totalmente redundantes, que se unen en un «sitio» de ArcGIS Server en el que las cargas de trabajo se equilibran entre todos los nodos, lo que constituye una configuración activo-activo. Un servidor SIG de alta disponibilidad también requiere un equilibrador de carga para dirigir las solicitudes a los equipos miembros, normalmente con un planteamiento por turnos, aunque el tráfico web también puede dirigirse de forma primario-en espera.

Los equipos de un sitio comparten estado principalmente a través de una ubicación de almacenamiento compartida para los directorios del servidor y el almacén de configuraciones, normalmente un archivo compartido de tipo NFS o basado en UNC. Para los sistemas en la nube, también existen opciones nativas de la nube para el almacén de configuración, como el almacenamiento DynamoDB y S3 en AWS o el almacenamiento Azure Files en Microsoft Azure.

Nota:

Cabe señalar que algunos roles especializados del servidor SIG, como el GeoEvent Server, no pueden configurarse para ejecutarse en un sitio con varios equipos. Como resultado, se aplican consideraciones especiales para lograr niveles más altos de disponibilidad para esos roles de servidor SIG.

Obtenga más información sobre la configuración de un sitio con varios equipos para lograr una implementación de alta disponibilidad de ArcGIS Server. También hay disponibles recursos para implementaciones de alta disponibilidad de un solo equipo.

Web Adaptor

El adaptador web puede implementarse de forma redundante en dos o más equipos, siendo cada instancia totalmente redundante en una configuración activo-activo. Esta configuración requiere un equilibrador de carga frontal al que los clientes envían las solicitudes, que distribuye las solicitudes entre los dos hosts del adaptador web. Hay más recursos disponibles en la documentación.

ArcGIS Data Store

Data store relacional Un data store relacional de alta disponibilidad consta de exactamente dos instancias totalmente redundantes en una configuración de clúster activo-activo. Si el equipo del data store principal falla, el equipo en espera detectará el error y pasará a ser el principal, lo que permitirá a los clientes seguir utilizando los servicios de entidades alojados sin interrupción.

Graph data store: un graph store de alto rendimiento consta de exactamente tres instancias totalmente redundantes en una configuración de clúster activo-activo.

Almacén de objetos: se admite una alta disponibilidad para el almacén de objetos en modo clúster, siendo necesarios al menos tres equipos para esta arquitectura. En el modo clúster, los datos se replican en los tres equipos para que el data store siga estando disponible en caso de avería de un solo equipo.

Big data store espaciotemporal: este tipo de data store también admite el modo clúster. Los clústeres deben contener un número impar de equipos, necesario para la búsqueda de consenso entre los miembros, así como un mínimo de tres equipos. Todas estas configuraciones son configuraciones de alta disponibilidad activo-activo.

El tema de la documentación Configurar data stores administrados de alta disponibilidad proporciona orientación, pasos y recomendaciones adicionales.

Bases de datos relacionales

La disponibilidad de recursos de bases de datos es un campo especializado de la arquitectura con muchas opciones específicas de cada proveedor para cada oferta individual de base de datos, incluidos los patrones activo-activo y activo-pasivo. En general, ArcGIS puede conectarse a estas configuraciones cuando el proceso de registro de datos por el que se accede a los servicios o se publican utiliza un alias DNS o una IP flexible, a la que siempre se accede desde ArcGIS pero que podría apuntar a otro backend de base de datos si se produce una interrupción del sistema principal. En este escenario, los componentes de ArcGIS no son conscientes del cambio en la base de datos backend y siguen funcionando como es debido suponiendo que se dispone de las mismas credenciales, esquema y filas.

Recomendaciones de diseño

Para tomar decisiones educadas y eficaces relacionadas con la alta disponibilidad, tenga en cuenta estas recomendaciones de diseño:

  • Copias de seguridad: crear copias de seguridad de su implementación de ArcGIS es la forma más sencilla de evitar la pérdida de datos y reducir el tiempo de inactividad. De esta forma, podrá recuperar elementos que existían en el momento en que se creó la copia de seguridad y reducir significativamente el tiempo de la operación.
  • Administración de sistemas de solo lectura y de lectura/escritura: si su aplicación o sistema es de solo lectura, en el que los usuarios ven principalmente datos que se administran en otro lugar, conseguir una configuración de alta disponibilidad es más sencillo, ya que se puede utilizar una configuración activo-activo. Si los usuarios crean las ediciones en un sistema de lectura/escritura, suele haber una mezcla de niveles activo-activo y activo-pasivo de la arquitectura, que permiten el mantenimiento de una base de datos de registro primaria y activa, que también mantiene el sistema pasivo, en espera o de conmutación por error para estar preparado para recibir tráfico en caso de interrupción.
  • Duplicación y redundancia: implementar varias instancias de componentes específicos del sistema, incluyendo potencialmente la redundancia geográfica, para reducir los puntos únicos de fallo. Tenga en cuenta las habilidades necesarias para mantener el sistema. Tenga en cuenta que una persona puede ser fácilmente un único punto de fallo.
  • Planes de pruebas y monitorización del sistema: evalúe la capacidad del sistema para cumplir el nivel de servicio requerido mediante pruebas de tensión, rendimiento y funciones de conmutación por error. Todos los planes de pruebas y las actividades asociadas deben formar parte de la gobernanza general de su sistema. Monitorización continua del sistema para corregir los problemas antes de que provoquen una interrupción generalizada o irrecuperable.
  • Otras prácticas recomendadas de alta disponibilidad son la automatización, la colaboración, el equilibrio de carga y la separación de cargas de trabajo.
Top