Cómo no romper los límites, cómo crear una buena arquitectura y cómo hacer un buen mantenimiento

Azure Functions

AzureFunctionsDentro del trepidante mundo del desarrollo en Azure, continuamente se están sacando nuevas utilidades que las podemos incluir en nuestros desarrollos. En este artículo, te quiero hablar de Azure Functions: qué son, en qué escenarios las podemos utilizar y su comparación con los WebJobs.

¿Qué son las Azure Functions?

Las podemos definir como un «pequeño trozo de código» o «funciones» en la nube. Esto hace que solamente nos tengamos que preocupar por desarrollar la funcionalidad que necesitamos, sin importarnos de toda una aplicación o la infraestructura para ejecutarlo. Por ejemplo, queremos enviar una notificación una vez se haya insertado un elemento en una base de datos.

Para que los desarrolladores tengan una adopción mucho más sencilla, es posible utilizar  casi cualquier lenguaje de desarrollo como: C #, Node.js, Python o PHP.

Otras Características

  • Modelo de pago por uso. Solamente se factura el tiempo que el código esta en ejecución
  • Seguridad integrada. Con otros OAuth como los AAD, Facebook, Google, Twitter o Microsoft Account
  • Fácil de integrar con otros servicios
  • Desarrollo flexible e integrado con herramientas como Visual Studio Team Services, Jenkins o GitHub
  • Open Source. Hay muchas funciones disponibles en GitHub

¿Cuándo utilizarlo?

Azure Functions es una gran solución para el procesamiento de datos, sistemas de integración, el trabajo con IOT, y la construcción de APIs y microservicios simples.

Por ejemplo, tenemos tareas como procesamiento de pedidos, mantenimiento de archivos o tareas de larga duración que se tienen que ejecutar en background sin necesidad de tener una planificación previa. Por defecto, ya tenemos Azure Functions integradas con los siguientes escenarios:

  • BlobTrigger. Procesa blobs en Azure Storage cuando se añaden en contenedores.
  • EventHubTrigger. Responde eventos que ocurren en los dispositivos IoT.
  • Generic webhook. Procesa peticiones de respuesta webhook HTTP a cualquier dispositivo que soporta webhooks.
  • GitHub webhook. Responde a eventos que ocurren en nuestros repositorios GitHub.
  • HTTPTrigger. Desencadena la ejecución del código usando una petición HTTP.
  • QueueTrigger. Responder a mensajes que llevan a la cola de un Azure Storage.
  • ServiceBusQueueTrigger. Conecta la función con otros servicios de Azure o servicios on-premise que se quedan escuchando la cola de mensajes.
  • ServiceBusTopicTrigger. Conecta la función con otros servicios de Azure o servicios on-premise mediante la subscripción.
  • TimerTrigger. Ejecuta una serie de funciones o tareas en una hora predefinida.

Comparación con WebJobs

En principio puede parecer que las Azure Functions solapan la funcionalidad que podemos utilizar con los WebJobs, pero solamente en parte.

Los WebJobs están enfocados para realizar tareas en Background de nuestra Web App, por ejemplo enviar un email a un determinado usuario,etc. Mientras que las Azure Functions pueden ejecutarse en modo Job, pero también pueden responder a eventos del entorno (vía WebHook). Además, no tienen porqué estar vinculadas con una Web App.

Azure Functions es una solución para poder integrar un pequeño desarrollo con eventos/sucesos de otros sistemas y que respondan a ellos de una forma muy simple. Tiene una fácil integración con Logic App o con otros productos disponibles en Azure.

Creando nuestra primera Azure Function

Vamos a implementar un WebHook que su funcionalidad será un simple «Hello World». Para ello, tenemos que seguir los siguientes pasos:

  1. Ir al Portal de Azure Functions y logarse con nuestras credenciales
  2. Escribir el nombre de la función, seleccionar la región donde va a estar desplegada el código y pulsar sobre el botón Crear.
  3. Una vez este aprovisionada la infraestructura, seleccionar el template de WebHook en C#Blog
  4. A continuación, se mostrará en la pantalla la url del WebHook, así cómo el código de la misma.blog2

Test de la Función

Para ver el correcto funcionamiento de nuestra Función, vamos a realizar una petición Http mediante un Post a la url del WebHook (lo podemos hacer haciendo uso bien de Fiddler o PostMan) y en el cuerpo de dicha petición tenemos que añadirle un Json con la siguiente estructura:

{
"first": "Encamina",
"last": "Bloggers"
}

 

Resumen

Azure nos ofrece cada vez más soluciones útiles en nuestro día a día. Un amplio conocimiento sobre las novedades que salen, hace posible que podamos ofrecer soluciones técnicas muy potentes, simples de utilizar y no tener que estar construyendo soluciones prácticamente desde cero. Genial, ¿verdad?

Azure Functions es una solución que ofrece una gran variedad de posibilidades al developer independientemente de su tecnología preferida. La principal característica es que nos permite integrar aplicaciones/servicios con nuestros desarrollos aprovechando todos los beneficios del Cloud (pago por uso, escalabilidad, etc.) 😉

mm

Sobre Adrián Díaz

Adrián Díaz es Ingeniero Informático por la Universidad Politécnica de Valencia. Es MVP de Microsoft en la categoría Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnologías Microsoft más de 10 años y desde hace 3 años está centrado en el desarrollo sobre SharePoint. Actualmente es Software & Cloud Architect Lead en ENCAMINA.
Esta entrada ha sido publicada en Azure y etiquetada como , . Enlace permanente .
ENCAMINA, piensa en colores