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 este artículo 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 la Azure Well-Architected Framework, que define los cinco atributos de calidad siguientes para el diseño de cargas de trabajo:
- Confiabilidad
- Seguridad
- Optimización de costos
- Excelencia operativa
- 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 correspondencias para identificar qué prácticas son más relevantes para los atributos de calidad que priorice 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. Gestione las excepciones y admita 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 la característica autoscale en Azure Monitor y el escalado automático integrado que proporcionan 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. Utilice eventos o programaciones para activar tareas y devolver resultados a las tareas que las invocan. | 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 en Azure servicios, incluidos Azure SQL Database, Azure Cosmos DB, Azure Blob Storage, Azure Managed Redis y Azure Service Bus. 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. Tenga en cuenta las compensaciones, 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 mediante una canalización de supervisión y diagnóstico. Convierta los datos de supervisión en alertas, informes y desencadenadores que le ayudarán a tomar medidas 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 con el desarrollo de 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 en la tabla anterior le ayudan a implementar.
Modelos de diseño en la nube
Después de establecer principios de diseño, los patrones de diseño en la nube proporcionan soluciones reutilizables para problemas recurrentes en sistemas distribuidos . Muchos de los procedimientos recomendados de este artículo 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. Las directrices de almacenamiento en caché corresponden al patrón Cache-Aside. La guía sobre trabajos en segundo plano utiliza patrones como Consumidores en competencia y Nivelación de carga basada en colas. Revise el catálogo completo para identificar patrones que aborden los desafíos arquitectónicos de la carga de trabajo.
Antipatrones de rendimiento
Los defectos pueden surgir bajo cargas de producción incluso aunque apliques principios sólidos, patrones adecuados y mejores prácticas. Los antipatrones de rendimiento de las aplicaciones en la nube describen diseños habituales que no escalan o atajos que provocan que los problemas se acumulen a medida que se agregan funcionalidades. Para detectar problemas antes de llegar a producción, use estos antipatrones como una lista de comprobación durante las revisiones de diseño y las revisiones de código.
Paso siguiente
- Principios de diseño para las aplicaciones de Azure: Empiece por los principios fundamentales que sirven de base para estas prácticas recomendadas.
Contenido relacionado
Revisión de Azure Well-Architected: Evalúe su carga de trabajo con respecto a los pilares del marco de trabajo Well-Architected.
Patrones de diseño en la nube: explore soluciones reutilizables para los desafíos arquitectónicos comunes.