Compartir a través de


perspectiva de Well-Architected Framework en Azure Service Fabric

Azure Service Fabric es una plataforma de sistemas distribuidos que facilita la empaquetación, implementación y administración de microservicios y contenedores escalables y confiables. Estos recursos se implementan en un conjunto conectado a la red de máquinas virtuales o físicas, que se denomina clúster.

En este artículo, se supone que usted, como arquitecto, ha revisado el árbol de decisión de cómputo y ha elegido Service Fabric como la plataforma de cómputo para su carga de trabajo. La orientación de este artículo proporciona recomendaciones arquitectónicas que se corresponden con los principios de los pilares del Framework Well-Architected.

Importante

Cómo usar esta guía

Cada sección tiene una lista de comprobación de diseño que presenta áreas arquitectónicas de interés junto con estrategias de diseño localizadas en el ámbito tecnológico.

También se incluyen recomendaciones para las funcionalidades tecnológicas que pueden ayudar a materializar esas estrategias. Las recomendaciones no representan una lista exhaustiva de todas las configuraciones disponibles para Azure Service Fabric y sus dependencias. En su lugar, enumeran las recomendaciones clave asignadas a las perspectivas de diseño. Use las recomendaciones para crear la prueba de concepto o para optimizar los entornos existentes.

Arquitectura básica que muestra las recomendaciones clave: arquitectura de microservicios en Azure Service Fabric.

Ámbito de la tecnología

Esta revisión se centra en las decisiones relacionadas entre sí para los siguientes recursos de Azure:

  • Service Fabric

Nota

Esta guía de servicios se basa en las orientaciones que se encuentran en la guía de servicios Máquinas virtuales y conjuntos de escalado. Los nodos de Service Fabric están respaldados por conjuntos de máquinas virtuales con capacidad de escalado, por lo que consulte esa guía de servicio para obtener recomendaciones sobre el funcionamiento del backend de computación para los nodos de Service Fabric.

Al analizar las consideraciones de arquitectura y las recomendaciones de configuración con Azure Service Fabric, es importante distinguir entre el clúster y la carga de trabajo . La configuración del clúster es una responsabilidad compartida entre el administrador del clúster de Service Fabric y su proveedor de recursos, mientras que la configuración de la carga de trabajo es el dominio de un desarrollador. Azure Service Fabric tiene consideraciones y recomendaciones para ambos roles.

En la lista de comprobación de diseño y lista de recomendaciones a continuación, se realizan llamadas para indicar si cada opción es aplicable a la arquitectura del clúster, la arquitectura de carga de trabajo o ambas.

Fiabilidad

El propósito del pilar Fiabilidad es proporcionar una funcionalidad continuada mediante la creación de suficiente resiliencia y la capacidad de recuperarse rápidamente de los fallos.

principios de diseño de confiabilidad proporcionar una estrategia de diseño de alto nivel aplicada a componentes individuales, flujos del sistema y al sistema en su conjunto.

Lista de comprobación de diseño

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Fiabilidad. Determine su relevancia para sus requisitos empresariales, a la vez que tenga en cuenta los [aspectos específicos de la oferta]. Amplíe la estrategia para incluir más enfoques según sea necesario.

  • (Clúster) Determine el nivel de fiabilidad adecuado para su clúster basándose en la métrica objetivo de fiabilidad global para la carga de trabajo. El nivel de confiabilidad del clúster que identifique determinará el número mínimo de nodos que se van a implementar para el tipo de nodo principal. Consulte la documentación de planeamiento de capacidad para obtener información sobre cómo realizar estas determinación.
  • (Clúster) En el caso de las cargas de trabajo críticas, considere la posibilidad de usar Availability Zones para los clústeres de Service Fabric.
  • (Clúster) En escenarios de producción, utilice el SKU estándar de clúster administrado con un nivel de durabilidad Silver (5 máquinas virtuales) o superior. Esta SKU ofrece funcionalidades de confiabilidad más altas que la SKU básica, que se debe usar para escenarios que no sean de producción.
  • (Clúster) Cree tipos de nodo secundarios adicionales para las cargas de trabajo para aislar diferentes tipos de cargas de trabajo. Esto puede ayudarle a separar los servicios front-end de los servicios back-end, lo que le permite administrar y escalar esos servicios de forma independiente. Cada tipo de nodo está respaldado por su propio conjunto de escalado.

