PaaS (Platform as a Service)

Resumen de una línea

Modelo de computación en la nube que proporciona una plataforma completa para desarrollar, ejecutar y gestionar aplicaciones sin preocuparse por la infraestructura subyacente.

Definición

PaaS = Plataforma como Servicio. Abstracción que oculta la complejidad de infraestructura y proporciona herramientas para que desarrolladores desplieguen aplicaciones directamente.

El desarrollador se enfoca en código, la plataforma gestiona todo lo demás (servidores, networking, almacenamiento, escalado).

Capas de Computación en Nube

IaaS (Infrastructure as a Service)
└─ Máquinas virtuales, almacenamiento, networking
   (Ejemplo: AWS EC2, OpenStack, Azure)

PaaS (Platform as a Service)
└─ Lenguajes, frameworks, bases de datos gestionadas
   (Ejemplo: Heroku, OpenShift, Google App Engine)

SaaS (Software as a Service)
└─ Aplicaciones completamente gestionadas
   (Ejemplo: Slack, Salesforce, Google Docs)

Características de PaaS

Abstracción

  • Desarrollador: git push → aplicación desplegada
  • Infraestructura: gestión automática (servidores, escalado, networking)

Ciclo de Vida Automatizado

Código → Git webhook → Build → Test → Deploy → Ejecutando

Despliegue Múltiple

  • oc new-app my-app:latest (desde imagen)
  • oc new-app https://github.com/user/repo (desde código)
  • oc new-app --dockerfile (desde Dockerfile)

Escalado Automático

  • HPA (Horizontal Pod Autoscaler): ajusta réplicas según carga
  • Ninguna intervención manual

Integración CI/CD

  • Webhooks automáticos en repositorios Git
  • Builds sin intervención
  • Despliegues sin intervención

Ventajas

VentajaDescripción
Time-to-marketDesplegar en minutos, no horas/días
AutomatizaciónCI/CD nativo, builds, deployments
EscalabilidadDe 1 usuario a millones sin cambiar código
AbstracciónDesarrolladores ignoran infraestructura
MantenimientoActualizaciones de plataforma automáticas
SeguridadRBAC, redes aisladas, secretos gestionados

Desventajas

DesventajaDescripción
Vendor lock-inDifícil migrar a otra plataforma
Control limitadoNo puedes optimizar detalles bajos
SobrecostosMenos control = a veces más caro que IaaS
Curva de aprendizajeModelo diferente a desarrollo tradicional

Implementaciones PaaS

  • OpenShift (Red Hat) — Kubernetes + PaaS
  • Heroku — Cloud pública fácil (pero cara)
  • Google App Engine — GCP PaaS
  • AWS Elastic Beanstalk — AWS PaaS
  • Cloud Foundry — Open source PaaS

Comparación: IaaS vs PaaS vs SaaS

ResponsabilidadIaaSPaaSSaaS
AplicaciónDeveloperDeveloperProveedor
DatosDeveloperDeveloperProveedor
RuntimeDeveloperProveedorProveedor
MiddlewareDeveloperProveedorProveedor
Base datosDeveloperProveedorProveedor
SODeveloperProveedorProveedor
VirtualizaciónDeveloperProveedorProveedor
ServidoresProveedorProveedorProveedor
AlmacenamientoProveedorProveedorProveedor
NetworkingProveedorProveedorProveedor

Relaciones

Conecta con

  • OpenShift — Implementación PaaS basada en Kubernetes
  • Kubernetes — Orquestador subyacente (abstracción más baja)
  • Contenedores — Unidad de despliegue en PaaS

Parte de

  • Cloud Computing (junto con IaaS, SaaS)

Comparado con

  • IaaS: Más control, más complejo (AWS, OpenStack)
  • SaaS: Menos control, más simple (Slack, Salesforce)

Fuentes