Tipos de Cloud Computing: *aaS

Existen decenas, si no centenares, de excelentes artículos, presentaciones, documentos e incluso vídeos que explican maravillosamente los tres modelos de servicio cloud computing. Algunos buenos ejemplos son este post  de nubeblog, éste de Daniel Levi, el de Marc Fabregat, o este otro de CloudAve.

Sus diferencias se basan, principalmente, en que servicios de la pila IT -desde ciclos de CPU o almacenamiento en disco hasta las aplicaciones finales- se ofrecen.

Volviendo a la definición del NIST:

“Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software…”

Traducción (simplificándolo mucho): el IaaS proporciona recursos hardware sobre los que poder instalar y ejecutar cualquier software base y aplicativos.

“Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based email)…”

En el SaaS, disponemos de la capacidad de uso de aplicaciones pagando por su consumo, sin necesidad de adquirirlas. Los casos típicos son el correo electrónico, la ofimática, o el CRM.

“Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider…”

En este tercer modelo, lo que obtenemos es la capacidad de computación más la infraestructura de software básica para poder desarrollar nuestros propios sistemas de información. Es el caso de GAE (Google Application Engine), o el servicio de Amazon Simple DB.

Dado que la diferenciación en el ámbito del IaaS es cada vez más difícil, que el SaaS está normalmente limitado a aplicaciones no nucleares (core) y que la mayor parte del parque de aplicaciones de las empresas son desarrollos a medida, personalizaciones muy particulares de software empaquetado, o aplicaciones situacionales, mi interés se centra en el PaaS.

Hay una gran e interesante oferta de productos y plataformas que permiten el desarrollo de aplicaciones a medida sin la complejidad que supone instalar y administrar la infraestructura plataforma base, acelerando considerablemente el proceso de construcción. Soluciones como Force.com, o Longjump, son claros ejemplos.

¿Qué es realmente Cloud Computing?

Sobre Cloud Computing, o Computación en la Nube: hay, quizá, demasiadas definiciones, en las que cada cual “arrima el ascua a su sardina”. Y como término relativamente novedoso, está acabando por ser utilizado incorrectamente.

Como punto de partida creo que es bastante ajustada la del NIST (National Institute of Standards and Technology):

“Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction…”

Según la wikipedia -no siempre fuente fiable- es:

“…la capacidad de computación independiente de la localización, en la que servidores compartidos proporcionan recursos, software y datos a otros ordenadores que los soliciten… la evolución natural de la virtualización y de las arquitecturas orientadas a servicios…”

En ambas definiciones se hace mención a recursos compartidos, ubicuidad o acceso a la red, y a servicios bajo demanda. A riesgo de ser condenado por hereje, me planteo: ¿que aporta de nuevo el cloud computing? ¿en que se diferencia del clásico hosting, o de lo que en su día, por ejemplo, IBM llamó “On-Demand“, o T-Systems “Dynamic Services“?

Me atrevería a afirmar que la novedad viene dada por la conjunción de cinco factores:

  • Elevada elasticidad. Gran facilidad para escalar tanto de forma automática como a demanda, las capacidades de computación. En esto juega un importante papel la virtualización.
  • La propiedad de la infraestructura suele ser de un tercero, aunque es diferente en el caso de las nubes privadas, pagándose por uso y nivel de servicio, y bajando por tanto el CAPEX para convertirlo en OPEX.
  • Mínima administración, lo que aísla al “usuario” de la complejidad de la provisión, mantenimiento y soporte de infraestructura, plataforma y servicios complejos.
  • Acceso remoto, pues los servicios suelen suministrarse desde centros de procesamiento ajenos a la empresa, a veces distribuidos y redundantes.
  • Protocolos estándar, como los que proporciona Internet, pues en la mayor parte de los casos es suficiente un navegador para acceder a los servicios contratados.

Ejemplos básicos de cloud computing los tenemos en el correo web, como GMail o Hotmail; infraestructura virtualizada como Amazon WS; o aplicaciones empresariales en la nube, como el CRM SalesForce, o recientemente el de Microsoft.

Pero también lo son Dropbox, WordPress, Office 365, Google Apps o Evernote, y otros cientos de ejemplos más. Las redes de spammers son un ejemplo, negativo, de la potencialidad de la nube para suministrar servicios virtualmente ilimitados -aunque sea sin el consentimiento de quienes los suministran.

 

¿Es realmente esto lo que tú entendías por Cloud Computing?