Diferencias entre IaaS, CaaS, PaaS, FaaS y SaaS
3 minutos de lectura
Fecha: 28/11/2020
Con la llegada de la nube hemos tenido que aprender una serie de términos que no estabamos acostumbrados a escuchar. Algunos de ellos son los que aparecen en el título de esta entrada.
Aunque pueden parecer un trabalenguas son bastante sencillos de entender ya que todos hacen referencia a lo mismo, al nivel de gestión que tenemos nosotros y el nivel que delegamos en la nube.
Para entender esto hemos de pensar en que cuando hablamos de una nube, hablamos de un proveedor de servicios, y estos servicios que nos ofrecen son informáticos, lo que implica que ellos ponen a nuestra disposición una serie de equipos (granjas de servidores, enormes centros de procesamiento de datos con miles de ordenadores), para que nosotros no tengamos que comprarlos.
Al nosotros «alquilar estos recursos» nos ahorramos tener que comprar toda esa infraestructura, las licencias, los programas, etc… Y tambien nos ahorramos el mantenimiento asociado a todo ello.
Pero dentro de todos estos servicios podemos contratar que ellos se hagan cargo de más o gestionar nosotros sus máquinas a un nivel más bajo. Obviamente abstraernos de la gestión de ciertas cosas puede ser muy interesante, pero tengamos tambien en cuenta que cuanto mas les delegamos, mas nos van a cobrar.
Dicho esto, vamos a explicar estos términos, que por cierto los he puesto por orden de abstracción.
IAAS
Son las siglas de infraestructura como servicio (Infrastructure as a service). Es dentro de la nube la modalidad más flexible desde nuestro punto de vista, ya que ellos simplemente nos dan el hardware y nosotros lo podemos gestionar a nuestro gusto.
Como contrapunto el que nosotros gestionemos todo implica que vamos a perder más tiempo poniendo a punto este hardware. Es muy similar a tener las máquinas físicas delante.
CAAS
Son las siglas de contenedor como servicio (Container as a service). Es algo intermedio entre IAAS y PAAS, te dan la infraestructura y tambien te dan la plataforma pero en este caso esta virtualizada dentro de un contenedor.
Si no sabes de que va esto de los contenedores busca sobre Docker y Kubernetes, y esto es lo que se proporciona en esta capa de abstracción.
PAAS
Son las siglas de plataforma como servicio (Platform as a service). Aquí además de las maquinas tenemos provisionada ya la plataforma lo que quiere decir que el sistema operativo y sus actualizaciones o los servidores web ya vienen de serie y no tenemos que preocuparnos por ello.
FAAS
Son las siglas de función como servicio (Function as a service). Es el mayor nivel de abstracción si vas a usar la nube para desarrollar, de hecho a esto se le llama también Arquitectura serverless, es decir sin servidor.
Se le puede considerar así no porque no tenga detras un servidor (todo servicio alojado en la nube lo tiene) pero te desacopla totalmente de la gestión de él, te da igual todo lo referente a él, tu solo sabes que tienes un espacio donde como desarrollador subes tu código y lo pruebas.
Esto tiene como gran ventaja que solo gestionas codigo y solo te preocupas de su funcionalidad, y es especialmente interesante cuando estas trabajando con microservicios.
SAAS
Son las siglas de software como servicio (Software as a service). Esto quiere decir que además de tener la plataforma ellos nos dan la capa de software que necesitamos, por este se nos cobra la licencia correspondiente, por ejemplo Office 365 si nos hiciera falta una suite de ofimatica.
Voy a dejaros una captura de una página muy buena para entender todo esto, el autor es Paul Kerrison y se llama pizza as a service, la comparación que hace es buena y bastante divertida.
Pero la verdad es que si no es aquí la documentación de Azure es super completa igual que la de AWS (Más les vale que lo sea porque son los principales interesados en que empieces a desarrollar en la nube xD).
Por si acaso tambien os dejo esta otra, que es muy clara.