Procedimientos recomendados para aplicaciones en la nube
Estos procedimientos recomendados pueden ayudarle a crear aplicaciones confiables, escalables y seguras en la nube. Ofrecen guías y sugerencias para diseñar e implementar sistemas, mecanismos y enfoques eficaces y sólidos. Muchos también incluyen ejemplos de código que puede usar con los servicios de Azure. Los procedimientos se aplican a cualquier sistema distribuido, tanto si el host es Azure como si es otra plataforma en la nube.
Catálogo de procedimientos
En esta tabla se enumeran distintos procedimientos recomendados. La columna Pilares o patrones relacionados contiene los vínculos siguientes:
- Desafíos del desarrollo en la nube que abordan el procedimiento y los patrones de diseño relacionados.
- Pilares del Marco de buena arquitectura de Microsoft Azure en el que se centra el procedimiento.
Práctica | Resumen | Pilares o patrones relacionados |
---|---|---|
Diseño de API | Diseñe las 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 y evite errores transitorios al admitir respuestas parciales y proporcionar maneras de filtrar y paginar los datos. | Diseño e implementación,, eficiencia del rendimiento, excelencia operativa |
Implementación de API | Implemente API web para que sean eficaces, tengan capacidad de respuesta, sean escalables y estén disponibles. Realice acciones idempotentes, admita la negociación del contenido y siga la especificación HTTP. Controle las excepciones y admita la detección de recursos. Proporcione maneras de controlar solicitudes de gran tamaño y minimizar el tráfico de red. | Diseño e implementación, excelencia operativa |
Escalabilidad automática | Diseñe aplicaciones para asignar y desasignar recursos dinámicamente 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. | Eficiencia del rendimiento, optimización de costos |
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 de Azure para hospedar estas tareas. Desencadene tareas con eventos o programaciones, y devuelva resultados a las tareas de llamada. | Diseño e implementación, excelencia operativa |
Almacenamiento en caché | Mejore el rendimiento mediante la copia de datos en un almacenamiento rápido cercano a las aplicaciones. Almacene en caché los datos que se leen con frecuencia, pero que rara vez se modifican. Administre la expiración y simultaneidad de los datos. Vea cómo rellenar las memorias caché y usar el servicio Azure Cache for Redis. | Administración de datos, eficiencia del rendimiento |
Red de entrega de contenido | Use redes de entrega de contenido (CDN) para entregar contenido web a los usuarios de forma eficaz y reducir la carga en las aplicaciones web. Supere los desafíos de implementación, control de versiones, seguridad y resistencia. | Administración de datos, eficiencia del rendimiento |
Creación de particiones de datos | Cree particiones de los datos para mejorar la escalabilidad, la disponibilidad y el rendimiento, y para reducir los costos de almacenamiento de datos y contención. Use la creación de particiones de datos horizontales, verticales y funcionales de manera eficaz. | Administración de datos, eficiencia del rendimiento, optimización de costos |
Estrategias de creación de particiones de datos (por servicio) | Particione los datos en servicios de Azure SQL Database y Azure Storage, como Azure Table Storage y Azure Blob Storage. Particione los datos para distribuir las cargas, reducir la latencia y admitir el escalado horizontal. | Administración de datos, eficiencia del rendimiento, optimización de costos |
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. | Diseño e implementación, confiabilidad |
Consideraciones acerca de la codificación de mensajes | Use mensajes asincrónicos para intercambiar información entre componentes del sistema. Elija la estructura de la carga útil, el formato de codificación y la biblioteca de serialización que mejor funcionen con sus datos. | Mensajería, seguridad |
Supervisión y diagnóstico | Haga 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 ayuden en diversas situaciones. Entre los ejemplos se incluyen la detección y corrección de incidencias, la detección de posibles problemas, el cumplimiento de las garantías de rendimiento y el cumplimiento de los requisitos de auditoría. | Excelencia operativa |
Retry guidance for specific services (Guía de reintentos para servicios específicos) | Use, adapte y extienda los mecanismos de reintento que ofrecen los SDK de cliente y los servicios de Azure. Desarrolle un enfoque sistemático y sólido para administrar problemas temporales con las conexiones, las operaciones y los recursos. | Diseño e implementación, confiabilidad |
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. | Diseño e implementación, confiabilidad |