Compartir a través de


Modelos de diseño en la nube

Los arquitectos diseñan cargas de trabajo mediante la integración de servicios de plataforma, funcionalidad y código para cumplir los requisitos funcionales y no funcionales. Para diseñar cargas de trabajo eficaces, debe comprender estos requisitos y seleccionar topologías y metodologías que aborden los desafíos de las restricciones de la carga de trabajo. Los patrones de diseño en la nube proporcionan soluciones a muchos desafíos comunes.

El diseño del sistema se basa en gran medida en patrones de diseño establecidos. Puede diseñar sistemas distribuidos, código e infraestructura mediante una combinación de estos patrones. Estos patrones son cruciales para crear aplicaciones confiables, altamente seguras, optimizadas para costos, eficientes de forma operativa y de alto rendimiento en la nube.

Los siguientes patrones de diseño en la nube son independientes de la tecnología, lo que hace que sean adecuados para cualquier sistema distribuido. Puede aplicar estos patrones en Azure, otras plataformas en la nube, configuraciones locales y entornos híbridos.

Cómo mejoran los patrones de diseño en la nube el proceso de diseño

Las cargas de trabajo en la nube son vulnerables a las fallas de la informática distribuida, que son habituales pero incorrectas sobre cómo funcionan los sistemas distribuidos. Entre los ejemplos de estas fallacies se incluyen:

  • La red es confiable.
  • La latencia es cero.
  • El ancho de banda es infinito.
  • La red es segura.
  • La topología no cambia.
  • Hay un administrador.
  • El control de versiones de componentes es sencillo.
  • La implementación de observabilidad podría retrasarse.

Estos conceptos erróneos pueden dar lugar a diseños de cargas de trabajo defectuosos. Los patrones de diseño no eliminan estos conceptos erróneos, pero ayudan a concienciar, proporcionar estrategias de compensación y proporcionar mitigaciones. Cada patrón de diseño en la nube tiene inconvenientes. Céntrese en por qué debe elegir un patrón específico en lugar de cómo implementarlo.

Considere cómo utilizar estos patrones de diseño estándar de la industria como los bloques fundamentales para un diseño de carga de trabajo bien estructurado. Cada patrón de diseño de Azure Well-Architected Framework representa uno o varios de sus pilares. Algunos patrones pueden introducir inconvenientes que afectan a los objetivos de otros pilares.

Catálogo de patrones

Cada patrón de este catálogo describe el problema que aborda, las consideraciones para aplicar el patrón y un ejemplo basado en los servicios y herramientas de Microsoft Azure. Algunos patrones incluyen ejemplos de código o fragmentos de código que muestran cómo implementar el patrón en Azure.

Patrón Resumen pilares de Well-Architected Framework
Embajador Crea servicios auxiliares que envían solicitudes de red en nombre de una aplicación o servicio de consumidor. -Fiabilidad

-Seguridad
Capa Anticorrupción Implementa una capa de fachada o de adaptador entre una aplicación moderna y un sistema heredado. - Excelencia operativa
Solicitud y respuesta asincrónicas Desacoplar el procesamiento de back-end de un servidor de front-end. Este patrón es útil cuando el procesamiento de back-end debe ser asincrónico, pero el front-end requiere una respuesta clara y oportuna. - Eficiencia del rendimiento
Backends para Frontends Cree servicios back-end independientes para interfaces o aplicaciones de front-end específicas. -Fiabilidad

-Seguridad

- Eficiencia del rendimiento
Mamparo Aísle los elementos de una aplicación en grupos para que, si se produce un error, los demás seguirán funcionando. -Fiabilidad

-Seguridad

- Eficiencia del rendimiento
Cache-Aside Cargar datos a petición en una memoria caché desde un almacén de datos. -Fiabilidad

- Eficiencia del rendimiento
Coreografía Permitir que los servicios individuales decidan cuándo y cómo se procesa una operación empresarial, en lugar de depender de un orquestador central. - Excelencia operativa

- Eficiencia del rendimiento
Disyuntor Controle los errores que pueden tardar una cantidad variable de tiempo en corregirse cuando una aplicación se conecta a un servicio o recurso remotos. -Fiabilidad

- Eficiencia del rendimiento
Comprobación de notificaciones Divida un mensaje grande en una comprobación de notificaciones y una carga para evitar sobrecargar un bus de mensajes. -Fiabilidad

-Seguridad

- Optimización de costos

- Eficiencia del rendimiento
Transacción Compensatoria Deshacer el trabajo realizado por una secuencia de pasos que forman colectivamente una operación coherente. -Fiabilidad
Consumidores Competitivos Habilite varios consumidores simultáneos para procesar los mensajes que reciben en el mismo canal de mensajería. -Fiabilidad

- Optimización de costos

- Eficiencia del rendimiento
Consolidación de recursos de proceso Consolidar varias tareas o operaciones en una sola unidad de cálculo. - Optimización de costos

- Excelencia operativa

- Eficiencia del rendimiento
CQRS Separe las operaciones que leen datos de los que actualizan los datos mediante interfaces distintas. - Eficiencia del rendimiento
Sellos de implementación Implemente varias copias independientes de los componentes de la aplicación, incluidos los almacenes de datos. - Excelencia operativa

