La plataforma como servicio (PaaS) es un ambiente de cómputo al que se obtiene acceso (según sea necesario) a través de una red de un proveedor de servicios. PaaS se usa para desarrollar y ejecutar software como alternativa al diseño, a la creación y a la instalación de un ambiente interno de desarrollo y producción.
¿Cómo funciona la PaaS?
La PaaS permite la creación y la implementación de software de aplicaciones web sin el costo y la complejidad de comprar y administrar hardware, software operativo ni utilidades subyacentes. El ambiente de PaaS proporciona el agrupamiento de recursos de TI completo como un servicio de un proveedor de servicios a través de Internet. Proporciona todas las instalaciones necesarias para soportar el ciclo de vida completo de creación y provisión de aplicaciones web.
¿Qué es una Plataforma como Servicio (PaaS)?
Sabiendo que estamos tratando con un concepto todavía en crecimiento, en este artículo vamos a ver una breve introducción a PaaS, sus beneficios y alternativas actuales.
Definición de PaaS
Las soluciones PaaS son plataformas de software para las cuales la herramienta de desarrollo en si misma está alojada en la nube y se accede a través de un navegador web. Con PaaS, los desarroladores pueden construir aplicaciones web sin tener que instalar ninguna herramienta adicional en sus computadoras, y luego despliegan estas aplicaciones sin necesidad de tener ningún concocimiento administrativo especializado.
McKinsey & Company, en su informe "La guerra de las plataformas emergentes" del 2008, definió a PaaS como "IDEs basados en la nube que no sólo incorporan a lenguajes de programación tradicionales, sino también que incluyen herramientas para el desarrollo con mashups".
¿Por qué PaaS es diferente?
La alternativa a PaaS es desarrollar aplicaciones web usando herramientas de desarrollo de escritorio, como Eclipse o Microsoft Access, y luego desplegar manualmente estas aplicaciones a un proveedor de nube, como Amazon EC2.
Las plataformas PaaS también tienen diferencias funcionales respecto a las plataformas de desarrollo tradicionales. Estas diferencias incluyen:
- Herramientas de desarrollo múltiples inquilinos: las herramientas de desarrollo tradicional son para un único usuario - un estudio basado en la nube debe soportar múltiples usuarios, cada uno de los cuales tiene múltiples proyectos activos.
- Arquitectura de despliegue de múltiples inquilinos: la escalabilidad suele no ser una preocupación durante el esfuerzo inicial de desarrollo y se deja para que lo gestionen los administradores de sistemas cuando se despliega el proyecto. En PaaS, la escalabilidad de la aplicación y de sus capas de datos debe ser intrínseca a la solución (por ejemplo, el balanceo de carga y la disponibilidad tienene que ser elementos básicos de la plataforma de desarrollo).
- Gestión integrada: las soluciones de desarrollo tradicionales no suelen preocuparse con el monitoreo del entorno de ejecución, pero en PaaS, se tiene que soportar la habilidad de monitore desde la misma plataforma de desarrollo.
- Facturación integrada: las ofertas PaaS requieren mecanismos de facturación basados en la utilización, que son únicos para el mundo PaaS.
Falso PaaS - 4 formas de determinar si realmente es PaaS
Una solución PaaS tiene que, como mínimo, incluir los siguientes elementos:
- Un entorno de desarrollo basado en un navegador - si tenés que instalar algo en tu computadora para desarrollar aplicaciones, entonces no es PaaS.
- Despliegue transparente hacia el entorno de ejecución - idealmente, el desarrollador debería poder desplegar su aplicación PaaS con un solo click. Si hay que hablar con alguna persona para instalar a la aplicación, entonces no es PaaS.
- Herramientas de monitoreo y gestión - aunque las soluciones basadas en nubes son muy convenientes en cuanto a costos, puede resultar complicado gestionarlas y escalarlas sin buenas herramientas. Si hay que construir o agregar una herramienta de monitoreo propia para poder escalar la aplicación, entonces no es PaaS.
- Facturación basada en el uso - lo que hizo que PaaS fuera popular es que evita pagar por adelantado. Si no podés pagar con la tarjeta de crédito basándote en el uso que hacés de la plataforma, entonces no es PaaS.
Los beneficios de PaaS están en la cada vez mayor cantidad de personas que van a poder desarrollar, mantener y desplegar aplicaciones web. Resumidamente, PaaS permite democratizar el desarrollo de aplicaciones web, de la misma forma en que Microsoft Access democratizó el desarrollo de aplicaciones cliente/servidor.
En la actualidad, construir aplicaciones web requiere desarrolladores expertos con 3 habilidades especializadas:
- Desarrollo del backend en el servidor (por ejemplo, Java / J2EE)
- Desarrollo del frontend en el cliente (por ejemplo, JavaScript / Dojo)
- Administración de sitios web
PaaS ofrece el potencial para que desarrolladores generales puedan construir aplicaciones web sin tener un expertise especializado. Esto le abre la puerta a toda una geneción de desarrolladores MS Access, Lotus Notes y PowerBuilder para que pueda comenzar a construir aplicaciones web sin una curva de aprendizaje enorme.