Serverless es la tecnología en ascenso del mundo de la nube . Al menos una de cada tres (33 %) organizaciones han implementado aplicaciones sin servidor durante el último año. (Fuente: Encuesta para desarrolladores del segundo trimestre de 2018 de Digital Ocean ) De los encuestados en una encuesta de CNCF de 2018 , el 38 % indicó que actualmente utiliza tecnología sin servidor. Otro 26% planea utilizar la tecnología en los próximos doce meses.
Esta incipiente opción en la nube no solo está aumentando rápidamente, sino que a menudo se la malinterpreta y se le atribuyen poderes casi sobrenaturales para reducir costos, acelerar el tiempo para obtener valor y prepararte el desayuno en la cama.
Y si eso no fuera suficiente para confundirte, existe la confusión entre Función como Servicio (FaaS) y Sin Servidor. Ambos no son lo mismo, lo que genera otros malentendidos sobre cómo una empresa típica podría aprovechar esta fabulosa nueva tecnología.
Hoy vamos a desmentir tres mitos comunes que he escuchado repetidamente de clientes y asistentes a conferencias durante los últimos seis meses. Porque es necesario comprender qué es la tecnología (y qué no es) antes de decidir si vale la pena explorarla.
Comencemos por aclarar la diferencia entre serverless y FaaS.
Serverless es un sistema. Una plataforma. Un marco. Se describe mejor como un entorno de ejecución elástico y justo a tiempo. Serverless busca eliminar la sobrecarga operativa y la fricción al ejecutar algo a pedido en algún tipo de entorno aislado. Ese entorno aislado suele ser un contenedor, pero también existen ofertas que utilizan máquinas virtuales y Web Assembly. Por el bien de la brevedad, utilizaré "contenedor" para referirme en sentido amplio a los tres.
Serverless está basado en eventos . Esto significa que el aprovisionamiento y el procesamiento se inician mediante algún tipo de disparador, como la llegada de una solicitud de API o el reloj que marca las 2:07 p. m. Puede ser un evento generado automáticamente o interactivo, como pulsar un botón en un formulario de una aplicación web. En un modelo sin servidor, el evento inicia la ejecución de algo que existe en un contenedor .
NOTA para NETOPS: F5 iRule Los lectores expertos pueden relacionar los eventos sin servidor con los eventos de iRule, por ejemplo: "HTTP_REQUEST" y "HTTP_RESPONSE". El modelo es muy similar: cuando ocurre un EVENTO, se ejecuta algún código. Lo sentimos, la mayoría de los marcos sin servidor no admiten TCL, pero a menudo admiten node.js y Python.
El "contenedor" a menudo se carga desde un repositorio en el momento en que se solicita (inicio en frío) o puede estar ya esperando (inicio en caliente). Todo lo que existe en ese "contenedor" se ejecuta y devuelve una respuesta al sistema que lo activó.
El modelo de negocio detrás de serverless generalmente se basa en pagar solo por los recursos consumidos mientras el "contenedor" se está ejecutando. El modelo operativo consiste en eliminar todo lo relacionado con el funcionamiento del medio ambiente y dejar que la gente se preocupe de construir "algo".
Esto es sin servidor. Función como servicio es un uso específico de sin servidor que define "algo" como "una función".
FaaS nos permite llevar la descomposición de las aplicações que comenzaron con microservicios hasta su conclusión final: funciones.
Saber que existe una diferencia entre Serverless y Function as a Service es importante para desacreditar nuestro próximo mito.
Debido a la combinación de FaaS y Serverless, muchos en el mercado tienen la impresión errónea de que para aprovechar Serverless tendrán que refactorizar su aplicação en sus funciones compuestas.
Sin servidor no requiere que refactorices tu aplicação ni que diseñes nuevas aplicaciones a un nivel funcional. Serverless puede ejecutar con la misma facilidad un "contenedor" con cualquier tipo de aplicação, proceso, demonio o función. Siempre que esté empaquetado en un "contenedor" y pueda invocarse, puede ejecutarse en un contexto sin servidor.
También he visto implementaciones exitosas que aprovechan Serverless para ampliar (modernizar) las arquitecturas de aplicação existentes. El procesamiento por lotes y fuera de banda de registros, cumplimiento de pedidos y otros procesos no críticos se pueden implementar en un modelo sin servidor sin refactorizar por completo las aplicações tradicionales. Las aplicações que ya aprovechan la integración externa basada en API para tales fines encontrarán que Serverless se adapta mejor. Las aplicações establecidas basadas en cliente-servidor seguramente requerirán alguna modificación para aprovechar Serverless, pero no es una tarea tan extensa como la que requeriría una refactorización completa.
Los procesos que se ejecutan solo ocasionalmente (en función de eventos específicos que ocurren de manera esporádica o impredecible) también pueden ser una buena opción para Serverless. Es mucho más rentable poner en marcha un "contenedor" periódicamente para ejecutar algo que mantener ese "contenedor" funcionando todo el tiempo. Esto es válido tanto para servidores públicos como locales sin servidor.
Lo que nos lleva al tercero de nuestros mitos, que se centra en la ubicación.
He escuchado a expertos y expertos en informática de todas partes hacer esta afirmación. Es tan completamente falso como la idea de que no es posible ejecutar la “nube” en las instalaciones. Por supuesto que puedes, y según el informe State of the Developer Nation de Developer Economics , un porcentaje saludable de organizaciones lo hacen.
Las aplicações más grandes y más utilizadas también pueden beneficiarse de un escalamiento muy eficiente, ya que solo necesitan pagar recursos adicionales para las partes específicas de la aplicação con mucha carga y también pueden identificarlas y optimizarlas más fácilmente. Esta ventaja para aplicações más grandes es probablemente una de las principales razones por las que vemos que el 17 % de los actuales usuarios de informática sin servidor ejecutan una solución en su propio centro de datos.
Las ganancias en términos de eficiencia de costos en una implementación sin servidor local van más allá de la escalabilidad. La capacidad de reutilizar los mismos recursos y compartirlos entre aplicações para las que hay un uso esporádico no es insignificante. Serverless también agrega la capacidad de agregar valor a las aplicações y funciones operativas aprovechando su naturaleza central basada en eventos. Su uso local no debe descartarse a la ligera sin comprender que los beneficios sin servidor van mucho más allá de eliminar la fricción operativa de la vida diaria de los desarrolladores. Esto sin duda es una ventaja, pero no es el único beneficio y ciertamente no es la única razón por la que las organizaciones están experimentando con Serverless en las instalaciones.
La realidad es que Serverless se puede implementar y se está implementando localmente. La encuesta CNCF antes mencionada analiza en profundidad las plataformas sin servidor "instalables" más populares:
Hay más, y seguramente habrá otros a medida que esta tecnología gane velocidad.
Tanto Serverless como Function as a Service están disfrutando de índices de adopción increíbles a medida que las organizaciones experimentan, prueban y evalúan la tecnología para su uso tanto en nuevas aplicações nativas de la nube como en esfuerzos de modernización. Reconocer e ignorar conceptos erróneos comunes es un primer paso importante para decidir si la tecnología es adecuada para las aplicações de su organización.