Cuándo elegir Azure Functions para ejecutar la lógica de negocios

Completado

Echemos un vistazo a otro proceso de nuestra empresa de alquiler de bicicletas y decidiremos qué tecnología se adapta mejor a nuestras necesidades. Analizaremos los aspectos técnicos del proceso, la audiencia y cómo debe evolucionar nuestro proceso.

Escenario

Actualmente, los técnicos usan una hoja de cálculo para registrar las reparaciones y las tareas de mantenimiento que llevan a cabo en las bicicletas. Han surgido dificultades cuando hacen falta piezas de repuesto, dado que el personal no tiene forma de saber si una bicicleta se encuentra a la espera de reparaciones o de repuestos. Como resultado, se han alquilado a los clientes bicicletas con pastillas de freno gastadas, ruedas pinchadas y otros problemas que perjudican a la reputación de la marca como empresa de alquiler de bicicletas de alta calidad.

Quiere crear un sistema que regule el proceso de mantenimiento y reparación, y que permita a todo el personal encontrar respuesta a las preguntas siguientes.

  • ¿Qué trabajos se han realizado en la bicicleta?
  • ¿Qué trabajos quedan por hacer en la bicicleta antes de poder alquilarla de nuevo?
  • ¿Qué bicicletas están disponibles para alquilar en este momento?
  • ¿Qué bicicletas no están disponibles para alquilar en este momento?
  • Para cada bicicleta que no esté disponible:
    • ¿Por qué no podemos alquilarlas?
    • ¿Estamos esperando recibir piezas de repuesto? Si es así, ¿de qué piezas se trata?
    • ¿Cuándo aproximadamente podrá volver a alquilarse la bicicleta?

Le gustaría integrar este sistema con el proceso de reserva y alquiler de bicicletas de la última unidad. Al hacerlo, cuando el personal de la tienda busca bicicletas disponibles, solo encuentra las bicicletas que están disponibles actualmente para alquilar. Su jefe lo ha designado desarrollador de este proyecto.

Proceso de negocio

Quiere asegurarse de que los técnicos de ambos campus sigan este flujo de trabajo al realizar el mantenimiento de una bicicleta después de que se haya alquilado:

Decision flow diagram detailing the logic for the Bike maintenance workflow.

Estos son los detalles:

  1. Un cliente devuelve una bicicleta en cualquier ubicación. Se inicia el proceso de mantenimiento de la bicicleta.
  2. Un técnico marca la bicicleta como no disponible.
  3. Un técnico comprueba una serie de elementos, incluidos los neumáticos, los frenos, la cadena de transmisión y las luces.
  4. ¿Hacen falta piezas de repuesto?
    1. Sí, pero no tenemos existencias.
      1. El técnico pide las piezas de repuesto.
      2. Se reciben las piezas.
    2. Se instalan las piezas de repuesto.
  5. Un mecánico realiza los cambios finales.
  6. Un mecánico marca la bicicleta como disponible para su alquiler.

Elección de una tecnología

Para implementar el proceso de negocio e integrarlo con la base de datos de ubicación de bicicletas, se pueden usar los siguientes conjuntos de tecnologías.

  • Microsoft Power Automate
  • Azure Logic Apps
  • Azure Functions
  • Azure App Service WebJobs

Como en el escenario anterior, podría usarse cualquiera de estas tecnologías para compilar el flujo de trabajo, pero hay dos cuestiones que determinan cuál es la opción óptima.

¿Orientación al diseño o al código?

Sería difícil implementar este flujo de trabajo únicamente con Logic Apps o Power Automate. Aunque no hay demasiados detalles de bajo nivel, está claro que este proceso necesita acceder a un sistema de inventario y realizar pedidos con una empresa de terceros de piezas de repuesto. Es una lógica de negocios nueva y no existe ningún requisito que consideremos orientado al diseño. Podemos encapsular la solución en un conector personalizado para integrarla con otros flujos de trabajo creados con Logic Apps o Power Automate. Como desarrollador, tiene una mayor flexibilidad si aborda este escenario desde un enfoque orientado al código, así que eso es lo que haremos.

¿Azure Functions o Azure App Service WebJobs?

Debemos elegir una de estas dos tecnologías.

  • Azure Functions
  • Azure App Service WebJobs

Los siguientes factores influirán en su elección:

  • Coste: con WebJobs, se paga por toda la máquina virtual o plan de App Service que hospeda el trabajo. Azure Functions puede ejecutarse según un plan de consumo, por lo que solo se paga cuando se ejecuta la función. Puesto que este proceso se inicia únicamente cuando se devuelve una bicicleta, podríamos ahorrar dinero si seleccionamos Azure Functions.
  • Integraciones: su objetivo consiste en integrar el flujo de trabajo de mantenimiento con la aplicación de Logic Apps que ha compilado para el proceso de reserva y alquiler de bicicletas en la unidad anterior. Aunque es posible llamar a un trabajo de WebJobs desde una aplicación de Logic Apps, la integración entre Logic Apps y Functions es más estrecha. Por ejemplo, puede controlar con mayor facilidad la llamada a una función desde el diseñador visual de Logic Apps.

Por estos motivos, seleccionaremos Azure Functions para administrar el proceso de negocio de mantenimiento de bicicletas.