Compartir vía


Principios de diseño para aplicaciones de Azure

Los artículos de principio de diseño de esta sección proporcionan una base para ayudarle a crear aplicaciones en la nube que puedan resistir errores, escalar con demanda y evolucionar con las necesidades empresariales. Tanto si desea diseñar un nuevo sistema, modernizar aplicaciones heredadas o planear cargas de trabajo de producción, estos principios interconectados le ayudarán a tomar decisiones fundamentadas sobre confiabilidad, rendimiento y mantenimiento. Juntos, forman un enfoque completo para el diseño de aplicaciones nativas de la nube que equilibra la excelencia técnica con el valor empresarial.

Para que la aplicación sea más escalable, resistente y fácil de administrar, siga estos principios de diseño.

Principios básicos

  • Diseño para la recuperación automática. Diseñe la aplicación para detectar errores, responder correctamente y recuperarse automáticamente. En los sistemas distribuidos, los errores son inevitables. Para aislar los errores y mantener la disponibilidad del sistema, implemente lógica de reintento, supervisión de puntos de salud, disyuntores y patrones de mamparo.

  • Haz que todas las cosas sean redundantes. Incorpora redundancia en tu aplicación para evitar puntos únicos de fallos. Use equilibradores de carga, varias instancias, réplicas de base de datos y implementaciones de varias zonas o varias regiones. Diseñe para el nivel de redundancia que coincida con los requisitos empresariales y la tolerancia a riesgos.

  • Minimizar la coordinación. Minimizar la coordinación entre los servicios de aplicaciones para lograr escalabilidad. Use componentes desacoplados que se comunican de forma asincrónica, adopte la coherencia final cuando corresponda y aplique eventos de dominio para sincronizar el estado sin acoplamiento estricto.

  • Diseño para escalar horizontalmente. Diseñe la aplicación para el escalado horizontal agregando o quitando instancias a medida que cambia la demanda. Evite la permanencia de la sesión, identifique cuellos de botella, descomponga las cargas de trabajo mediante el escalado de requisitos y use el escalado automático basado en métricas dinámicas para controlar las cargas variables de forma eficaz.

  • Crear particiones alrededor de los límites. Use la creación de particiones para solucionar los límites de base de datos, red y proceso. Particione los datos horizontal, vertical o funcionalmente y diseñe claves de partición para evitar zonas activas. Considere la posibilidad de crear particiones en varios niveles, incluidas las bases de datos, las colas y los recursos de proceso.

Principios operativos

  • Diseño para operaciones. Diseñe la aplicación para proporcionar a los equipos de operaciones las herramientas que necesitan para la implementación, la supervisión y la respuesta a incidentes. Implemente tareas completas de registro, seguimiento distribuido, métricas estandarizadas y automatización de las tareas de administración para permitir una supervisión operativa eficaz.

  • Utilice servicios administrados. Use plataforma como servicio (PaaS) en lugar de infraestructura como servicio (IaaS). Los servicios administrados reducen la sobrecarga operativa, proporcionan funcionalidades de escalado integradas y permiten a los equipos centrarse en la lógica de la aplicación en lugar de en el mantenimiento de la infraestructura.

  • Use un servicio de identidad. Use una plataforma de identidad administrada como Microsoft Entra ID en lugar de compilar o operar su propio sistema de identidad. Las soluciones administradas proporcionan almacenamiento de credenciales, características de autenticación, funcionalidades de federación y cumplimiento de los estándares del sector.

Principios estratégicos

  • Diseño para la evolución. Diseño para la innovación continua porque todas las aplicaciones exitosas cambian con el tiempo. Aplique el acoplamiento flexible, encapsula el conocimiento del dominio, use la mensajería asincrónica y exponga API bien definidas que incluyan el control de versiones adecuado para habilitar la evolución del servicio independiente.

  • Crear para las necesidades de negocio. Tome decisiones de diseño basadas en los requisitos empresariales. Defina objetivos claros, como los objetivos de tiempo de recuperación (RTOs), documentar los acuerdos de nivel de servicio (SLAs) y los objetivos de nivel de servicio (SLOs), modelar las aplicaciones en torno a los dominios de negocio, y planear el crecimiento al equilibrar los requisitos funcionales y no funcionales.

  • Realice el análisis del modo de falla de los servicios. Identifique sistemáticamente posibles puntos de error en el sistema y planee estrategias de recuperación. Para construir la fiabilidad desde el principio, lleve a cabo el análisis de modos de fallo (AMF) durante las fases de arquitectura y diseño. Evaluar cada modo de error por riesgo e impacto y, a continuación, determinar los mecanismos de respuesta y recuperación adecuados.

Aplicación de estos principios

Estos principios funcionan conjuntamente para crear aplicaciones resistentes y escalables:

  • Comience con los requisitos empresariales para comprender lo que está creando y por qué.

  • Diseñe para errores mediante la implementación de funcionalidades de recuperación automática y redundancia.

  • Planee el escalado a través del escalado horizontal, la creación de particiones y la coordinación mínima.

  • Use los servicios de Azure para reducir la complejidad operativa y centrarse en la lógica de negocios.

  • Apoyar las operaciones mediante la supervisión, el registro y la automatización adecuados.

  • Desarrolle para el cambio para asegurar que su aplicación pueda evolucionar con las necesidades empresariales.