¿Qué es Azure Functions?

Completado

Seguirá al equipo web de Tailspin Space Game mientras estudian la mejor forma de cumplir los nuevos requisitos de marketing impuestos por la dirección. El equipo debe integrar alguna tecnología sin servidor, en concreto Azure Functions, en su proceso de DevOps.

Se comprobará con el equipo.

Los nuevos requisitos

Irwin: Gracias por asistir con tan poca antelación. Las cosas se están calentando, y el equipo de marketing ha hecho algunas promesas que podrían complicarnos las cosas a todos. Realmente les gusta nuestro sitio. Creen que la tabla de clasificación se puede usar para promocionar el juego a medida que nos acercamos al lanzamiento final y más allá. Quieren modificar la escala de una forma que supera lo que habíamos planeado originalmente.

Mara: Eso es genial, ¿no? Estamos en Azure, por lo que podemos escalar horizontalmente el servicio tanto como sea necesario.

Irwin: Solo quieren que cualquiera pueda integrar los datos de las tablas de clasificación en sus propias aplicaciones. Piensan que sería estupendo tener las mismas opciones de clasificación en nuestro sitio, en el juego, en los sitios de reseñas de juegos e incluso en blogs externos y sitios personales. Uno de los problemas es que el equipo del motor del juego es el propietario de la base de datos de producción de la que extraemos los datos de las tablas de clasificación. Creen que a partir de ahora son ellos los que deben compilar la API y que sea de su propiedad.

Andy: Mara, ¿se te ocurre algo?

Mara: Estoy segura de que algo se nos ocurrirá. Estas son mis notas:

  • Es necesario ofrecer resultados rápidamente, por lo que hay que encontrar una solución donde podamos usar nuestro código y los conocimientos que tenemos.
  • Es necesario refactorizar una pequeña parte de la funcionalidad en un servicio independiente.
  • Es necesario minimizar la sobrecarga administrativa en producción.
  • Se necesita una escala masiva sin tener que realizar un compromiso masivo.

El equipo asiente.

Funciona en mi máquina

La reunión finaliza. A la mañana siguiente, Andy entre en la oficina de Mara para charlar.

Andy: ¡Lo tengo! He encontrado una solución que cumple todos los requisitos para la API de tabla de clasificación. Se trata de una oferta sin servidor denominada Azure Functions.

Mara: ¡Genial! ¿Cuánto tardaremos en tener algo que podamos demostrar?

Andy: Ya he sacado algo. He bifurcado nuestro repositorio de GitHub y he refactorizado el código de la tabla de clasificación en un nuevo proyecto de Azure Functions. Expone los datos de tabla de clasificación por medio de una sencilla solicitud GET de HTTP. También he actualizado el sitio web para que use ese punto de conexión al solicitar la tabla de clasificación y cualquiera puede hacer lo mismo.

Mara: Esto se parece exactamente a lo que necesitamos. Puedo ayudar a ampliar la canalización de CI/CD existente para que se pueda compilar e implementar como hacemos en el proyecto del sitio principal.

Nota:

Este módulo no se centrará en cómo conectar la aplicación a Azure Functions. Si le interesa, puede revisar el código fuente. En el código se usa el entorno de ejecución de Azure Functions para C# a fin de leer los datos de tabla de clasificación desde Azure Functions.

¿Qué es Azure Functions?

Azure Functions es una oferta específica dentro del espectro más amplio de tecnologías de informática sin servidor de Azure. Ofrece a los desarrolladores una forma fácil de crear funciones sencillas que existen en un entorno sin estado y sin servidor. Se pueden desencadenar funciones mediante diversos métodos, como solicitudes HTTP, cambios en los datos en el almacenamiento, recepción de un mensaje de una cola, etc. Puede obtener más información sobre los enlaces y desencadenadores en Conceptos básicos sobre los enlaces y desencadenadores de Azure Functions.

El equipo de Tailspin ha seleccionado Azure Functions para este escenario porque cumple todas sus necesidades:

  • Es necesario ofrecer resultados rápidamente, por lo que hay que encontrar una solución donde podamos usar nuestro código y los conocimientos que tenemos.
    • Podemos compilar la solución rápidamente como aplicación de ASP.NET Core y usar el código que ya tenemos.
  • Es necesario refactorizar una pequeña parte de la funcionalidad en un servicio independiente.
    • Podemos proporcionar una función independiente sin tener que preocuparnos por otras áreas de la superficie de la aplicación.
  • Es necesario minimizar la sobrecarga administrativa en producción.
    • Azure Functions elimina la necesidad de preocuparse de los entornos de hospedaje.
  • Se necesita una escala masiva sin tener que realizar un compromiso masivo.
    • Las tecnologías sin servidor tienen una escala prácticamente ilimitada que se puede aumentar y reducir de forma automática mucho más rápido que las máquinas virtuales o las instancias de App Service.

Azure Functions y otras tecnologías sin servidor no son siempre la opción adecuada para todas las soluciones. Más adelante, veremos dónde puede encontrar recursos para ayudarle a seleccionar la tecnología adecuada para el trabajo.

Comprobación de conocimientos

1.

¿Cuál de estos proyectos es un buen candidato para la informática sin servidor?

2.

¿Cuál de los siguientes no es un buen motivo para usar Azure Functions?

3.

¿Cuál de las siguientes no es una manera compatible de desencadenar directamente una aplicación de Azure Functions?