Recomendaciones

Recomendación Beneficio
(Clúster) API Management (APIM) puede integrarse con Service Fabric directamente. Considere la posibilidad de usarlo para exponer y descargar la funcionalidad transversal para las API hospedadas en el clúster. APIM es una puerta de enlace de aplicaciones enriquecida con características que le ayuda a publicar, administrar y supervisar de forma segura las API implementadas en el clúster de Service Fabric.
(Carga de trabajo) Para escenarios de carga de trabajo con estado, considere el uso de Servicios fiables. El modelo de Servicios Confiables permite que sus servicios sigan funcionando en caso de fallos del sistema o problemas de red, o cuando los propios servicios presenten un mal funcionamiento. Para los servicios con estado, su estado se conserva cuando se producen fallos.

Seguridad

El propósito del pilar seguridad es proporcionar garantías de confidencialidad, integridad y disponibilidad a la carga de trabajo.

Los Principios de diseño de seguridad proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos aplicando enfoques al diseño técnico de Service Fabric.

Lista de comprobación de diseño

Base su estrategia de diseño en la lista de comprobación de revisión de diseño para Seguridad.

  • (Clúster y carga de trabajo) Familiarícese con las instrucciones de seguridad del producto de Service Fabric. Consulte procedimientos recomendados de seguridad, escenarios de seguridad de clústeres y seguridad de aplicaciones y servicios de Service Fabric.
  • (Clúster) Aplicar la segmentación de red y los controles mediante la configuración de NSGs para restringir el flujo de tráfico entre subredes y tipos de nodo.
  • (Clúster) Administre de forma segura secretos de aplicación y certificados de cliente mediante herramientas nativas. Los secretos de aplicación deben administrarse con el Almacén de secretos de Service Fabric y los certifcates deben administrarse con Key Vault.
  • (Clúster) Considere traer su propio Load Balancer, lo que le permite utilizar un Load Balancer interno y definir diferentes Load Balancers y NSG para cada tipo de nodo.
  • (Clúster) Controle de forma segura el acceso al clúster habilitando la integración de Microsoft Entra, lo que permite a los usuarios autenticarse con sus credenciales de Entra. Como alternativa, puede usar certificados de administrador y cliente de clúster. No distribuya los certificados de cliente de clúster entre los usuarios de Service Fabric Explorer.
  • (Clúster y carga de trabajo) Cree un proceso para supervisar la fecha de expiración de los certificados de cliente.
  • (Clúster y carga de trabajo) Mantenga clústeres independientes para el desarrollo, el almacenamiento provisional y la producción. Normalmente, los entornos de producción requieren controles de seguridad más estrictos que los entornos de no producción y aislar los entornos entre sí agregan una capa de seguridad si un entorno está en peligro.

Recomendaciones

Recomendación Beneficio
(Clúster) Asegúrese de que los puertos correctos están abiertos para la implementación y las cargas de trabajo de la aplicación. Esta configuración garantiza que se proteja la comunicación entre los recursos de Service Fabric y el resto de la carga de trabajo.
(Clúster) Al usar el almacén de secretos de Service Fabric para distribuir secretos, use un certificado de cifrado de datos independiente para cifrar los valores. El uso de un certificado de cifrado independiente garantiza el aislamiento entre certificados, lo que reduce el riesgo de un único punto de error y permite un control de acceso más granular.
(Clúster) Aplique una lista de control de acceso (ACL) al certificado de cliente de su clúster de Service Fabric. El uso de una ACL proporciona un nivel adicional de autenticación, lo que permite un control más pormenorizado sobre quién puede acceder a los certificados.
(Clúster) Utilice solicitudes y límites de recursos para controlar el uso de recursos en los nodos de su clúster. La aplicación de límites de recursos ayuda a garantizar que un servicio no consuma demasiados recursos y desabastezca a otros servicios.
(Carga de trabajo) Incluya certificados de cliente en aplicaciones de Service Fabric. El hecho de que las aplicaciones usen certificados de cliente para la autenticación proporciona oportunidades de seguridad en el nivel de clúster y carga de trabajo.
(Carga de trabajo) Autentique las aplicaciones de Service Fabric en Azure Resources utilizando Identidad administrada. El uso de identidad administrada permite administrar de forma segura las credenciales del código para autenticarse en varios servicios sin guardarlas localmente en una estación de trabajo de desarrollador o en el control de código fuente.
(Clúster y carga de trabajo) Al hospedar aplicaciones que no son de confianza, use la tecnología de espacio aislado más segura aplicable, quite el acceso al entorno de ejecución de Service Fabric y siga otros procedimientos recomendados de Service Fabric . Seguir los procedimientos recomendados proporcionados ayuda a garantizar que solo las aplicaciones de confianza y comprobadas puedan interactuar con componentes críticos, lo que limita el impacto que las aplicaciones que no son de confianza con vulnerabilidades o código malintencionado pueden tener en el funcionamiento normal del clúster.

