A estas alturas del avance de la tecnología, la mayoría de los usuarios tienen una idea más o menos precisa de lo que significa “trabajar en la nube”. Tal y como comentábamos en un artículo anterior, todos tenemos nuestra cuenta de correo de Gmail o Hotmail, subimos nuestras fotos a Mega o Dropbox, escuchamos música en Apple Music o Spotify… y nos estamos acostumbrando a realizar pagos mensuales por diferentes servicios, como aplicaciones de running o música.
Sin embargo, cuando empezamos a entrar en denominaciones como IaaS (Infraestructure as a Service), SaaS (Software as a Service) o PaaS (Platform as a Service), incluso a los que estamos en el sector se nos hace difícil estar al tanto de los últimos avances. El crecimiento exponencial de los modos de distribución de servicios y nuevos productos nos exige un esfuerzo adicional para poder aconsejar a nuestros clientes.
A modo de resumen: la infraestructura como servicio (IaaS) proporciona a nuestros clientes máquinas virtuales o almacenamiento bajo demanda, con una gran flexibilidad en cuanto a escalabilidad se refiere; y el software como servicio (SaaS) simplemente implica el hosting y disposición del software en cuestión en la nube, de forma que no tenemos que preocuparnos de su gestión local y el acceso se realiza normalmente a través de nuestro navegador.
Pero ¿ocurre lo mismo cuando hablamos de plataforma como como servicio (PaaS)? ¿Qué es exactamente? ¿Quiénes son los grandes actores en este mercado? Vamos a ver si logramos hacer que todo esto quede algo más claro en las próximas líneas de este artículo.
¿Qué es PaaS?
Pues, efectivamente, parece que hay cierta confusión alrededor de los servicios englobados dentro de lo que denominamos PaaS. Viene a ocurrir lo mismo que con la denominación “middleware”. “Plataform as a Service” es un conjunto de servicios dirigidos a desarrolladores que les ayudan a desarrollar y probar aplicaciones sin tener que preocuparse por la infraestructura subyacente.
Los departamentos de desarrollo poco o nada tienen que ver con los de sistemas. No quieren tener que preocuparse por el aprovisionamiento de servidores, almacenamiento o copia de seguridad asociados con el desarrollo y lanzamiento de una aplicación. Su interés primordial reside en la creación del código, el establecimiento de procesos de testeo del software, el lanzamiento de la aplicación, y en la programación de nuevas funcionalidades y actualizaciones para corregir los bugs que, inevitablemente, se presentarán cuando se realice un uso intensivo de la misma por parte del cliente.
Por tanto, todo lo relacionado con configuración de servidores debe hacerse de forma automática y transparente en segundo plano, y ésa es la promesa de PaaS: una capa de virtualización, cálculo y almacenamiento. Todo ese trabajo de configuración de la infraestructura es exactamente lo que los desarrolladores no quieren hacer. PaaS funciona en la parte superior de IaaS y hará todo ese trabajo de forma automática.
¿Cuáles son las ventajas más importantes de PaaS?
- Reduce el tiempo de programación: los componentes de aplicación preprogramados que están integrados en la plataforma (flujos de trabajo, servicios de directorio, características de seguridad, búsqueda, etc…) hacen que no sea necesario realizar tareas que vayan más allá de la integración de los mismos.
- Permite la utilización de herramientas de mayor sofisticación sin sobrecoste significativo: los modelos de pago por uso permiten utilizar temporalmente herramientas de inteligencia empresarial y análisis cuya compra encarecería enormemente el desarrollo; permite aportar a los equipos de desarrollo nuevas características sin necesidad de contratar personal especializado.
- Mismo entorno para el desarrollo completo de la aplicación: todo el ciclo de vida completo de las aplicaciones web sin tener que cambiar de entorno integrado (compilación, pruebas, implementación, administración y actualización).
- Desarrollar para varias plataformas (incluidos los dispositivos móviles) con más facilidad: algunos proveedores de servicios ofrecen opciones de desarrollo para varias plataformas, como PC, dispositivos móviles y exploradores, lo que agiliza y facilita el desarrollo de aplicaciones multiplataforma.
- Distribución geográfica de los equipos de programación: el acceso al entorno de desarrollo se produce a través de Internet, por lo que los equipos de desarrollo pueden colaborar en proyectos incluso si los miembros del equipo se encuentran distribuidos geográficamente.
¿Cuál es la diferencia entre PaaS y middleware?
Middleware es una capa de software que ofrece características sofisticadas a los desarrolladores (transacciones, seguridad, clústering…) para que puedan concentrarse en crear sus aplicaciones personalizadas y no tener que programar ese tipo de funcionalidades “estándar”. Pero el middleware es sólo un software “estático” en el sentido de que todavía tiene que configurarlo, implementarlo en servidores, administrarlo y monitorizarlo.
PaaS es un “superconjunto” de middleware y ofrece todos estos servicios de middleware a los desarrolladores, además de cubrir los aspectos operativos de los que normalmente se ocupaba la sección de sistemas.
¿Qué están haciendo los principales actores del mercado?
Las cuatro grandes empresas de middleware Java son IBM, Oracle, VMware y Red Hat, y es muy interesante analizar sus estrategias PaaS. Dan por sentado que el mercado se encamina a marchas forzadas hacia la nube, aunque actualmente su foco está en los data center privados.
VMWare realizó hace ya unos años un movimiento estratégico creando Cloud Foundry, dentro de la iniciativa Pivotal Software (servicios variados de Contenedores, Bases de Datos, Big Data, Mobile…). Aunque todavía presentan cierta dicotomía sobre el modelo y la provisión de servicios.
Salesforce adquirió Heroku, una de las primeras plataformas de computación en nube (inicialmente para dar soporte en Ruby pero que luego ha evolucionado también a Java, Node, Python, Scala…). En cuanto a la otra plataforma de Salesforce, Force.com, su lenguaje propietario ha sido diseñado específicamente para crear aplicaciones que se ejecuten en la plataforma CRM de Salesforce.
Y, por supuesto, la gran apuesta de Microsoft es Azure, tanto a nivel de IaaS como de PaaS. Ya en 2008 realizó sus primeros pasos, alcanzando unas funcionalidades que nos permiten desde instalar cualquier CMS (WordPress, Drupal o Joomla) o framework (Django, CakePHP…). Y ha conseguido un hito extremadamente relevante en el mundillo del desarrollo: atraer a desarrolladores “anti-Microsoft”, que empiezan a utilizar estos servicios como backend de sus aplicaciones sin tener que picar código utilizando los de Microsoft.
Otros grandes fabricantes como IBM y Oracle están intentando posicionarse también como proveedores de PaaS, pero es posible que hayan tomado la decisión demasiado tarde. De cualquier modo, nada como el futuro próximo para ver la evolución del mercado.