- Eficiencia del rendimiento
Origen de eventos Usar un almacén de solo anexar para registrar una serie completa de eventos que describen las acciones realizadas en los datos de un dominio. -Fiabilidad

- Eficiencia del rendimiento
Almacén de configuración externo Mueva la información de configuración fuera de un paquete de implementación de aplicaciones a una ubicación centralizada. - Excelencia operativa
Identidad federada La autenticación se delega a un proveedor de identidad externo. -Fiabilidad

-Seguridad

- Eficiencia del rendimiento
Agregación de puertas de enlace Usa una puerta de enlace para agregar varias solicitudes individuales en una sola solicitud. -Fiabilidad

-Seguridad

- Excelencia operativa

- Eficiencia del rendimiento
Transferencia de carga de puerta de enlace Descarga una funcionalidad de servicio compartida o especializada en un proxy de puerta de enlace. -Fiabilidad

-Seguridad

- Optimización de costos

- Excelencia operativa

- Eficiencia del rendimiento
Enrutamiento de puerta de enlace Enrutar solicitudes a varios servicios mediante un único punto de conexión. -Fiabilidad

- Excelencia operativa

- Eficiencia del rendimiento
Nodo geográfico Implemente servicios back-end en nodos distribuidos geográficamente. Cada nodo puede controlar las solicitudes de cliente desde cualquier región. -Fiabilidad

- Eficiencia del rendimiento
Monitoreo de Puntos de Control de Salud 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. -Fiabilidad

- Excelencia operativa

- Eficiencia del rendimiento
Tabla de índice Cree índices sobre los campos en las bases de datos que las consultas referencian con frecuencia. -Fiabilidad

- Eficiencia del rendimiento
Elección del líder Coordinar acciones en una aplicación distribuida eligiendo una instancia como líder. El líder administra una colección de instancias de tareas de colaboración. -Fiabilidad
Vista materializada Genere vistas rellenadas previamente sobre los datos de uno o varios almacenes de datos cuando los datos tienen un formato deficiente para las operaciones de consulta necesarias. - Eficiencia del rendimiento
Puente de mensajería Cree un intermediario para habilitar la comunicación entre sistemas de mensajería que, de lo contrario, no son compatibles. - Optimización de costos

- Excelencia operativa
Canalizaciones y filtros Desglosa una tarea que realiza un procesamiento complejo en una serie de elementos independientes que se pueden reutilizar. -Fiabilidad
Cola de prioridad Priorice las solicitudes enviadas a los servicios para que las solicitudes con una prioridad más alta se procesen más rápidamente. -Fiabilidad

- Eficiencia del rendimiento
Publicador o suscriptor Habilite una aplicación para anunciar eventos a varios consumidores de forma asincrónica, sin acoplar remitentes a receptores. -Fiabilidad

-Seguridad

- Optimización de costos

- Excelencia operativa

- Eficiencia del rendimiento
Cuarentena Asegúrese de que los recursos externos cumplen un nivel de calidad acordado por el equipo antes de que la carga de trabajo los consuma. -Seguridad

- Excelencia operativa
Queue-Based nivelación de carga Utilice una cola que cree un búfer entre una tarea y un servicio para suavizar las cargas intermitentes pesadas. -Fiabilidad

- Optimización de costos

- Eficiencia del rendimiento
Limitación de velocidad Evite o minimice los errores de limitación controlando el consumo de recursos. -Fiabilidad
Reintentar Habilite las aplicaciones para controlar los errores temporales previstos mediante el reintento de operaciones con errores. -Fiabilidad
Saga Administre la coherencia de los datos entre microservicios en escenarios de transacciones distribuidas. -Fiabilidad
Supervisor del agente del planificador Coordinar un conjunto de acciones entre los servicios distribuidos y los recursos. -Fiabilidad

- Eficiencia del rendimiento
Convoy secuencial Procese un conjunto de mensajes relacionados en un orden definido sin bloquear otros grupos de mensajes. -Fiabilidad
Particionamiento Divida un almacén de datos en un conjunto de particiones horizontales o fragmentos. -Fiabilidad

- Optimización de costos
Sidecar Implemente componentes en un proceso o contenedor independiente para proporcionar aislamiento y encapsulación. -Seguridad

- Excelencia operativa
Hospedaje de contenido estático Implemente contenido estático en un servicio de almacenamiento basado en la nube para la entrega directa de clientes. - Optimización de costos
Strangler Fig Migre incrementalmente un sistema heredado reemplazando gradualmente partes de funcionalidad por nuevas aplicaciones y servicios. -Fiabilidad

- Optimización de costos

- Excelencia operativa
Limitación Controlar el consumo de recursos de aplicaciones, inquilinos o servicios. -Fiabilidad

-Seguridad

- Optimización de costos

- Eficiencia del rendimiento
Clave de valet Use un token o una clave para proporcionar a los clientes acceso directo y restringido a un recurso o servicio específico. -Seguridad

- Optimización de costos

- Eficiencia del rendimiento

Pasos siguientes

Revise los patrones de diseño desde la perspectiva del pilar de Well-Architected Framework que el patrón tiene como objetivo optimizar.