Optimización de costos

La optimización de costos se centra en detectar los patrones de gasto, priorizar las inversiones en áreas críticas, y optimizar en otras áreas para satisfacer el presupuesto de la organización a la vez que cumple los requisitos empresariales.

Los principios de diseño de optimización de costos de proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos y hacer concesiones según sea necesario en el diseño técnico relacionado con Service Fabric y su entorno.

Lista de comprobación de diseño

Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Optimización de costes para inversiones. Ajuste el diseño para que la carga de trabajo esté alineada con el presupuesto asignado para la carga de trabajo. El diseño debe usar las funcionalidades adecuadas de Azure, supervisar las inversiones y encontrar oportunidades para optimizar con el tiempo.

  • (Carga de trabajo y clúster) Calcule el costo inicial mediante la calculadora de precios de Azure . Solo se le cobrarán las instancias de proceso, el almacenamiento, los recursos de red y las direcciones IP que elija al crear un clúster de Service Fabric. No hay ningún cargo por el servicio ofrecido por Service Fabric en sí. Para ayudarle a iniciarse en el modelado de costes, consulte el proceso de cálculo de costes de ejemplo para la planificación de aplicaciones.
  • (Clúster) Seleccione las SKU de máquina virtual adecuadas. Elija máquinas virtuales basadas en las características de la carga de trabajo. ¿La CARGA de trabajo consume mucha CPU o ejecuta procesos interrumpibles?
  • (Clúster) Seleccione las SKU de clúster adecuadas. Use Estándar para entornos de producción y Básico para entornos que no sean de producción, a menos que haya una razón convincente para hacerlo de lo contrario. Use los tamaños y tipos de nodo adecuados en cada entorno.
  • (Clúster y carga de trabajo) Seleccione los tamaños y niveles de disco administrado adecuados. Consulte la guía del servicio WAF para el almacenamiento en disco. Evite utilizar SKU de VM con ofertas de discos temporales para evitar pagar por recursos innecesarios.

Recomendaciones

Recomendación Beneficio
(Clúster) Si no tiene requisitos para mantener el estado, considere elegir una SKU de VM con soporte de disco temporal. Aproveche al máximo los recursos por los que está pagando. El uso de un disco temporal en lugar de un disco administrado puede reducir los costos de las cargas de trabajo sin estado.
(Clúster y carga de trabajo) Alinee la selección de SKU de máquina virtual con los requisitos de carga de trabajo. Asegúrese de que ha identificado los tipos de nodo correctos, que son hospedados en conjuntos de escalado, para satisfacer sus requisitos. Alinear su selección con las demandas de su carga de trabajo le ayuda a evitar pagar por SKUs costosas de máquinas virtuales que podría no necesitar.
(Clúster y carga de trabajo) Alinee la selección del tipo de disco con los requisitos de la carga de trabajo. Elegir el tipo de disco administrado adecuado le ayuda a evitar pagar por tipos costosos que es posible que no necesite.

Excelencia operativa

La excelencia operativa se centra principalmente en procedimientos para prácticas de desarrollo, observabilidad y administración de versiones.

Los principios de diseño de Excelencia Operativa proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos hacia los requisitos operativos de la carga de trabajo.

Lista de comprobación de diseño

