Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
- Patrones de diseño para admitir el pilar de confiabilidad
- Patrones de diseño para apoyar el pilar de Seguridad
- Patrones de diseño para apoyar el pilar de Optimización de Costos
- patrones de diseño para apoyar el pilar de excelencia operativa
- Patrones de diseño para admitir el pilar de eficiencia del rendimiento