Compartir a través de


Resistencia nativa de la nube

Sugerencia

Este contenido es un extracto del libro electrónico, Arquitectura de aplicaciones .NET nativas de nube para Azure, disponible en .NET Docs o como un PDF descargable gratuito que se puede leer sin conexión.

Miniatura de la portada del libro electrónico

La resistencia es la capacidad de su sistema de reaccionar ante errores y seguir siendo funcional. No se trata de evitar errores, sino de aceptar errores y construir los servicios nativos de la nube para responder a él. Quiere volver a un estado de funcionamiento completo lo antes posible.

A diferencia de las aplicaciones monolíticas tradicionales, donde todo se ejecuta juntos en un único proceso, los sistemas nativos de la nube adoptan una arquitectura distribuida, como se muestra en la figura 6-1:

Entorno nativo de nube distribuido

Figura 6-1. Entorno nativo de nube distribuido

En la ilustración anterior, cada microservicio y servicio de respaldo basado en la nube se ejecutan en un proceso independiente, en toda la infraestructura del servidor, que se comunica a través de llamadas basadas en red.

En este entorno, un servicio debe ser sensible a muchos desafíos diferentes:

  • Latencia de red inesperada: el tiempo para que una solicitud de servicio viaje al receptor y de vuelta.

  • Errores transitorios : errores de conectividad de red de corta duración.

  • Bloqueo por una operación sincrónica de larga duración.

  • Un proceso anfitrión que ha fallado y está siendo reiniciado o trasladado.

  • Microservicio sobrecargado que no puede responder durante un breve tiempo.

  • Una operación de orquestador en marcha como una actualización gradual o mover un servicio de un nodo a otro.

  • Errores de hardware.

Las plataformas en la nube pueden detectar y mitigar muchos de estos problemas de infraestructura. Puede reiniciar, escalar horizontalmente e incluso redistribuir el servicio a otro nodo. Sin embargo, para aprovechar al máximo esta protección integrada, debe diseñar los servicios para reaccionar a él y prosperar en este entorno dinámico.

En las secciones siguientes, exploraremos las técnicas defensivas que el servicio y los recursos administrados en la nube pueden aprovechar para minimizar el tiempo de inactividad y la interrupción.