Inicie su estrategia de diseño basada en la lista de comprobación de revisión de diseño para la Excelencia Operativa, con el fin de definir procesos de observabilidad, pruebas e implementación relacionados con Service Fabric.

  • (Clúster y carga de trabajo) Integre los componentes de Service Fabric, incluidos los clústeres, la infraestructura relacionada y la propia aplicación, en la plataforma de supervisión y alertas. Consulte el artículo sobre las mejores prácticas de supervisión para obtener instrucciones detalladas.
  • (Clúster y carga de trabajo) Use el modelo de estado de Service Fabric para supervisar continuamente el estado de la solución. Esta herramienta debe complementar su modelo general de salud de la carga de trabajo.
  • (Clúster y carga de trabajo) Cree un proceso para supervisar la fecha de expiración de los certificados de cliente. Por ejemplo, Key Vault ofrece una función que envía un correo electrónico cuando ha transcurrido x% del tiempo de vida del certificado.
  • (Clúster y carga de trabajo) Use prácticas de integración continua e implementación continua para administrar las implementaciones del clúster. Use una herramienta creada específicamente como Azure Pipelines o Acciones de Github para administrar las canalizaciones de CI/CD, lo que le permite administrar centralmente todas las implementaciones de cargas de trabajo en todos los entornos con estrategias de control de código fuente adecuadas.

Recomendaciones

Recomendación Beneficio
(Carga de trabajo) Utilice Application Insights para supervisar sus cargas de trabajo. Application Insights proporciona una supervisión completa del rendimiento de las aplicaciones (APM) para aplicaciones web activas, lo que le permite recopilar y analizar la telemetría de la aplicación, lo que mejora el estado de la aplicación y la supervisión del rendimiento.
(Clúster y carga de trabajo) Use Azure Monitor para supervisar eventos de infraestructura de clústeres y contenedores. Azure Monitor proporciona funcionalidades completas de supervisión y diagnóstico, lo que le permite recopilar y analizar registros y métricas de las aplicaciones y la infraestructura de Azure. Azure Monitor se integra bien con la plataforma Azure, incluido Service Fabric.
(Clúster) Implemente políticas de salud del clúster adecuadas como parte de su modelado de salud. Las directivas permiten personalizar cómo se interpretan los fallos desde una perspectiva de salud del clúster. Por ejemplo, puede establecer el porcentaje máximo tolerado de nodos que pueden no estar sanos antes de que el clúster se considere en error.
(Clúster) Implemente políticas de salud apropiadas de aplicación y tipo de servicio como parte de su modelado de salud. La directiva de mantenimiento de aplicación describe cómo se realiza la evaluación de la agregación de eventos y estados secundarios en las aplicaciones y sus elementos secundarios. Service Fabric asume que la entidad no es saludable si tiene un informe de salud o un hijo en el estado de mantenimiento de advertencia o error.
(Clúster y carga de trabajo) Use Azure Chaos Studio para insertar fallos en su solución como parte de la estrategia de pruebas. La introducción intencionada de errores en la solución le ayudará a identificar posibles puntos de error y a practicar las medidas de respuesta a incidentes.
(Clúster y carga de trabajo) Utilice Azure Pipelines para su solución de integración y despliegue continuos (CI/CD). El uso de una solución de CI/CD como Azure Pipelines le ayuda a administrar las implementaciones de forma eficaz, coherente y segura. Azure Pipelines tiene compatibilidad nativa con implementaciones de Service Fabric.

Eficiencia del rendimiento

La eficiencia del rendimiento consiste en mantener la experiencia del usuario incluso cuando hay un aumento de la carga mediante la administración de la capacidad. La estrategia incluye el escalado de recursos, la identificación y la optimización de posibles cuellos de botella y la optimización del rendimiento máximo.

Los principios de diseño eficiencia del rendimiento proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos de capacidad con respecto al uso esperado.

Lista de comprobación de diseño

Inicie su estrategia de diseño basándose en la lista de comprobación de revisión del diseño para la eficiencia del rendimiento. Defina una línea base basada en indicadores clave de rendimiento para Service Fabric.

  • (Clúster) Aproveche la optimización del rendimiento y mejore las características según sea necesario para la carga de trabajo. Consulte la guía del servicio de máquina virtual de para obtener recomendaciones relacionadas con la plataforma de proceso subyacente.
  • (Clúster) Implemente tamaños de máquina virtual y de disco que cumplan los requisitos de perfomance sin incurrir en gastos innecesarios para la capacidad sin usar. Asegúrese de que podrá agregar fácilmente capacidad para satisfacer sus planes de crecimiento futuros.
  • (Carga de trabajo) Comprenda los modelos de programación compatibles con Service Fabric y elija el mejor modelo para sus requisitos de carga de trabajo. Cada modelo de programación tiene ventajas y desventajas únicas, y sus requisitos de carga de trabajo concretos pueden alinearse con un modelo mejor que otros.
  • (Carga de trabajo) Use patrones de arquitectura de nube establecidos para diseñar la carga de trabajo. Los patrones de arquitectura de microservicios, controlado por eventos y procesamiento en segundo plano son buenos candidatos para los diseños de aplicaciones Service Fabric.

