La innovación en el mundo de la informática ocurre a un ritmo vertiginoso en todas y cada una de sus áreas, generándose importantes avances en los procesos relacionados con la “Severless Computing”, o también denominada “Arquitectura Serverless”, o simplemente, “Informática sin Servidor”.
Bajo ese contexto cada día son más las empresas que dirigen su mirada hacia la “Nube”, como una forma de optimizar la creación y ejecución de aplicaciones y procesos, minimizando el uso de servidores. De esta manera, la informática sin servidor se convierte en un elemento clave para el desarrollo adecuado de la arquitectura interna de un software.
Si bien es cierto que el severless computing disminuye el uso de un servidor, este no desaparece en su totalidad, simplemente se optimiza y redirige su uso por parte del proveedor de la nube, quien será finalmente el responsable de todas las actividades rutinarias que se asocian al mantenimiento de los servidores.
Historia
La creación de una aplicación web durante sus inicios requería del uso de hardware que permitiera la ejecución de un servidor, convirtiéndose en algunas ocasiones en un proceso complicado y costoso. Posteriormente, con el advenimiento de la nube, las empresas y los desarrolladores tuvieron la posibilidad de alquilar espacios en servidores remotos para realizar sus actividades.
Sin embargo, este proceso tampoco resultó del todo eficiente, ya que las empresas contrataban un espacio superior al necesario para darle estabilidad al sistema en caso de picos de demandas muy elevados, incurriendo de esta manera en gastos adicionales, por esta razón, surgió la necesidad de contar con una plataforma que le permitiera a los desarrolladores pagar solo por el servicio utilizado.
En este sentido, la historia de la informática sin servidor es reciente, encontrándose los primeros reportes de esta tecnología en un artículo del especialista en aplicaciones descentralizadas y desarrollo sin servidor, Ken Fromm, publicado en octubre 2012 cuyo título es “Why the Future of Software and Apps is Serverless”, o en español, “Por qué el futuro del software y las aplicaciones no tiene servidor”.
Para noviembre de 2014, la empresa Amazon lanza al mercado su servicio “AWS Lambda”, el cual permite a los desarrolladores ejecutar códigos y administrar de forma automática todos sus recursos sin la necesidad de manejar la infraestructura que subyace durante estos procesos.
Luego de esto en julio del 2015, Amazon crea “API Gateway”, un servicio para la creación y mantenimiento de API REST, HTTP y WebSocket, donde los desarrolladores puedan generar Interfaz de Programación de Aplicaciones que accedan a Amazon Web Services o a otros servicios web, así como también a los datos almacenados en la nube. Finalmente en octubre de 2015, nace “Serverless Framework” como el primer marco desarrollado para crear aplicaciones en AWS Lambda.
Visión general de la arquitectura sin servidor
El Serverless Computing, o la arquitectura sin servidor, no implica la total inexistencia de un servidor como tal, ya que en realidad lo que se busca con este sistema es que el proveedor de la nube administre adecuada y eficientemente todos los procesos relacionados con el servidor en sí.
En este sentido, una de las características que resalta de Serverless Computing es el abandono de la forma tradicional de gestionar los servidores en una empresa, para sustituirlo por la administración automatizada que lleva a cabo el proveedor de la nube.
Esto significa, que el proveedor de la nube es el responsable de administrar todos los recursos organizacionales durante la ejecución de una actividad en particular, quedando relegada la antigua acción administrativa que realizaban los usuarios dentro de la organización.
Bajo este novedoso esquema, las actividades informáticas de una empresa se facturan en función a la necesidad de recursos para cada tarea en particular, generándose un claro contraste con el antiguo modelo donde se contrataban espacios que a menudo no se utilizaban, obteniendo con esto un importante ahorro de capital, ya que solo se paga lo que efectivamente se utiliza.
Además de lo anterior, en el modelo Serverless Computing ya no es necesario hacer reservas de servidores, evitándose con esto que los desarrolladores vallan al servidor mediante una Interfaz de Programación de Aplicaciones (API) para agregar recursos, ya que será el proveedor de la nube el total responsable de realizarlo automáticamente.
Ventajas
La informática sin servidores presenta una serie de ventajas cuando se compara con el modelo tradicional, y entre ellas podemos mencionar las siguientes:
- La informática sin servidor reduce significativamente los costos operativos del desarrollador, ya que permite pagar solo por el espacio utilizado.
- Aumenta la productividad de las empresas, quienes tendrán la posibilidad de asignar aquellas tareas relacionadas a la administración de servidores a terceros, y con ello enfocarse directamente en el desarrollo de las aplicaciones.
- Los tiempos asociados a la comercialización disminuyen en una plataforma Severless Computing, ya que los desarrolladores tendrán la opción de modificar o agregar paulatinamente los códigos.
- Los proveedores de este novedoso servicio pueden gestionar todo lo relacionado al escalado de códigos bajo la demanda real.
- Permite enfocarse en unificar el desarrollo de software y la operacionalización del mismo, es decir adoptar la práctica de ingeniera de sistema “DevOps”.
- Optimiza el desarrollo de aplicaciones gracias a la incorporación de componentes esenciales del modelo BaaS que ofrecen otros proveedores.
Desventajas
En cuanto a las desventajas o inconvenientes de la informática sin servidores podemos mencionar lo siguiente:
- Existe una importante restricción en la capacidad interactiva de los proveedores de la nube que influye directamente en la personalización y flexibilización de los sistemas.
- Se genera dependencia de los proveedores del servicio.
- Pudiese ocasionar algunos problemas asociados a la falta de control de servidores propios.
- El ingreso a máquinas virtuales y sistemas operativos se ve limitado.
- Implementar una arquitectura serverless implica un esfuerzo económico ya que, por lo general, se requiera actualizar los sistemas para que estén acordes con las demandas del proveedor.
¿Qué función desempeña el proveedor de nube en la informática sin servidor?
Los proveedores de nube juegan un rol fundamental en la arquitectura serverless, ya que son ellos los encargados de ejecutar los servidores, y al mismo tiempo, asignar recursos para los desarrolladores.
En este sentido, los proveedores de nube ofrecen dos métodos principales dentro del esquema de la informática sin servidores, llamados “Function as a Services” (FaaS) y “Backend as a Services” (BaaS).
El primer método, “Function as a Services” (FaaS), le permite a los desarrolladores aplicar micro servicios cuando escriben y actualizan los diferentes códigos a implementar en la nube, simplificando con esto la incorporación de datos, la reducción de los tiempos de ejecución, así como, la gestión oportuna del proveedor.
En segunda instancia, el método “Backend as a Services” (BaaS), se fundamenta en la prestación de servicios a terceros basado en la Interfaz de Programación de Aplicaciones (API) establecida por el proveedor, destacándose entre ellos, las bases de datos, los servicios de autenticación, y los procesos de cifrado.
Finalmente, vale la pena destacar que grandes proveedores de nube funcionan bajo la modalidad “Function as a Services” (FaaS), como por ejemplo AWS Lambda de Amazon, Azure Functions de Microsoft, IBM Cloud Functions y Google Cloud.
Conclusión
Sin lugar a dudas el Severless Computing, ha producido un impacto significativo en el mundo de la informática, al permitir que los desarrolladores se enfoquen en la creación de software sin tener que preocuparse por la administración de las aplicaciones ni por el código de producción de las mismas, ya que será el proveedor de la nube el encargado de administrar de manera eficiente los recursos necesarios para esa importante actividad.
¿Querés conocer más sobre el tema? Visitá nuestra página IT Continuity para entender más sobre los servicios que ofrecemos relacionados a la infraestructura, y Software Development, para aquellos relacionados a desarrollo a medida.