¡La informática sin servidor es el mayor cambio de juego en 2018! (para desarrolladores)

Han pasado unos 9 meses desde que escuché por primera vez el término "Sin servidor ". Puedo recordar claramente que me siento sobrecogido por el hecho de que algún día podré crear aplicaciones web sin la necesidad de tener y administrar un servidor, lo que para un desarrollador front-end, como yo, sería un sueño hecho realidad. .

¿Qué es Serverless?

Bueno, ese sueño aún no se ha hecho realidad. El uso de la informática sin servidor no significa que no tendrá un servidor en el sentido técnico, simplemente significa que no tendrá que administrarlo usted mismo. Utiliza servicios como AWS Lambda, Microsoft Azure o Google Cloud Functions para aprovechar su infraestructura de nube flexible, fácil de escalar y rentable creando microservicios que inician o detienen funciones. El objetivo aquí es reducir los costos de mantenimiento y al mismo tiempo permitir que el desarrollador se concentre en la lógica del negocio, en lugar de quedarse estancado constantemente pensando en la infraestructura, la seguridad y las actualizaciones. Dado que los proveedores de servicios tienen una oferta similar, a los fines de este artículo, me limitaré a hablar sobre AWS Lambda y prometo volver para hablar sobre las otras opciones más adelante.

El concepto, simple como es, me fascinó desde el principio. Trabajar con proyectos empresariales a gran escala me ha enseñado que la infraestructura y la escalabilidad siempre serán un problema. Con Serverless, puede eludir este problema ya que los proveedores de servicios cubren toda la lógica, los problemas y la responsabilidad del servidor.

Entonces, ¿dónde está la magia?

No se puede hablar de lo increíble que Serverless es si no sabes lo que significa FaaS (acrónimo de Functions as a Service). FaaS es básicamente una pequeña porción de código (piense en una pequeña función reutilizable) que devuelve un valor después de que sigue su curso. Es así de simple. Con AWS Lambda, que es el servicio FaaS de Amazon, su código se dividirá en funciones de Lambda que se ejecutan en varios entornos:

Node.js – v6.10, v8.10 (recomendado)

Java – Java 8

Python – Python 2.7

