¿Qué es Serverless?

El concepto de computación sin servidor es un modelo de ejecución prometedor que intenta satisfacer las necesidades de un software moderno basado en la nube.. 

En este video de mi curso, Introducción a Serverless, le presentaré la arquitectura sin servidor. Hablaremos sobre sus puntos clave y lo compararemos con otros modelos para abstraer la funcionalidad del servidor a la nube..

¿Qué es Serverless??

 

La arquitectura sin servidor

En primer lugar, en un sistema sin servidor, hay servidores. Con suerte, eso no es una gran sorpresa para ti. Se trata de quién los maneja.

Veamos un diagrama muy común que muestra diferentes tipos de servicios.. 

A la izquierda, tienes tu sistema local tradicional. Todo lo gestiona usted, hasta la máquina física y la red. Entonces tienes varios niveles de abstracción..

Infraestructura como un servicio

El primer nivel de abstracción es la infraestructura como servicio. Aquí usted es responsable de todo, desde el sistema operativo hasta. Los ejemplos serían DigitalOcean o el EC2 de Amazon. El proveedor le proporciona una instancia y, a partir de ese momento, se encuentra solo.. 

Contenedor como servicio

La siguiente capa de abstracción es el contenedor como un servicio. También es un jugador bastante nuevo que tiene mucha tracción debido a la popularidad de Docker. En un mundo de AWS, esto sería EC2 Container Services.. 

Plataforma como servicio

Luego tenemos una plataforma como servicio, en la cual usted no es responsable de administrar ningún sistema operativo o contenedor. Usted es el único responsable de su solicitud. Ejemplos destacados de esta categoría son Heroku, AWS Elastic Beanstalk y Google Compute Engine.

Funciones como un servicio (también conocido como Serverless)

Hace unos años, el gráfico habría terminado aquí. Pero hoy en día tenemos una nueva terminología, es decir, funciona como un servicio. En lugar de ejecutar una aplicación que tiene estado, lo cual es cierto para todos los marcos web tradicionales, aunque esté usando REST y otras cosas, tiene un sistema que usa contenedores sin estado que son activados por eventos, son efímeros y están completamente administrados por el servicio proveedor.

Esto es lo que se llama sin servidor. Existe otro concepto llamado back-end como un servicio que a veces también se considera parte de la arquitectura del servidor. Pero en mi opinión, pertenece más al software como un servicio, que es esencialmente lo que está intentando construir.. 

Áreas Clave de Funciones como un Servicio

Así que vamos a hablar más sobre las funciones como un servicio..

Como su nombre lo indica, usted como desarrollador es responsable de escribir funciones ejecutables que son activadas y ejecutadas por eventos. Esto puede ser una carga de archivo completa a S3 o una solicitud a través de un punto final de API. Hasta ahora, tan simple. Sin embargo, para entender completamente el concepto, voy a hablar sobre algunas áreas clave que definen las funciones como un servicio..

Estado

El primero es el estado. Las funciones son muy limitadas cuando se trata de preservar el estado. En general, debes asumir que no puedes hacerlo en absoluto. Las funciones siguen más de un principio de fuego y olvidan. Si desea almacenar cualquier cosa, hágalo con un servicio externo, como el almacenamiento de archivos o una base de datos o un servidor de caché..

Duración de ejecución

El segundo es la duración de la ejecución. Es posible que tenga una aplicación de servidor que se ejecute durante horas o días sin reiniciar, según el proceso de implementación. Lo mismo ocurre con el procesamiento en segundo plano. Con las funciones, el tiempo de ejecución es limitado. No se espera que la función se ejecute durante más de unos pocos segundos, y AWS Lambda, por ejemplo, finaliza cada función que no ha terminado de ejecutarse después de cinco minutos. Si tiene una tarea de larga duración, entonces las funciones como un servicio podrían no ser las más adecuadas. 

Latencia de inicio

Entonces tenemos latencia de inicio. Esto puede ser todo entre unos pocos milisegundos y minutos. Por supuesto, esto depende del idioma y el sistema que está utilizando. Por lo general, una función Python o JavaScript en AWS comienza en milisegundos, pero si está utilizando la Máquina Virtual Java, puede tomar un tiempo hasta que la máquina se active, especialmente si su función no se ha ejecutado en los últimos diez minutos. o experimentas un aumento repentino en la ejecución. 

Escalabilidad y coste

Esto conduce a preguntas sobre la escalabilidad y el costo de ejecución, y la respuesta que está buscando es: no se preocupe por eso. La escala es administrada por el proveedor de servicios, y el costo es simple.

Si está ejecutando una función diez veces, paga exactamente estas diez invocaciones. Si estás corriendo 1,000 veces, pagas 1,000. Es un poco más complicado que eso, por supuesto, pero eso es lo esencial.. 

Conclusión

Tener un sistema sin servidor puede ser muy ventajoso. Es genial si tiene tráfico inconsistente, por ejemplo, un pico en la parte superior de la hora, o muy pocas solicitudes ocasionales, ya que no tiene que asignar recursos que están inactivos la mayor parte del tiempo.

Para resumir, los sistemas sin servidor tienen servidores, pero están completamente administrados por proveedores de la nube. Las funciones son el núcleo de una arquitectura sin servidor y se ejecutan mediante el uso de activadores. La escala y la alta disponibilidad ya están a cargo de los proveedores de la nube. Si tiene una demanda muy ocasional o una búsqueda grande pero corta, serverless lo ayuda a mantener bajos sus costos.

Ver el curso completo

En el curso completo, Introducción a Serverless, le mostraré cómo utilizar los servicios web de Amazon para crear una aplicación web "sin servidor", completa con un back-end de API REST. También verá cómo lidiar con algunos escenarios avanzados como la integración de otros servicios de AWS y la organización de funciones conscientes del estado. En el camino, construirá un servicio web genial para convertir texto a voz.

Puede tomar este curso de inmediato con una suscripción a Envato Elements. Por una única tarifa mensual baja, obtiene acceso no solo a este curso, sino también a nuestra creciente biblioteca de más de 1,000 cursos de video y libros electrónicos líderes en la industria en Envato Tuts+. 

Además, ahora obtiene descargas ilimitadas de la enorme biblioteca de Elementos Envato con más de 400,000 activos creativos. Cree con fuentes, fotos, gráficos y plantillas únicas, y entregue mejores proyectos más rápido.