Recomendación

Recomendación Beneficio
(Clúster) Excluir los procesos de Service Fabric que se ejecutan en las máquinas virtuales Windows de Windows Defender si las directivas de seguridad permiten excluir procesos y rutas de acceso para software de código abierto. La exclusión de los procesos de Service Fabric reduce el impacto en el rendimiento y la sobrecarga de consumo de recursos que incurre Windows Defender.
(Clúster) Considere el uso de escalado automático para su clúster para permitir la adición o reducción de nodos bajo demanda en un tipo de nodo secundario. El escalado automático reduce la sobrecarga de administración y el posible impacto empresarial mediante la supervisión y optimización de la cantidad de nodos que atienden la carga de trabajo.
(Clúster) Considere la posibilidad de utilizar Redes aceleradas. Las redes aceleradas permiten una ruta de acceso de alto rendimiento que omite el host de la ruta de acceso de datos, lo que reduce la latencia, la vibración y el uso de la CPU para las cargas de trabajo de red más exigentes.
(Clúster) Considerar la posibilidad de usar el cifrado en el host en lugar de Azure Disk Encryption (ADE). El cifrado en el host mejora ADE al admitir todos los tipos e imágenes del sistema operativo, incluidas las imágenes personalizadas, para las máquinas virtuales mediante el cifrado de datos en el servicio Azure Storage.
(Carga de trabajo) Implemente los modelos de programación de Service Fabric más adecuados para la carga de trabajo. Elegir un modelo de programación adecuado le permite aprovechar las características integradas que admiten requisitos de carga de trabajo, como la administración de estados, la simultaneidad y la reutilización del código base existente. También puede asegurarse de que los estándares de implementación se mantienen seleccionando un modelo de programación que se alinea con esos estándares.
(Clúster y carga de trabajo) Implemente el escalado para satisfacer sus requisitos empresariales. Busque el mecanismo de escalado adecuado para la carga de trabajo.. Puede usar el escalado para habilitar el uso máximo de recursos para la solución.

Directivas de Azure

Azure proporciona un amplio conjunto de directivas integradas relacionadas con Service Fabric y sus dependencias. Algunas de las recomendaciones anteriores se pueden auditar mediante Azure Policy. Por ejemplo, puede comprobar si:

  • Los clústeres de Service Fabric están configurados para que sean redundantes de zona.
  • Los clústeres de Service Fabric tienen la propiedad ClusterProtectionLevel establecida en EncryptAndSign.
  • Los clústeres de Service Fabric están configurados para usar solo Azure Active Directory para la autenticación de cliente.

Para una gobernanza completa, revise las definiciones integradas de Azure Policy para Service Fabric y otras directivas que podrían afectar a la seguridad del [área de infraestructura en la nube].

Recomendaciones de Azure Advisor

Azure Advisor es un consultor en la nube personalizado que le ayuda a seguir los procedimientos recomendados para optimizar las implementaciones de Azure. Estas son algunas recomendaciones que pueden ayudarle a mejorar la confiabilidad, la seguridad, la rentabilidad, el rendimiento y la excelencia operativa de Service Fabric.

Consulte el artículo opciones de configuración de clúster administrado de Azure Service Fabric para obtener una lista de todas las opciones que tiene al crear y mantener el clúster.

Revise los aspectos básicos de la arquitectura de aplicaciones de Azure para obtener instrucciones sobre cómo desarrollar las cargas de trabajo. Aunque Service Fabric se puede usar únicamente como plataforma de hospedaje de contenedores, el uso de cargas de trabajo bien diseñadas aprovecha la funcionalidad completa de Service Fabric.

Utilice estas recomendaciones mientras crea el clúster gestionado de Service Fabric mediante una plantilla de ARM o a través del portal de Azure.