.NET Core – .NET Core 1.0.1 (C #)

Para obtener su código en una función Lambda, cargue un archivo comprimido o utilice AWS Lambda Management Console . El nombre de la función debe ser único, de lo contrario recibirá un error. Puede leer más sobre cómo implementar y crear funciones aquí .

"Ejecuta código sin pensar en servidores. Pague solo el tiempo de cómputo que consume ". – AWS Lambda

Para comprender mejor la magia de Serverless, permítame pintarle una imagen.

Digamos que tienes 10 personas en tu startup tecnológica que beben café cada mañana. A todos les gusta su café con mucha leche. Para asegurarse de que siempre tenga leche, compró una vaca que se sienta cómodamente en la cocina de la oficina y está lista para suministrar suficiente leche a toda la oficina.

De repente, Mark Cuban invierte $ 16M en la compañía y contratas a 100 personas más (y antes de que preguntes, sí, todos los que fueron contratados beben su café con leche. Era un requisito previo de contratación). Debido a que tiene más personas en la oficina, necesitará obtener más vacas para entregar leche. Esa es básicamente la forma tradicional de ejecutar sus servicios. Usted compra un servidor y tiene un cierto conjunto de recursos a su disposición. Si termina necesitando más, debe involucrar al proveedor del servidor, asegurarse de que su aplicación esté construida a escala, actualizar el hardware, etc. Con Serverless, este problema desaparece. Su leche se entrega exactamente cuando la necesita, sin tener un grupo de vacas que lleven su precioso espacio de oficina a través de una plataforma que se adapta cuando es necesario. Solo pagas qué recurso terminas usando. Muchos servicios como AWS Lambda ofrecen alrededor de 1 millón de solicitudes de forma gratuita.

Betsy y sus amigas pasando el rato – circa 2018

Los beneficios

Una de las muchas ventajas de ir sin servidor es la reducción drástica de costos, ya que paga por lo que utilizó. Para AWS Lambda, el precio de cálculo mensual es de $ 0.00001667 por GB-s y el nivel gratuito proporciona 400,000 GB-s. El precio de solicitud mensual es de $ 0.20 por cada millón de solicitudes y el nivel gratuito proporciona solicitudes de 1 millón por mes.

Con solo pasar del alojamiento tradicional a la informática sin servidor, hemos visto compañías que lograron reducir los costos de los servidores de $ 10,000 a $ 370 por mes ( leer más ), lo cual es increíble sin importar cómo lo mires.

¡$ 370 de $ 10,000 por mes es un gran negocio!

En mi opinión, el próximo gran beneficio de no tener servidores es el tiempo de salida al mercado. Dado que no se detiene en los problemas de infraestructura, los lanzamientos son fáciles de realizar y le queda mucho tiempo para concentrarse en la aplicación real en lugar de en la brujería negra que está sucediendo debajo de las cubiertas.

Para las grandes aplicaciones empresariales que requieren mucho trabajo de preparación, como la prueba de compatibilidad hacia atrás o la fusión de todos los componentes nuevos con la API anterior, pasar a una solución sin servidor podría ser una mejor solución, ya que el código se divide en pequeñas funciones reutilizables que son más fáciles de administrar y trabajar con (sin mencionar el recorte en el costo).

Otra cosa muy importante a tener en cuenta acerca de serverless es la capacidad de escalar con gracia cuando llegue el momento. Es algo que generalmente es difícil de lograr y si logras llevarlo a cabo, generalmente cuesta un brazo y una pierna.

"AWS Lambda escalará dinámicamente la capacidad en respuesta al aumento del tráfico. Para manejar cualquier explosión en el tráfico, Lambda aumentará de inmediato sus funciones de ejecución simultánea en una cantidad predeterminada, dependiendo de la región en que se ejecute ".

– AWS Lambda

Entonces, ¿por qué no todos se quedan sin servidor?

Como todo lo demás en este mundo, tiene sus … inconvenientes. Cloud computing y Serverless como tecnología han existido durante años, pero es solo ahora que lo hemos podido obtener a un precio rentable. La mayoría de los proveedores que ofrecen servicios sin servidor aún no han alcanzado la madurez en la que usted, como consumidor, obtiene todas las herramientas necesarias para iniciar su aplicación. Tomemos como ejemplo AWS Lambda, en mi opinión, una de las mejores opciones que hay. Falta mucho en el departamento de monitoreo y reporte de errores; algo en lo que los desarrolladores confían. Afortunadamente, hay opciones como Dashbird.io para evitar esta "deficiencia".

¿Qué hay de las limitaciones?

Cada proveedor de servicios tiene un conjunto de "limitaciones difíciles" que tendrá que respetar para pasar un buen rato .

Volvamos a AWS Lambda. Usted tiene ciertos límites, pero le aconsejo que busque más allá de la palabra "limitaciones", y piense en ellos como pautas. El entorno está limitado a 512 MB de espacio en disco, la memoria puede variar de 128 a 1536 MB y el tiempo de espera de ejecución para una solicitud es de 5 minutos. Si le gusta, puede leer todos los límites de AWS Lambda aquí .

Conclusión – mis dos centavos

Como una tecnología que está disponible para las masas, serverless está aún en su infancia y tardará un tiempo antes de que empiece a extenderse como un reguero de pólvora, pero créanme: eso. Será.

Principalmente por dos razones: costo y velocidad con la que desarrolla e implementa la aplicación. Por supuesto, los servidores tradicionales no funcionarán, pero creo sinceramente que en los próximos años veremos un cambio hacia FaaS y servidores. Espero ver cómo evolucionará la tecnología y cómo los desarrolladores y empresarios se unirán detrás de ella, encontrando nuevas formas de implementar y desarrollar aplicaciones.