Cargas de trabajo críticas
Esta sección se esfuerza por abordar los desafíos del diseño de cargas de trabajo críticas en Azure. La guía se basa en las lecciones aprendidas de revisar numerosas aplicaciones de cliente y soluciones de primera entidad. En esta sección se proporcionan instrucciones accionables y autoritativas que aplican procedimientos recomendados bien diseñados como base técnica para crear y operar una solución altamente confiable en Azure a escala.
¿Qué es una carga de trabajo crítica?
El término carga de trabajo hace referencia a una colección de recursos de aplicación que admiten un objetivo empresarial común o la ejecución de un proceso de negocio común, con varios servicios, como API y almacenes de datos, trabajando juntos para ofrecer funcionalidades específicas de un extremo a otro.
El término crítico hace referencia a una escala de importancia crítica que cubre un costo financiero significativo (crítico para la empresa) o un costo humano (crítico para la seguridad) asociado a una falta de disponibilidad o un rendimiento inferior.
Por lo tanto, una carga de trabajo crítica describe una colección de recursos de aplicación, que deben ser altamente confiables en la plataforma. La carga de trabajo siempre debe estar disponible, resistente a errores y operativa.
Vídeo: Cargas de trabajo críticas en Azure
¿Cuáles son los desafíos comunes?
Microsoft Azure facilita la implementación y administración de soluciones en la nube. Sin embargo, la creación de cargas de trabajo críticas que son altamente confiables en la plataforma sigue siendo un desafío por estas razones principales:
El diseño de una aplicación confiable a escala es complejo. Requiere un amplio conocimiento de la plataforma para seleccionar las tecnologías adecuadas y configurarlas de forma óptima para ofrecer funcionalidad de un extremo a otro.
El error es inevitable en cualquier sistema distribuido complejo y, por tanto, la solución debe diseñarse para controlar los errores con impacto correlacionado o en cascada. Se trata de un cambio de mentalidad para muchos desarrolladores y arquitectos que entran en la nube desde un entorno local; la ingeniería de confiabilidad ya no es un tema de infraestructura, pero debe ser una preocupación de primera clase dentro del proceso de desarrollo de aplicaciones.
La operacionalización de cargas de trabajo críticas requiere un alto grado de rigor y madurez de ingeniería a lo largo del ciclo de vida de ingeniería de un extremo a otro, así como la capacidad de aprender de los errores.
¿Solo es crítico para la confiabilidad?
Aunque el enfoque principal de las cargas de trabajo críticas es confiabilidad, otros pilares del marco bien diseñado son igualmente importantes al compilar y operar una carga de trabajo crítica en Azure.
Seguridad: la forma en que una carga de trabajo mitiga las amenazas de seguridad, como los ataques de denegación de servicio distribuido (DDoS), tendrá un impacto significativo en la confiabilidad general.
Excelencia operativa: cómo una carga de trabajo puede responder eficazmente a los problemas operativos tendrá un impacto directo en la disponibilidad de las aplicaciones.
Eficiencia del rendimiento: la disponibilidad es más que el tiempo de actividad simple, pero en lugar de un nivel coherente de servicio de aplicaciones y rendimiento en relación con un estado correcto conocido.
Lograr una alta confiabilidad impone importantes inconvenientes de costos, lo que puede no ser justificable para cada escenario de carga de trabajo. Por lo tanto, se recomienda que las decisiones de diseño se basen en los requisitos empresariales.
¿Cuáles son las áreas de diseño clave?
La guía crítica dentro de esta serie se compone de consideraciones arquitectónicas y recomendaciones orientadas a estas áreas de diseño clave.
Las áreas de diseño están relacionadas entre sí y las decisiones tomadas dentro de una área pueden afectar o influir en las decisiones en todo el diseño. Se recomienda que los lectores se familiaricen con estas áreas de diseño, revisando las consideraciones y recomendaciones proporcionadas para comprender mejor las consecuencias de las decisiones abarcadas. Por ejemplo, para definir una arquitectura de destino, es fundamental determinar la mejor manera de supervisar el estado de la aplicación en los componentes clave. En este caso, el lector debe revisar el área de diseño de modelado de estado mediante las recomendaciones descritas para ayudar a tomar decisiones.
Área de diseño | Resumen |
---|---|
Diseño de aplicación | El uso de una arquitectura de unidad de escalado en el contexto de la creación de una aplicación muy confiable. También explora los patrones de diseño de aplicaciones en la nube que permiten el escalado y el control de errores. |
Plataforma de aplicaciones | Factores de decisión y recomendaciones relacionados con la selección, el diseño y la configuración de una plataforma de hospedaje de aplicaciones adecuada, dependencias de aplicaciones, marcos y bibliotecas. |
Plataforma de datos | Las opciones en las tecnologías del almacén de datos, informadas mediante la evaluación del volumen, la velocidad, la variedad, la veracidad. |
Redes y conectividad | Conceptos de topología de red en un nivel de aplicación, teniendo en cuenta la conectividad necesaria y la administración de tráfico redundante. Recomendaciones críticas destinadas a informar al diseño de una topología de red global segura y escalable. |
Modelado de estado y observabilidad | Procesos para definir un modelo de mantenimiento sólido, asignando estados de mantenimiento cuantificados de la aplicación a través de construcciones operativas y observabilidad para lograr la madurez operativa. |
Implementación y pruebas | Erradique el tiempo de inactividad y mantenga el estado de las aplicaciones para las operaciones de implementación, proporcionando consideraciones y recomendaciones clave destinadas a informar al diseño de canalizaciones de CI/CD óptimas para una aplicación crítica. |
Seguridad | Proteja la aplicación contra amenazas destinadas a poner en peligro directa o indirectamente su confiabilidad. |
Procedimientos operativos | La adopción de DevOps y los métodos de implementación relacionados se usa para impulsar procedimientos operativos eficaces y coherentes. |
Ejemplos ilustrativos
Las instrucciones proporcionadas en esta serie se basan en un enfoque orientado a la solución para ilustrar las principales consideraciones y recomendaciones de diseño. Hay varias implementaciones de referencia disponibles que se pueden usar como base para el desarrollo de soluciones adicionales.
Arquitectura de línea de base de una aplicación orientada a Internet: proporciona una base para crear una aplicación nativa de nube, altamente escalable y orientada a Internet en Microsoft Azure. Se accede a la carga de trabajo a través de un punto de conexión público y no requiere conectividad de red privada a un patrimonio técnico de la organización circundante.
Consulte la implementación: Mission-Critical Online
Arquitectura de línea de base de una aplicación orientada a Internet con controles de red: amplía la arquitectura de línea base con controles de red estrictos para evitar el acceso público no autorizado desde Internet a cualquiera de los recursos de carga de trabajo.
Arquitectura de línea base en una zona de aterrizaje de Azure: proporciona una base para crear una aplicación nativa de nube conectada a la empresa en Microsoft Azure mediante la infraestructura de red y los puntos de conexión privados existentes. La carga de trabajo requiere conectividad privada con otros recursos de la organización y depende de redes virtuales proporcionadas previamente para la conectividad con otros recursos de la organización. Este caso de uso está pensado para escenarios que requieren integración con un patrimonio técnico organizativo más amplio para cargas de trabajo orientadas al público o internas.
Consulte la implementación: Conexión crítica
Paso siguiente
Empiece por revisar la metodología de diseño para escenarios de aplicaciones críticas.