[Post Invitado] Azure Service Fabric

Manu Delgado es un apasionado de la tecnología en general y sobre todo de las cosas bien hechas. Experto en MVC , EF, WCF, AJAX, patrones, metodologías , DDD…. Enamorado de las metodologías agiles y de trabajar en equipo. Le gusta pensar que el mundo web is the Best y también le gusta darle sentido a las siglas SOLID. En sus propias palabras “Sí , SOLID no es un mito, existe y se puede llevar a cabo!!!”" . Key consultant en Pasiona y activo en varios grupos de usuarios.

 

A raíz de ver la sesión “Overview of the Azure Service Fabric” de la AzureCon, quiero hacer un pequeño resumen sobre el funcionamiento de este servicio. Aunque ya se anunció en la Build de este mismo año, hemos podido aprender un poco más, ya que se hizo una ponencia muy interesante, donde además se destacaban los cambios realizados después de recopilar la opinión de clientes que estaban en el programa preview.

Como ya se había comentado con anterioridad este servicio Azure Service Fabric (ASF desde este momento) entra a formar parte de los servicios que ya ofrece la parte Compute de Azure, junto a los Cloud Services, Batch, Remote Apps.

clip_image002[5]

¿Que nos aportan estos servicios categorizados como Compute por parte de la familia Microsoft? Básicamente la posibilidad de tener plataformas totalmente personalizables de manera flexible y rápida.

Para conseguir estos objetivos inicialmente Azure disponía Cloud Services, con dos estrategias de despliegues los worker roles y los web roles.

La plataforma evolucionó para proporcionarnos los App Services que están enfocados a la construcción de aplicaciones empresariales con una gran escalabilidad y flexibilidad (mayor si cabe a la de los cloud services).

Pues ahora Azure se quiere reposicionar con los ASF, que nos da más control y flexibilidad sobre todo lo que queremos desarrollar, pero abstrayéndonos de la complejidad que puede tener la administración y creación de maquinas virtuales, o de los problemas típicos de las operaciones diarias de IT.

Podemos observar se detecta una marcada similitud con los Cloud Services, y de hecho, Mark Fusell así lo corroboró en su presentación afirmando:

"We talk about these services as being born in the Cloud Services."

Vamos a ver una representación de todo lo que esconden los ASF

clip_image002[7]

Se podría decir que ASF esta basado en el concepto de arquitecturas basadas en microservicios ya que coge toda la cantidad de características y servicios que dispone y los segrega en características y servicios totalmente individuales .

¿Donde podemos encontrar estos nuevos servicios?

Podemos encontrar esta nueva manera de desplegar en todas partes, ya sea en el propio Azure, como en un cloud privado o incluso en otros clouds (aunque personalmente aún no he podido probar a hacerlo en clouds externos).

clip_image003

 

Un dato que me sorprendió y que a la vez me gustó mucho es que el propio equipo de Microsoft Azure ha utilizado los ASF para la creación de multitud de sus servicios de alta disponibilidad. La forma de hacerlo está representada en este esquema:

clip_image004

Lo sorprendente es ver como desde el Core de su infraestructura hasta servicios tan críticos como los EventHub o las Azure SQL Database se han construido bajo dichos servicios, que me parece que es la prueba irrefutable de la gran fiabilidad y robustez que esperaban tener.

Algo que me fascinó fue la cantidad de clientes que desde el anuncio de dicho servicio se sumaron al programa de preview para poder aportar su opinión y ayudar al crecimiento y a la estabilización de los ASF. Un total de 271 clientes han estado desarrollando con los ASF . Clientes que abarcan un gran espectro de campos desde la industria financiera hasta la sanitaria y claramente no podemos perder de vista los clientes dedicados al IoT.

 

La creación de un ASF y la gestión, en la sesión es realmente interesante, así que os recomiendo verlo directamente en el video:

image 

Sólo adelantaros que la creación es tan fácil e intuitiva como la mayoría de servicios de Azure y que se realiza directamente desde el portal de administración.

 

¿Qué tipos de servicios podemos desplegar dentro de ASF?

Los ASF categorizamos los servicios por dos conceptos stateless applications y stateful applications, pero aunque los nombres no nos digan nada a priori, veamos que estas categorías son bastante familiares:

Stateless applications

No son aplicaciones que no tengan ningún tipo de estado, de hecho lo tienen, pero este se almacena y controla en almacenamientos externos como : SQL Database o Azure Storage. Un ejemplo podría ser una Aplicación web ASP.NET o un worker role.

Stateful applications

Serían esas aplicaciones en las que no se necesitaría una gran necesidad de escalado, así que se optaría por ubicar una base de datos en el propio despliegue. Podríamos decir que serían las aplicaciones menos complejas o mayormente conocidas como las típicas "aplicaciones en tres capas". Claramente este tipo de aplicación nos ofrecerán una baja latencia ya que todo el estado que puedan necesitar se encontraría muy cerca.

Más allá de estos dos "nuevos" conceptos, no podemos olvidarnos que también nos dan la posibilidad de desplegar aplicaciones ya existentes como aplicaciones Java en maquinas virtuales u otras tecnologías como NodeJS.

Para acabar esta pequeña introducción a los ASF, las conclusiones que se extraen de la charla de Mark Fusell son las siguientes :

Los ASF nos aportan una gran personalización y administración conjunta

Nos aportan una gran fiabilidad a la hora de despliegues

Nos permiten crear infraestructuras entre diferentes clouds

Mejora la escalabilidad de los servicios que despleguemos

Alta velocidad en despliegues

Nos ofrecerá un SDK para el desarrollo que nos facilitará la creación de los artefactos necesarios

Nos fuerza a desarrollar orientado a micro servicios

Actualmente se encuentra en Private Preview

El SDK ya está disponible

Se lanzará oficialmente a finales de año

Aunque me he dejado algunas cosas en el tintero como demo de creación del servicio y los modelos de desarrollo Reliable Actors y Reliable Services, tengo intención de tocar estos puntos en profundidad en un post más técnico.

Espero que este pequeño resumen os sirva para ver el gran potencial que nos va a ofrecer este nuevo servicio de Azure y que sirva para despertar las ganas de comenzar a probar los ASF.

 

Manu Delgado

@MDelgadoDiaz83