Etiquetas

,

Service Fabric es una plataforma de sistemas distribuidos que facilita el despligue, la implementación y la administración de microservicios escalables y confiables. La principal motivación que existe en utilizar microservicios es la posibilidad de centrarce en la implementación de la lógica de los mismos, en vez de gastar tiempo en resolver problemas típicos de la infraestructura necesaria para este tipo de escenarios.

Service Fabric permite compilar y administrar aplicaciones escalables y confiables compuestas por microservicios que se ejecutan con una densidad muy alta en un grupo compartido de máquinas denominado Clúster de Service Fabric.

Dentro de las principales características de los microservicios encontraremos:

  • La capacidad de escalar funcionalidades independientes dentro de un sistema.
  • Los equipos de desarrollo pueden ser más ágiles e independientes en la implementación de cambios.
  • Desarrollar aplicaciones altamente escalables y de recuperación automática.
  • Desarrollar aplicaciones compuestas por microservicios con el modelo de programación de Service Fabric u hospedar otro tipo de aplicación ASP.NET Core 1, Node.js, etc.
  • Desarrollar microservicios con o sin estado, altamente confiables.
  • Simplificar el diseño de sistemas, mediante el uso de microservicios con estado en vez de utilizar caché o colas.
  • Permitir ejecutar el código sin ningún tipo de alteración, ya se en Azure o en ambientes locales con Windows o Linux.

Cluster de Service Fabric

Se pueden crear clusters de Service Fabric en muchos entornos diferentes, tanto en Azure como en un ambiente on-premise ya sea Windows o Linux. El entorno de desarrollo es idéntico al entorno de producción sin que intervenga ningún tipo de emulador.

service-fabric-overview 

Comparación de enfoques de desarrollo

monolithic-vs-micro

  1. Las aplicaciones monolíticas contienen funciones específicas y normalmente se dividen en capas funcionales, como Web, negocios y datos.
  2. Para escalar aplicaciones monolíticas es necesario duplicarlas en varios servidores, máquinas virtuales o contenedores.
  3. Las aplicaciones de microservicios separan las funciones en servicios más pequeños independientes.
  4. Este enfoque se escala horizontalmente mediante la implementación de cada servicio de manera independiente, con la creación de instancias de estos servicios en servidores, máquinas virtuales y contenedores.

Manejo de estado entre tipo de aplicaciones

statemonolithic-vs-micro

En el modelo monolítico en general se almacena el estado en una única base de datos.

En el modelo de microservicios se encuentran varios de ellos interconectados, alguno con estado y otros sin. Por lo general, el manejo de estado y el medio de persistencia solo tiene como ámbito el microservicio que lo consume. En este escenario hay una mayor diversidad de tecnologías.