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.
La creación de aplicaciones en la nube confiables, escalables y seguras requiere decisiones arquitectónicas deliberadas. Los procedimientos recomendados de esta sección proporcionan instrucciones para problemas comunes que surgen en sistemas distribuidos, como el almacenamiento en caché, la creación de particiones de datos, el diseño de API y el control de errores transitorios. Cada práctica aborda uno o varios pilares de Azure Well-Architected Framework, que define cinco atributos de calidad para el diseño de cargas de trabajo: confiabilidad, seguridad, optimización de costos, excelencia operativa y eficiencia del rendimiento.
Estos procedimientos complementan otras instrucciones fundamentales en el Centro de arquitectura de Azure. Los principios de diseño de las aplicaciones de Azure proporcionan estrategias de alto nivel, como el diseño para la recuperación automática y el escalado horizontal. Los patrones de diseño en la nube ofrecen soluciones reutilizables a problemas de arquitectura recurrentes. Los antipatrones de rendimiento describen defectos comunes que provocan problemas de escalabilidad bajo carga. Estos recursos le ayudan a tomar decisiones arquitectónicas fundamentadas.
Catálogo de procedimientos
Cada práctica de esta tabla se asigna a uno o varios pilares del Well-Architected Framework. Utilice estas asignaciones para identificar qué prácticas son más relevantes para los atributos de calidad que está priorizando en su carga de trabajo.
| Práctica | Resumen | Pilares relacionados |
|---|---|---|
| Diseño de API | Diseñe API web para admitir la independencia de la plataforma mediante protocolos estándar y formatos de datos acordados. Promueva la evolución del servicio para que los clientes puedan detectar la funcionalidad sin necesidad de modificación. Mejore los tiempos de respuesta admitiendo respuestas parciales y proporcionando formas de filtrar y paginar datos. | Excelencia operativa, eficiencia del rendimiento |
| Implementación de API | Implemente las API web para ser eficaces, con capacidad de respuesta, escalables y disponibles. Realice acciones idempotentes, soporte la negociación de contenido y siga la especificación HTTP. Controle las excepciones y facilite la detección de recursos. Proporcione formas de controlar solicitudes de gran tamaño y minimizar el tráfico de red. | Excelencia operativa, eficiencia del rendimiento |
| Escalabilidad automática | Diseñe aplicaciones para asignar y desasignar recursos de forma dinámica para satisfacer los requisitos de rendimiento y minimizar los costos. Aproveche las ventajas de escalabilidad automática de Azure Monitor y el escalado automático integrado que ofrecen muchos componentes de Azure. | Optimización de costos, eficiencia del rendimiento |
| Trabajos en segundo plano | Implemente trabajos por lotes, tareas de procesamiento y flujos de trabajo como trabajos en segundo plano. Use los servicios de la plataforma Azure para hospedar estas tareas. Desencadene tareas con eventos o programaciones, y devuelva resultados a las tareas de llamada. | Confiabilidad, excelencia operativa |
| Almacenamiento en caché | Mejore el rendimiento copiando datos en un almacenamiento rápido que esté cerca de las aplicaciones. Almacenar en caché los datos que se leen a menudo, pero que rara vez se modifican. Administrar la expiración y la simultaneidad de los datos. Consulte cómo rellenar cachés y usar el servicio Azure Managed Redis . | Eficiencia del rendimiento |
| Content Delivery Network | Use redes de entrega de contenido (CDN) para entregar contenido web de forma eficaz a los usuarios y reducir la carga en las aplicaciones web. Superar los desafíos de implementación, control de versiones, seguridad y resistencia. | Confiabilidad, eficiencia del rendimiento |
| Creación de particiones de datos | Cree particiones de datos para mejorar la escalabilidad, la disponibilidad y el rendimiento, y para reducir los costos de contención y almacenamiento de datos. Use particiones horizontales, verticales y funcionales de maneras eficaces. | Optimización de costos, eficiencia del rendimiento |
| Estrategias de partición de datos (por servicio) | Aplique estrategias de creación de particiones entre servicios de Azure, como Azure SQL Database, Azure Cosmos DB, Azure Blob Storage, Azure Managed Redis, Azure Service Bus y otros. Distribuya cargas, reduzca la latencia y admita el escalado horizontal. | Optimización de costos, eficiencia del rendimiento |
| Conservación del nombre de host | Obtenga información sobre por qué es importante conservar el nombre de host HTTP original entre un proxy inverso y su aplicación web back-end y cómo implementar esta recomendación para los servicios de Azure más comunes. | Confiabilidad, seguridad |
| Consideraciones de codificación de mensajes | Elija la estructura de carga, el formato de codificación y la biblioteca de serialización para los mensajes asincrónicos intercambiados entre los componentes del sistema. Considere los inconvenientes, como la interoperabilidad, el tamaño, la legibilidad humana y la evolución del esquema. | Seguridad |
| Supervisión y diagnóstico | Realice un seguimiento del estado, el uso y el rendimiento del sistema con una canalización de supervisión y diagnóstico. Convierta los datos de supervisión en alertas, informes y desencadenadores que ayudan en varias situaciones. Algunos ejemplos incluyen detectar y corregir problemas, detectar posibles problemas, cumplir las garantías de rendimiento y cumplir los requisitos de auditoría. | Excelencia operativa |
| Control de errores transitorios | Controle los errores transitorios causados por redes o recursos no disponibles. Supere los desafíos al desarrollar estrategias de reintento adecuadas. Evite duplicar capas de código de reintento y otros antipatrones. | Confiabilidad |
Principios de diseño
Antes de abordar problemas técnicos específicos, establezca una base arquitectónica sólida. Los principios de diseño de las aplicaciones de Azure proporcionan estrategias de alto nivel que se aplican en todas las cargas de trabajo, como el diseño para la recuperación automática, el escalado horizontal y la minimización de la coordinación. Estos principios dan forma a las decisiones que los procedimientos recomendados enumerados anteriormente le ayudan a implementar.
Modelos de diseño en la nube
Con los principios implementados, los patrones de diseño en la nube proporcionan soluciones reutilizables para problemas recurrentes en sistemas distribuidos. Muchos de los procedimientos recomendados de esta sección se basan en uno o varios de estos patrones. Por ejemplo, la guía de control de errores transitorios se basa en el patrón Retry y el patrón Circuit Breaker, la guía de almacenamiento en caché se relaciona con el patrón de Cache-Aside y la guía de trabajos en segundo plano usa patrones como Consumidores competidores y el patrón de Nivelación de Carga Basada en Cola. Revise el catálogo completo para identificar patrones que aborden los desafíos arquitectónicos de la carga de trabajo.
Antipatrones de rendimiento
Incluso con principios sólidos, buenos patrones y procedimientos recomendados aplicados, los defectos pueden surgir bajo carga de producción. Los antipatrones de rendimiento para las aplicaciones en la nube describen diseños comunes que no escalan o atajos que se acumulan a medida que se agregan funcionalidades. Use estos antipatrones como lista de comprobación durante las revisiones de diseño y las revisiones de código para detectar problemas antes de llegar a producción.
Pasos siguientes
- Revisión de Azure Well-Architected : evalúe la carga de trabajo con los pilares de Well-Architected Framework.
- Principios de diseño para aplicaciones de Azure : comience con los principios fundamentales que informan a estos procedimientos recomendados.
- Patrones de diseño en la nube: explore soluciones reutilizables para los desafíos arquitectónicos comunes.