Serverless, la nueva palabra de moda en la ciudad ha ganado mucha atención por parte de los profesionales y los novatos en la industria de la tecnología. En parte debido a la forma en que los proveedores de la nube como AWS han promocionado la arquitectura, desde conferencias hasta reuniones y publicaciones de blog en casi todas partes. Pero serverless no se trata solo de exageraciones, sino que promete la posibilidad de implementaciones comerciales ideales que suenan bastante agradables a los oídos y probablemente también sean livianas para el presupuesto.
“Concéntrese en su aplicación , no en la infraestructura ”
Sin embargo, suena aliviador saber que muchas de sus horas de luz se dedican a implementar, mantener, depurar y monitorear la infraestructura. Con todo ese trabajo pesado de infraestructura fuera del camino, realmente podemos centrarnos en los objetivos comerciales a los que sirven nuestras aplicaciones. Muchos esfuerzos productivos podrían canalizarse en la dirección correcta, donde debían estar idealmente. Tal vez suene demasiado bueno para ser verdad, pero así es como deberían haber sido las cosas. Al menos para aquellos de ustedes que no pueden permitirse pasar mucho tiempo atrapados en la red de complejidades de la infraestructura moderna y compleja.
Dejando a un lado las expectativas, Serverless realmente está abriendo camino en su camino para interrumpir la infraestructura de su servidor. Serverless ya se utiliza en la producción de empresas como Netflix, Reuters, AOL y Telenor. La adopción en toda la industria aumenta constantemente. Serverless está listo para ocupar su propio lugar, pero no espere que Serverless conquiste su infraestructura por completo. Habrá casos de uso en los que serverless podría resultar ser la elección incorrecta.
Serverless es un modelo de ejecución de computación en la nube en el que el proveedor de la nube administra dinámicamente la asignación y el aprovisionamiento de servidores. Una aplicación sin servidor se ejecuta en contenedores de cómputo sin estado que son activados por eventos, efímeros (pueden durar una sola invocación) y completamente administrados por el proveedor de la nube. El precio se basa en la cantidad de ejecuciones en lugar de la capacidad de cómputo precomprada, ¿no es el marco ideal para ese proyecto que ha estado planeando durante mucho tiempo? Bueno, adelante, hazlo.
Las aplicaciones sin servidor son sistemas basados en la nube impulsados por eventos en los que el desarrollo de aplicaciones se basa únicamente en una combinación de servicios de terceros, lógica del lado del cliente y llamadas a procedimientos remotos alojados en la nube (Funciones como servicio) .
La mayoría de los proveedores de la nube han invertido mucho en serverless y eso es mucho dinero; con la promoción masiva dada y la oferta realista, puede asumir con seguridad que serverless será uno de los servicios en la nube más utilizados en los próximos años. Estos son algunos de los servicios en la nube disponibles actualmente:
Fuente: https://www.gocd.org/2017/06/26/serverless-architecture-continuous-delivery/
Durante años, sus aplicaciones se ejecutaron en servidores que tuvo que parchar, actualizar y cuidar continuamente hasta altas horas de la noche y temprano en la mañana debido a todos los errores inimaginables que rompieron su producción. Mientras los administrara, toda la responsabilidad de su correcto funcionamiento recaía sobre usted. Serverless tiende a ser diferente a lo mencionado anteriormente, ya no necesita preocuparse por los servidores subyacentes. La razón es que usted ya no los administra y, con la administración fuera de escena, la responsabilidad recae en los proveedores de la nube. Pero independientemente de las características geniales de Serverless en algunos casos, la arquitectura tradicional lo eclipsa.
Una de las principales ventajas de usar Serverless es el costo reducido, durante años el costo de aprovisionar servidores y mantener ese equipo de servidores 24x7 que hizo un agujero en su bolsillo se ha ido. El modelo de costos de Serverless se basa en la ejecución: se le cobra por la cantidad de ejecuciones. Se le asigna una cierta cantidad de segundos de uso que varía según la cantidad de memoria que necesita. Asimismo, el precio por MS (milisegundo) varía según la cantidad de memoria que requieras. Obviamente, las funciones de ejecución más breves son más adaptables a este modelo con un tiempo máximo de ejecución de 300 segundos para la mayoría de los proveedores de la nube.
El ganador aquí es Serverless Architecture.
La desventaja es que solo se accede a las funciones sin servidor como API privadas. Para acceder a estos, debe configurar una API Gateway. Esto no tiene un impacto en su precio o proceso, pero significa que no puede acceder directamente a ellos a través de la IP habitual, ¡chasquido!
El ganador aquí es Arquitectura Tradicional.
La mayoría de sus proyectos, si no todos, tienen dependencias externas, se basan en bibliotecas que no están integradas en el lenguaje o marco que utiliza. A menudo usa bibliotecas con funcionalidades que incluyen criptografía, procesamiento de imágenes, etc., estas bibliotecas pueden ser bastante pesadas. Sin acceso a nivel de sistema, debe empaquetar estas dependencias en la propia aplicación.
Reinventar la rueda no siempre es una buena idea.
El ganador aquí se basa en el contexto. Para aplicaciones simples con pocas dependencias, Serverless es el ganador; para algo más complejo, la Arquitectura Tradicional es la ganadora.
Configurar diferentes entornos para Serverless es tan fácil como configurar un solo entorno. Dado que es pago por ejecución, esta es una gran mejora con respecto a los servidores tradicionales, ya no necesita configurar máquinas de desarrollo, preparación y producción. Eventualmente perdería la cuenta de todos los entornos, en algún momento.
El ganador aquí es Serverless Architecture.
Con la informática sin servidor, hay un límite de tiempo de espera estricto de 300 segundos. Las funciones demasiado complejas o de ejecución prolongada no son buenas para Serverless, pero tener un tiempo de espera difícil hace que sea imposible realizar ciertas tareas. Un límite estricto en este tiempo hace que Serverless sea inutilizable para aplicaciones que tienen tiempos de ejecución variables y para ciertos servicios que requieren información de una fuente externa.
El claro ganador aquí es la Arquitectura Tradicional.
El proceso de escalado para Serverless es automático y continuo, pero hay una falta de control o una ausencia total de control. Si bien el escalado automático es excelente, es difícil no poder abordar y mitigar los errores relacionados con las nuevas instancias sin servidor.
Es un vínculo entre la arquitectura sin servidor y la tradicional.
FaaS es una implementación de arquitecturas sin servidor donde los ingenieros pueden implementar una función individual o una parte de la lógica comercial. Comienzan en milisegundos (~100 ms para AWS Lambda) y procesan solicitudes individuales dentro de un tiempo de espera de 300 segundos impuesto por la mayoría de los proveedores de la nube.
FaaS son similares a las funciones a las que está acostumbrado a escribir en lenguajes de programación, unidades de lógica pequeñas y separadas que toman argumentos de entrada, operan en la entrada y devuelven el resultado.
Con Serverless, todo es sin estado, no puede guardar un archivo en el disco en una ejecución de su función y esperar que esté allí en la siguiente. Cualquiera de las dos invocaciones de la misma función podría ejecutarse en contenedores completamente diferentes debajo del capó.
FaaS está diseñado para funcionar rápidamente, hacer su trabajo y luego apagarse nuevamente. No se quedan sin usar. Mientras se realiza la tarea, los contenedores subyacentes se desechan.
Aunque las funciones se pueden invocar directamente, generalmente se desencadenan por eventos de otros servicios en la nube, como solicitudes HTTP, nuevas entradas de bases de datos o notificaciones de mensajes entrantes. FaaS a menudo se usa y se considera como el vínculo entre los servicios en un entorno de nube.
Con las funciones sin estado, se pueden inicializar varios contenedores, lo que permite ejecutar tantas funciones (en paralelo, si es necesario) como sea necesario para atender continuamente todas las solicitudes entrantes.
AWS Lambda, Azure Functions, IBM OpenWhisk y Google Cloud Functions son las soluciones FaaS más conocidas disponibles. Cada oferta suele admitir una variedad de lenguajes y tiempos de ejecución, por ejemplo, Node.js, Python, .NET Core, Java.
Una solución sin servidor consta de un servidor web, funciones Lambda (FaaS), servicio de token de seguridad (STS), autenticación de usuario y base de datos.
Fuente: http://blog.tonyfendall.com/2015/12/serverless-architectures-using-aws-lambda/
Fuente: https//serverless.com /
Las plataformas sin servidor necesitan infraestructuras donde puedan ejecutarse, los marcos independientes del proveedor proporcionan una forma independiente de la plataforma para definir e implementar código sin servidor en varias plataformas en la nube o servicios comerciales.
La arquitectura sin servidor es ciertamente muy emocionante, pero viene con un montón de limitaciones. Ya que la validez y el éxito de las arquitecturas dependen de los requerimientos del negocio y de ninguna manera únicamente de la tecnología. De la misma manera, Serverless puede brillar cuando se usa en el lugar adecuado.
Eche un vistazo a la maravilla que es Serverless, es hora de echar un vistazo a cómo se ve Serverless desde el interior. Aquí hay algunos enlaces para que pueda comenzar su viaje sin servidor.
serverless /examples _Serverless Examples: una colección de repeticiones y ejemplos de arquitecturas sin servidor creadas con Serverless…_github.com
anaibol/awesome- serverless _awesome-serverless - ☁️ Una lista seleccionada de increíbles servicios, soluciones y recursos para serverless / nobackend…_github.com
Creación de un formulario de contacto sin servidor para sitios web estáticos _Manejo de formularios estáticos con funciones lambda sin servidor de AWS_hackernoon.com
Espero que este artículo haya ayudado a comprender la informática sin servidor. Me encantaría saber cómo usa Serverless en sus proyectos. Aplaude si aumentó tu conocimiento, ayúdalo a llegar a más personas.