El desarrollo de las tecnologías en la nube o Cloud Computing es cada vez más diversa. Nos ofrece múltiples alternativas que se adaptan a opciones que van desde bastante robustas en cuanto a configuración o hasta el punto en que solo nos preocupamos por ajustes mínimos.
Este segundo caso hace referencia a las tecnologías serverless (“sin servidor”), encontrándose en dos formas: Backend as a Service (BaaS) y Functions as a Service (FaaS). El BaaS existe desde hace ya tiempo, sin embargo fueron las FaaS las que popularizaron el término de cómputo sin servidor.
¿Cómo se originó la tecnología serverless?
Durante la década de los 80s los modelos de cliente-servidor comenzaron a tener un auge en las computadoras de escritorio y sus aplicaciones, convirtiéndose en una necesidad particularmente para las empresas. Con la llegada de la WWW esta necesidad fue mayor para con el aumento de usuarios…
La aparición de Salesforce en 1999 marcó un antes y después en la industria al ofrecer un Software as a Service (SaaS) como producto principal en lugar de una licencia a instalar en las computadoras. Esto evolucionó de forma en 2006 con Amazon ofreciendo AWS EC2, teniendo una Infrastructure as a Service (Iaas) y brindando un cómputo mucho más flexible bajo demanda.
Para 2008 Google nos presenta Google App Engine, una forma de correr código en la nube sin preocuparnos por la infraestructura bajo la forma de Platform as a Service (PaaS). Otras compañías no se quedaron atrás, haciendo que Azure y Heroku también ofrecieran opciones similares.
En 2014 Amazon nuevamente marcó un hito con el lanzamiento de AWS Lambda cuyo enfoque se centraba en ejecutar porciones de código únicamente cuando fueran requeridas. Al mismo tiempo surge el término microbilling refiriéndose a cobrar solo por el consumo utilizado.
¿Serverles tiene… servidores?
El concepto de “cómputo sin servidores” suena ilógico sabiendo que de antemano hay servidores funcionando. Su definición se refiere más bien a que como usuarios de estos sistemas no debemos preocuparnos por configurar infraestructura, asignar recursos y gestionarlos, ya que el proveedor del servicio se encarga de todo ello.
En otras palabras, podríamos definir serverless como el uso de la nube que cuesta por lo que se consume, en el cual no se administran servidores (de forma directa) y su funcionamiento se lleva a través de aplicaciones.
De lo que debes preocuparte y donde aplicarlo
Si bien la ventaja principal de esta tecnología es brindarnos un ecosistema amigable para nuestras apps, hay que tener clara la delimitación de nuestra responsabilidad ya que en el mundo tech no existe una bala de plata.
Lo que sí harás al trabajar con tecnologías serverless es:
- Escribir código, quizá no demasiado pues buscarás tener la menor cantidad posible para no comprometer tu proyecto.
- Definir eventos que disparan las acciones a ejecutar dentro del proyecto.
- Conectar con servicios que hagan funcionar al proyecto como un todo.
- Estar atento al consumo del servidor y conocer lo que debes pagar por el mismo.
Dada la simplicidad que ofrecen en su implementación también podrás imaginar en donde puede utilizarse, algunos casos típicos son:
- Aplicaciones web con arquitectura de 3 capas (presentación, aplicación y datos).
- Desarrollo de Web APIs.
- Procesos de streaming.
- Flujos de datos (data pipelines).
- Procesamiento de datos por lotes como en ETLs.
- Automatización de infraestructura.
Todo esto abre un mundo de posibilidades para hacer uso de las tecnologías serverless, pone la atención de los proveedores de servicio para ofrecer diversas opciones y abre el mercado a nuevas empresas de servicio.
Un ejemplo de serverless computing son los que ofrece Google que van desde almacenamiento, manejo de bases de datos, analítica, mensajería, DevOps e incluso podemos utilizar algunas de sus APIs de Machine Learning y asistentes inteligentes.
Por supuesto, tú puedes comenzar a aprender a manejar esta tecnología con el Curso de Google Serverless y tener tus proyectos corriendo en la nube.
Curso de Google Serverless