BLOG

Cloud Cron: uso de la función como servicio para controlar los costes

Miniatura de Lori MacVittie
Lori MacVittie
Publicado el 11 de febrero de 2019

La función como servicio (FaaS) se está utilizando rápidamente en una variedad de contextos operativos y de desarrollo.

Si bien la estrella emergente de la computación en la nube a menudo se menciona en relación con las API, la IoT y las aplicaciones móviles, existe un uso significativo fuera del desarrollo de esta tecnología. En el informe " Guía para Serverless " de The New Stack, descubrimos que los casos de uso técnico para serverless abarcan un conjunto sólido de usos:

Casos de uso técnico para servidores sin servidor 

  • 73% API REST HTTP y aplicaciones web
  • 68% Trabajos por lotes o tareas programadas 
  • 60% Lógica empresarial
  • 34% Tubería de integración continua

Como era de esperar, las aplicações dominan, con casi tres cuartas partes de los encuestados haciendo uso de tecnologías sin servidor para API REST y aplicações web. Pero después de eso se pone más interesante. Los trabajos por lotes y las tareas programadas, así como la nebulosa "lógica empresarial", aún acaparan más de la mitad de los casos de uso de los encuestados.

Dentro del ámbito de las "tareas programadas" se encuentra el uso de funciones de la nube para gestionar activos en la nube. Una de las capacidades que la nube y los contenedores brindan a las empresas es el medio para optimizar el uso de los recursos. Generalmente pensamos en esto en términos de escalabilidad, especialmente cuando se combina con contenedores y microservicios. Al escalar únicamente aquellas partes de una aplicação que lo requieren, ahorra recursos computacionales (y, por lo tanto, costos).

Pero el otro lado de esa ecuación es la capacidad de cerrar recursos cuando no están en uso. El atractivo, en parte, de la función como servicio y sin servidor (no, no son necesariamente lo mismo) es el verdadero modelo de precios de la utilidad. En realidad, sólo pagas por lo que usas. Dado que lo ideal es que no haya recursos inactivos en un entorno sin servidor/FaaS, no estás pagando por ellos. Sin embargo, en la nube es posible que estés pagando por recursos inactivos al mismo costo que si esos recursos estuvieran ejecutando alguna aplicación o servicio. Es un detalle menor, pero que puede acumularse si una aplicação tiene mucho tiempo de inactividad.

Aquí es donde las funciones de la nube pueden ayudar. Al aprovechar las capacidades de función como servicio de la nube en la que se ejecuta, puede programar una tarea para apagar instancias cuando no estén en uso y reiniciarlas más tarde. Esto supone un cronograma bastante estático, como una aplicação que solo se utiliza durante una jornada laboral bien definida. Estas aplicações suelen ser aplicações "empresariales" tradicionales que los empleados utilizan sólo durante el día y la semana laboral. Cerrar las instancias que componen una aplicación empresarial durante el fin de semana puede ahorrar costos considerables a lo largo del tiempo. 

El uso de la función de su proveedor de nube como una oferta de servicios puede ofrecerle una manera de reducir el costo de mantener esas aplicações "activas" durante la noche y el fin de semana. Incluso si considera una jornada laboral de doce horas, podría reducir sus costos a la mitad si cierra el trabajo durante las otras doce horas.

Si tienes curiosidad sobre cómo implementar lo que para mí parece una versión en la nube de cron, consulta estos recursos: