PaaS y Serverless: diferentes pero no excluyentes

Similar a las PaaS, Serverless facilita el manejo de la infraestructura, pero no brinda componentes para la implementación.

El desarrollo de aplicaciones informática ha ido cambiando de contexto con el crecimiento de los servicios y opciones que ofrece la nube.

Y es que entre sus múltiples ventajas se encuentran:

  • El acceso a recursos preconfigurados.
  • La disponibilidad de la información.
  • La accesibilidad a espacios más idóneos.
  • La agilidad para compartir datos, archivos, código fuente, etc.

No es menos cierto que, aunque con un mayor nivel de abstracción, el desarrollo desde o para la nube ha ido ganando espacio.

Teorizando un poco, se puede resumir que la nube es una red que contiene servidores, plataformas, infraestructura, hardware y una cantidad cada vez mayor de servicios que pueden ser fácilmente consumidos.

A partir de este auge, se han generado diferentes tecnologías para acceder a los distintos recursos en la nube.

Hoy quiero hablar sobre dos de ellas que, aunque tienen puntos en común, sus objetivos son diferentes:

  • PaaS
  • Serverless

PaaS

La arquitectura en la nube establece varios fragmentos, dedicados a funciones específicas:

  • Hardware,
  • Aplicación y
  • Plataforma

Lo más común que conocemos es la plataforma, pero cada uno de estos fragmentos son importantes y generan, de conjunto, diferentes métodos de entrega de recursos y servicios.

En un mismo orden queel de los fragmentos mencionados, los métodos existentes son:

  • software como servicio,
  • plataforma como servicio e
  •  infraestructura como servicio.

PaaS responde a la capa media, asociada a la plataforma como servicio.

En este caso se corresponde a la creación de un ambiente de desarrollo abstracto, que los programadores pueden utilizar para construir sus sistemas.

Este tipo de servicio contiene un paquete completo de módulos.

Estos módulos contienen previamente configurado funcionalidades para la persistencia de los datos, la mensajería instantánea en la aplicación, la autenticación, o cualquier otro componente que pueda ser útil a varios tipos de sistemas.

Pueden encontrarse también APIs o estructuras de sistema previamente construidos que son integrados a las tecnologías que posee el equipo, y que pueden ser utilizadas en varias etapas del  desarrollo. Por ejemplo:

  • Diseño de la aplicación: incorporar un patrón o definir una arquitectura de software
  • Desarrollo: reutilizar código fuente, funcionalidades o componente ya existentes.
  • Pruebas: recrear comportamientos de algoritmos u objetos que se desean incluir en sistemas a desarrollar.

Visto de manera general, cuando se comienza a desarrollar sobre una plataforma como servicio, se pueden generar un amplio conjunto de funcionalidades con un mismo punto de partida.

Se puede desarrollar con más eficiencia y reducir los errores comunes.

La mayor desventaja de PaaS es que genera todo un conjunto de facilidades para el desarrollo y herramientas que agilizan la programación, pero el que controla la capacidad para desplegar las aplicaciones es el proveedor del servicio.

De esta forma, se puede controlar lo que se incluye en el software, trabajar en él incluso de manera local, pero solo puede decirse qué infraestructura se va a utilizar en correspondencia con la disponibilidad existente.

paas PaaS y Serverless: diferentes pero no excluyentes

PaaS: clasificaciones

Las plataformas que existen son varias. Se clasifican de diferentes maneras, incorporando según su tipo las herramientas adecuadas a los desarrollos para los que fueron creada.

  • Públicos, privados e híbridos
  • Mobile PaaS
  • PaaS Abierto

PaaS Públicos, privados e híbridos

De estas clasificaciones la primera que ostentó PaaS fue la condición pública, generada por el software como servicio, de manera que se brindaban las herramientas para mediar entre estos y la infraestructura.

Luego surgieron los PaaS privados y los híbridos.

Los PaaS privados permiten ser descargados y se instalan localmente en la empresa de desarrollo de software.

Se genera la o las aplicaciones en los nodos que se desee y el PaaS entonces se encarga de organizar los componentes y la base de datos de la aplicación.

En otras palabras, el PaaS agrupa todo lo común de la aplicación y su despliegue, reduciendo los recursos de las máquinas locales para manejar los sistemas, que en este caso solo deben consumir los servicios de la plataforma creada.

En el caso de los híbridos, como indica su nombre, recoge algunas características de los PaSs privados y de los públicos.

En estos casos lo habitual es integrar todo en una plataforma única, y utilizar un despliegue local y dedicado o si se desea público.

Mobile PaaS

En este caso la deducción es un mecanismo acertado.

Los Mobile PaaS son las plataformas que contienen los componentes y recursos para facilitar el desarrollo de aplicaciones móviles.

Favorece el despliegue de este tipo de sistemas y flexibiliza el acceso desde un punto único a varias de estas aplicaciones.

PaaS abierto

Este es el tipo de PaaS creado bajo el enfoque de código abierto.

A diferencia de otros ya mencionados, no genera una infraestructura, sino que permite elegir el lenguaje, el tipo de base de datos o sistema operativo.

Da la libertad al usuario de desplegar aplicaciones ya creadas para otras empresas de manera local y que de esta forma puedan utilizar los elementos de estas que necesiten.

Serverless

Similar a las PaaS, Serverless facilita el manejo de la infraestructura y sus recursos para apoyar a sus clientes en la administración de sus servidores.

La diferencia radica en que en este caso no se brindan componentes para la implementación, sino que se genera un tipo de desarrollo enfocado a acceder a estas plataformas.

Aunque su nombre significa Sin Servidor, no es tan así, pues los proveedores del servicio sí utilizan servidores para ejecutar el código para los desarrolladores.

Serverless PaaS y Serverless: diferentes pero no excluyentes

En este caso, el enfoque de esta tecnología se inclina más hacia opciones de despliegue del software.

El equipo de desarrollo solo debe preocuparse por crear el software y Serverless se encarga de gestionar la capacidad, configuración, administración, el mantenimiento, VM, o servidores físicos.

De esta manera no se genera sobrecarga en el hosting, pues cuando una aplicación no está en uso, no se disponen recursos para ella.

En este ámbito son muy conocidos las Bases de datos Serverless, como:

  • Amazon Aurora
  • FireBase
  • Azure Data Lake

Y plataformas como:

  • AWS Lambda
  • Microsoft Azure
  • Google App Engine

¿PaaS o Serverless?

La utilización de estas herramientas no es excluyente.

Todo depende del objetivo que persiga la empresa, las características que desee potenciar y las necesidades de desarrollo que posean.

La siguiente tabla te ayudará a comprender mejor las diferencias entre PaaS o Serverless y sus ventajas.

PaaSServerless
Genera el espacio para consumir código existente, habitualmente en una misma línea o tecnología, para construir los sistemas.Permite el acceso a esas plataformas.
Reduce el tiempo de desarrollar componentes que ya existen.Reduce los costes de almacenar los datos de los sistemas desarrollados.
Potencia el control del entorno de despliegue definiendo qué necesita.Controla los recursos del entorno de despliegue.
Permite configurar la escalabilidad de las aplicaciones.Genera la escalabilidad de manera automática.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.