Patrones de confiabilidad

Disponibilidad

La disponibilidad se mide como un porcentaje del tiempo de actividad y define la proporción de tiempo que un sistema está operativo y en funcionamiento. Los errores del sistema, los problemas de infraestructura, los ataques malintencionados y la carga del sistema pueden afectar a la disponibilidad. Las aplicaciones en la nube suelen proporcionar a los usuarios un Acuerdo de Nivel de Servicio, lo cual conlleva que las aplicaciones se deben diseñar e implementar a fin de maximizar la disponibilidad.

Patrón Resumen
Sellos de implementación Implemente varias copias independientes de los componentes de la aplicación, incluidos los almacenes de datos.
Geodes Implementar servicios back-end en un conjunto de nodos geográficos, cada uno de los cuales puede atender la solicitud de cualquier cliente en cualquier región.
Health Endpoint Monitoring Implementa comprobaciones funcionales en una aplicación a la que pueden acceder herramientas externas a través de los puntos de conexión expuestos en intervalos regulares.
Queue-Based Load Leveling Usa una cola que actúa como búfer entre una tarea y un servicio que invoca para equilibrar cargas pesadas intermitentes.
Limitaciones Controlan el consumo de recursos de una instancia de una aplicación, un inquilino individual o un servicio completo.

Para mitigar los riesgos de disponibilidad de ataques malintencionados de denegación de servicio distribuido (DDoS), implemente el servicio nativo de protección contra DDoS de Azure o una funcionalidad de terceros.

Alta disponibilidad

La infraestructura de Azure se compone de zonas geográficas, regiones y zonas de disponibilidad, que limitan el radio de impacto de un error y, por tanto, limitan el efecto potencial en los datos y las aplicaciones de los clientes. La construcción de Azure Availability Zones se desarrolló para proporcionar una solución de software y de red para protegerse frente a errores en centros de datos y proporcionar una alta disponibilidad (HA) superior a nuestros clientes. Con la arquitectura de alta disponibilidad, existe un equilibrio entre alta resistencia, baja latencia y costo.

Patrón Resumen
Sellos de implementación Implemente varias copias independientes de los componentes de la aplicación, incluidos los almacenes de datos.
Geodes Implementar servicios back-end en un conjunto de nodos geográficos, cada uno de los cuales puede atender la solicitud de cualquier cliente en cualquier región.
Health Endpoint Monitoring Implementa comprobaciones funcionales en una aplicación a la que pueden acceder herramientas externas a través de los puntos de conexión expuestos en intervalos regulares.
Bulkhead Aísle los elementos de una aplicación en grupos para que, si se produce un error en uno, los demás sigan funcionando.
Circuit Breaker Controla los errores que pueden tardar una cantidad variable de tiempo en solucionarse durante la conexión a un recurso o servicio remoto.

Resistencia

La resistencia es la capacidad de un sistema para tratar los errores, tanto involuntarios como malintencionados, y recuperarse de ellos satisfactoriamente.

La naturaleza del hospedaje en la nube, donde las aplicaciones a menudo son multiinquilino, usan servicios de plataforma compartidos, compiten por los recursos y el ancho de banda, y se ejecutan en hardware estándar, implica que hay una mayor probabilidad de que se produzcan errores transitorios o permanentes. La naturaleza conectada de Internet y el aumento de la sofisticación y volumen de los ataques aumentan la probabilidad de que se produzca una interrupción de la seguridad.

La detección de errores y una recuperación de ellos de forma rápida y eficaz son necesarias para mantener la resistencia.

Patrón Resumen
Bulkhead Aísle los elementos de una aplicación en grupos para que, si se produce un error en uno, los demás sigan funcionando.
Circuit Breaker Controla los errores que pueden tardar una cantidad variable de tiempo en solucionarse durante la conexión a un recurso o servicio remoto.
Compensating Transaction Deshace el trabajo realizado mediante una serie de pasos, que conjuntamente definen una operación definitivamente coherente.
Health Endpoint Monitoring Implementa comprobaciones funcionales en una aplicación a la que pueden acceder herramientas externas a través de los puntos de conexión expuestos en intervalos regulares.
Leader Election Coordina las acciones realizadas por una colección de instancias de tareas de colaboración de una aplicación distribuida mediante la elección de una instancia como líder que asume la responsabilidad de administrar las demás instancias.
Queue-Based Load Leveling Usa una cola que actúa como búfer entre una tarea y un servicio que invoca para equilibrar cargas pesadas intermitentes.
Retry Permite que una aplicación trate los errores temporales anticipados cuando intenta conectarse a un servicio o un recurso de red, mediante el reintento de forma transparente de una operación que anteriormente produjo error.
Scheduler Agent Supervisor Coordina un conjunto de acciones en un conjunto distribuido de servicios y otros recursos remotos.