Escenarios de aplicación de Service Fabric

Azure Service Fabric ofrece una plataforma confiable y flexible que le permite escribir y ejecutar muchos tipos de aplicaciones y servicios empresariales. Estas aplicaciones y microservicios pueden tener estado o no tenerlo y se equilibran mediante recursos en las máquinas virtuales para maximizar su eficacia.

La arquitectura única de Service Fabric le permite realizar análisis de datos casi en tiempo real, cálculo en memoria, transacciones paralelas y procesamiento de eventos en sus aplicaciones. Puede escalar o reducir verticalmente las aplicaciones con facilidad en función de los requisitos de recursos variables.

Para instrucciones de diseño sobre la compilación de aplicaciones, consulte Arquitectura de microservicios en Azure Service Fabric y Procedimientos recomendados para el diseño de aplicaciones de Azure Service Fabric.

Considere la opción de usar la plataforma Service Fabric de Azure para los siguientes tipos de aplicaciones:

  • Compilación de datos, procesamiento e IoT: Service Fabric se ocupa de sus servicios con estado a gran escala y tiene latencia baja. Puede ayudar a procesar los datos de millones de dispositivos donde se colocan los datos del dispositivo y el cálculo.

    Los clientes que han creado servicios de IoT mediante Service Fabric incluyen PCL Construction, Citrix, ASOS, Oman Data Park, Kohler y Dover Fueling Systems.

  • Aplicaciones interactivas basadas en sesión y juegos: Service Fabric es útil si su aplicación requiere lecturas y escrituras de baja latencia, como en los juegos en línea o la mensajería instantánea. Service Fabric le permite crear estas aplicaciones con estado interactivas sin tener que crear un almacén o memoria caché independientes. Visite las soluciones para juegos de Azure para una guía de diseño sobre el uso de Service Fabric en los servicios para juegos.

    Los clientes que han compilado servicios para juegos incluyen Next Games. Los clientes que han compilado sesiones interactivas incluyen Honeywell con Hololens.

  • Análisis de datos y procesamiento de flujo de datos: Las aplicaciones que deben procesar de forma confiable eventos o flujos de datos se benefician de operaciones de lectura y escritura optimizadas en Service Fabric. Service Fabric también admite canalizaciones de procesamiento de aplicaciones donde los resultados deben ser confiables y pasar a la siguiente fase de procesamiento sin pérdidas. Estas canalizaciones incluyen sistemas transaccionales y financieros donde las garantías de procesamiento y coherencia de datos son fundamentales.

    Los clientes que han compilado servicios de flujo de trabajo empresarial incluyen Zeiss Group y PCL Construction.

  • Cálculo de datos: Service Fabric le permite compilar aplicaciones con estado que realizan cálculos de datos intensivos. Service Fabric permite la colocación de los datos y el procesamiento (cálculo) en las aplicaciones.

    Normalmente, cuando la aplicación requiere acceso a datos, la latencia de red asociada con un nivel de caché o almacenamiento de datos externos limita el tiempo de cálculo. Los servicios de Service Fabric con estado eliminan esa latencia, lo cual optimiza las operaciones de lectura y escritura.

    Por ejemplo, supongamos una aplicación que realiza una selección de recomendaciones en tiempo real para los clientes con un requisito de tiempo de ida y vuelta inferior a 100 milisegundos. Las características de latencia y rendimiento de los servicios de Service Fabric proporcionan una experiencia con capacidad de respuesta al usuario en comparación con el modelo de implementación estándar de tener que recuperar los datos necesarios del almacenamiento remoto. El sistema tiene mayor capacidad de respuesta, ya que el cálculo de la selección de recomendaciones se coloca con los datos y las reglas.

    Los clientes que han compilado servicios de cálculo incluyen ASOS y CCC.

  • Servicios de alta disponibilidad: Service Fabric proporciona conmutación por error rápida mediante la creación de varias réplicas de servicio secundarias. Si un nodo, proceso o servicio individual deja de funcionar por un error de hardware u otro fallo, una de las réplicas secundarias se amplía a una réplica principal con una pérdida mínima de servicio.

  • Servicios escalables: los servicios individuales pueden tener particiones, permitiendo que el estado se escale horizontalmente en el clúster. También pueden crearse y eliminarse servicios individuales sobre la marcha. Puede escalar horizontalmente servicios de algunas instancias en unos nodos a miles de instancias en gran cantidad de nodos y después reducirlos según sus necesidades. Puede usar Service Fabric para compilar estos servicios y administrar su ciclo de vida completo.

Casos prácticos de diseño de aplicaciones

En los sitios de experiencias de los clientes y Microservicios en Azure se publican estudios de casos que muestran el uso de Service Fabric para diseñar aplicaciones.

Diseño de aplicaciones compuestas por microservicios sin y con estado

La compilación de aplicaciones con roles de trabajo de Azure Cloud Services es un ejemplo de servicio sin estado. Por el contrario, los microservicios con estado mantienen el estado autorizado más allá de la solicitud y su respuesta. Esta funcionalidad proporciona alta disponibilidad y coherencia del estado mediante API sencillas que proporcionan garantías transaccionales respaldadas por la replicación.

Los servicios con estado de Service Fabric llevan la alta disponibilidad a todos los tipos de aplicaciones, no solo a las bases de datos y otros almacenes de datos. Se trata de una progresión natural. Las aplicaciones ya han pasado de usar bases de datos puramente relacionales de alta disponibilidad a bases de datos NoSQL. Ahora las mismas aplicaciones pueden tener su estado "activo" y sus datos administrados en ellas para mejoras adicionales del rendimiento sin sacrificar la confiabilidad, la coherencia o la disponibilidad.

Al compilar aplicaciones formadas por microservicios, suele tener una combinación de aplicaciones web sin estado (por ejemplo, ASP.NET y Node.js) que llaman a servicios empresariales de nivel intermedio con y sin estado. Las aplicaciones y los servicios se implementan en el mismo clúster de Service Fabric mediante los comandos de implementación de Service Fabric. Cada uno de estos servicios es independiente en cuanto al uso de recursos, la confiabilidad y la escalabilidad. Esta independencia mejora la agilidad y la flexibilidad en el desarrollo y la administración del ciclo de vida.

Los microservicios con estado simplifican los diseños de la aplicación porque acaban con la necesidad de colas y memorias caché adicionales tradicionalmente necesarias para cumplir los requisitos de disponibilidad y latencia de una aplicación puramente sin estado. Dado que los servicios con estado tienen alta disponibilidad y latencia baja, hay menos detalles para administrar en la aplicación.

En los siguientes diagramas se muestran las diferencias entre diseñar una aplicación sin estado y otra con estado. Al aprovecharse los modelos de programación de Reliable Services y Reliable Actors, los servicios con estado reducen la complejidad de la aplicación, al mismo tiempo que se obtienen un alto rendimiento y una baja latencia.

A continuación se muestra una aplicación de ejemplo que usa servicios sin estado: Application that uses stateless services

A continuación se muestra una aplicación de ejemplo que usa servicios con estado: Application that uses stateful services

Pasos siguientes