La tendencia XaaS: Todo como Servicio

En el artículo anterior se definieron los conceptos de la Nube y Cloud Computing, y se repasó rápidamente la evolución de tecnologías que favorecieron el surgimiento de dicho paradigma. En el presente artículo se definirán los diferentes conceptos “*aaS” relacionados con el concepto de cloud computing (SaaS, PaaS, IaaS, etc.). SaaS digamos que ya es un término hasta cierto punto conocido, pero ¿y los demás? Eso es lo que se aclarará en este artículo.

Los servicios de computación en la Nube, así como muchas otras implementaciones basadas en SOA, caen sobre el enfoque de servicios compuestos (composite services), una característica que en inglés se describe como “composable”. Wikipedia define a un “highly composable system” como un sistema que “provee componentes recombinables que pueden ser seleccionados y ensamblados en varias combinaciones diferentes para satisfacer los requerimientos específicos del usuario. Los atributos esenciales que definen que un componente sea composable consisten en que sea: auto-contenido (modular), esto es, que pueda ser desplegado independientemente, puede cooperar con otros componentes, pero los componentes dependientes son reemplazables. Debe ser también stateless, es decir, que no debe manejar estado, lo que significa que trata cada petición como una transacción independiente, sin relación con alguna petición anterior.”

CloudComputingLayers

Este gráfico muestra las 5 capas lógicas de una plataforma de cloud computing identificadas en el artículo Toward a Unified Ontology of Cloud Computing, de Lamia Youseff, Maria Butrico y Dilma Da Silva, un muy buen artículo que aporta una definición de la separación en categorías de los componentes de los entornos de cloud computing. A continuación una breve descripción de las diferentes categorías de componentes recombinables generalmente aceptados que contribuyen a brindar servicios de computación en la Nube, y que se encuentran presentes en todos (o casi todos, al menos por el momento) los proveedores de cloud computing:

Software como Servicio:

El término Software as a Service (SaaS) es comúnmente utilizado para referirse a software en la Nube. Sin embargo, a pesar de que la mayoría de los sistemas de software como servicio son servicios en la Nube, no todos lo son.

Application as a Service es sinónimo de SaaS. Este modelo consiste en el despliegue vía Web de una aplicación de software comercial, de manera que esté disponible para los usuarios finales a través de la Internet a través de un navegador Web, con un modelo de precios basado en suscripción o en uso, a diferencia de una licencia vitalicia tradicional para una versión en particular. Además, como usuarios de SaaS, no nos interesa dónde está alojada la aplicación, sobre qué Sistema Operativo se ejecuta, o si fue desarrollada utilizando .NET, Java, PHP u otra tecnología. Lo mejor de todo: no se requiere ninguna instalación en el entorno cliente.

Los ejemplos de SaaS incluyen aplicaciones como Microsoft Office Live, Microsoft Exchange Online, Microsoft SharePoint Online, Microsoft Dynamics CRM Online, GMail y SalesForce.com. Si bien Microsoft fue de los primeros en mostrar su apoyo al paradigma que representa SaaS con servicios Web basados en SOAP, ha ido migrando gradualmente para promover su visión de S+S (Software plus Services).

Software más Servicios:

El modelo de Sofware plus Services (S+S) propuesto por Microsoft como alternativa a SaaS consiste en la combinación de las capacidades de ejecución local de software con las de software como servicio. De esta manera, el software como servicio pasa a ser un complemento de las aplicaciones on premise para proveer algún valor agregado (mejor experiencia, más características, contenido adicional, etc.).

Algunos de los beneficios más importantes de este modelo sobre el de SaaS consisten en:

· Las aplicaciones on premise ofrecen por lo general una mejor experiencia que las aplicaciones Web. Tecnológicamente hablando, Por lo general es más simple brindar una muy buena experiencia de usuario en una aplicación local que una experiencia regularmente buena en una aplicación Web, lo cual se debe al funcionamiento del protocolo HTTP subyacente en Web. Esto se puede conseguir con tecnologías como AJAX, pero personalmente lo considero un esfuerzo adicional.

· En el modelo S+S un usuario puede trabajar desconectado localmente y sincronizar luego su información con la de la Nube, lo cual es un factor importante para usuarios móviles como vendedores o trabajadores en campo.

· Si la privacidad de la información es un tema delicado para la organización, en el modelo de S+S el proveedor puede proveer a sus usuarios una opción de mover sus datos no privados a la Nube y mantener la información sensible de manera local sin que eso impacte en las capacidades de la solución de software.

· Para los fabricantes de soluciones de software, el modelo de S+S se torna bastante atractivo debido a que les brinda nuevos modelos de negocio le permiten monetizar sus soluciones con estrategias de precios basadas por ejemplo en transacciones, suscripciones, publicidad, sincronización, respaldo de información, etc.

· En el modelo S+S se puede aprovechar la potencia de procesamiento del equipo cliente, justificando la inversión en el mismo. De acuerdo con la Ley de Moore, con los constantes avances tecnológicos, cada vez se tienen mejores equipos y más baratos, me parece que habría que aprovecharlos.

Uno de los ejemplos más interesantes de S+S es el EC2 de Amazon Web Service que corre en Windows Server 2003 y SQL Server [Express] 2005 con almacenamiento de datos de EBS (Elastic Block Storage) y almacenamiento de S3 para AMIs (Amazon Machine Images) y respaldos de instantáneas de EBS.

Almacenamiento como Servicio:

Debido a que la abstracción de nuestro hardware en la Nube no es tan simple como reemplazar nuestros servidores con la virtualización ofrecida por el proveedor de cloud computing, sino que también es necesario reemplazar el sistema de almacenamiento físico. Este es el motivo por el cual el almacenamiento en la Nube es de vital importancia en una implementación de cloud computing. Este modelo nos permite cargar nuestros datos (documentos, imágenes, etc.) hacia la Nube sin tener que preocuparnos de cómo se almacena o de las estrategias de backup o de alta disponibilidad utilizadas por nuestro proveedor de servicios para garantizar el acceso a nuestra información cuando la necesitemos.

El ejemplo más simple de almacenamiento como servicio es aquel de tipo Files as a Service (o FaaS por sus siglas en inglés), permite a los usuarios almacenar archivos de diferentes tipos de datos en un sistema de archivos jerárquico altamente escalable y recuperarlos a través de la Internet utilizando los diferentes tipos MIME (Multipurpose Internet Mail Extension). FaaS fue uno de los primeros servicios disponibles basados en la Nube. Diversas compañías en Internet(como SmugMug, DropBox, Ozmo, y HolaServers) están aprovechando las capacidades de FaaS provistas por el servicio S3 (Simple Storage Service) de Amazon Web Services (AWS) para proveer sobre esa plataforma sus propios servicios para almacenar imágenes y otros archivos, y le brindan acceso a los usuarios de manera gratuita o a cambio de un pequeño monto. Windows Live SkyDrive de Microsft es un desde hace ya unos años un proveedor de FaaS que le brinda actualmente a los usuarios hasta 25GB de almacenamiento libre de cargos.

El término Data Storage as a Service o Database as a Service implica el almacenamiento estructurado de datos con al menos algunas de las características de un sistema de gestión de bases de datos relacionales (RDBMS), como capacidades de consulta, índices de llave primaria y foránea, y asociaciones de entidades a través de JOINs. Los servicios en la Nube comerciales, como Amazon Web Services (AWS), Google App Engine (GAE) y Windows Azure, ofrecen tablas EAV (Entity-Attribute-Value) indexadas y lenguajes de consulta que tienen alguna relación con SQL. Microsoft ofrece con SQL Azure Database (SADB) “servicios de bases de datos altamente escalables, expuestas en Internet y distribuidas en la Nube para el almacenamiento y procesamiento de consultas relacionales.” (ver referencia).

SADB, Amazon SimpleDB, y el DataStore de GAE ofrecen características avanzadas que los califican como Databases-as-a-Service (DBaaS). Las características de estos sistemas de bases de datos en la Nube, que por el momento son limitadas, van a ir incrementándose con el tiempo, conforme los proveedores de dichos servicios van actualizando su plataforma.

Plataforma como Servicio:

Los componentes de Platform as a Service (PaaS) son todos aquellos orientados al desarrollo y despliegue de aplicaciones sobre la plataforma de la Nube. Estos componentes proveen los medios necesarios para soportar el ciclo de vida de construcción y entrega de servicios y aplicaciones Web sobre la nube. Usualmente comprende por lo menos estos tres elementos distintos:

❑ Componentes de tipo Herramientas como Servicio o Tools as a Service (TaaS), que provee herramientas de desarrollo y lenguages basados en la Web, como Microsoft Visual Studio (para Visual C#, Visual Basic, IronPython y IronRuby) o la alternativa de código abierto Eclipse (principalmente para Java). Las Herramientas de Windows Azure para Visual Studio 2008 (y las recientemente lanzadas para Visual Studio 2010) incluyen plantillas para crear roles Web y roles de trabajo, y servicios de flujos de trabajo secuenciales en la Nube, que pueden ejecutarse bajo una instancia local (desarrollo) o en la Nube (staging/producción) de Windows Azure (conocida como la Fábrica). Google App Engine ofrece soporte de una variante de Python y Java, así como los frameworks webapp y Django.

❑ Una plataforma virtualizada de ejecución de aplicaciones que permita ejecutar aplicaciones en la Nube, típicamente sobre una IaaS y entregada como SaaS. Amazon EC2 tiene AMIs pre-configuradas para distribuciones de 32 bits y de 64 bits de Linux, Windows Server 2003 R2 con SQL Server 2005, y bases de datos Oracle, así como OpenSolaris de 64 bits. Windows Azure corre sobre Windows Server 2008 con una version personalizada del hipervidor Hyper-V de Microsoft. Google App Engine ofrece entornos de ejecución de Python y de Java por separado.

❑ Componentes de tipo FaaS para persistir el estado en tiempo de ejecución de la aplicación. En el EBS (Elastic Block Store) de Amazon Web Services, se utilizaría SimpleDB o S3, en el entorno de GAE se utilizaría BigTable, o las tablas y blobs del Servicio de Almacenamiento de Windows Azure.

Infraestructura como Servicio:

En el artículo anterior se mencionó que a través de la Nube su podía consumir servicios, que podían consistir en software o hardware. El concepto de infraestructura como servicio aterriza los principios de TI orientada a servicios.

Los proveedores de Infrastructure as a Service (IaaS) brindan los recursos tradicionales de un centro de datos, como potencia de procesamiento, memoria y almacenamiento de computación, solo que en el caso del cloud computing, estos recursos se encuentran en un ambiente virtualizado sobre una red (típicamente, pero no obligatoriamente, la Internet), y esto lo hace altamente escalable. A las implementaciones de IaaS o PaaS proporcionadas sobre una Intranet se les conoce como nubes privadas.

El modelo de negocio que los proveedores de IaaS utilizan generalmente consiste en un modelo de precios basado en uso o en suscripciones, modelo conocido para el caso particular de IaaS como de utility computing o de computación de utilidad.

Comunicaciones como Servicio:

Communications as a Service es un modelo de outsourcing orientado a las comunicaciones empresariales. Estas comunicaciones pueden incluir los servicios de VoIP, mensajería instantánea, colaboración y aplicaciones de videoconferencia utilizando dispositivos fijos y móviles.

El proveedor de CaaS es responsable por toda la administración y mantenimiento del hardware y el software de comunicaciones. Este provee las capacidades de comunicaciones a través de un entorno orientado a servicios, configurable, programable, predecible y confiable, y que cuenta con seguridad de red, provisionamiento dinámico de overlays de red virtuales para el aislamiento de tráfico o para asignar ancho de banda dedicado, encriptación de comunicaciones, y monitoreo de la red. Todo esto es críticio, pues el proveedor de servicios de CaaS ofrece una calidad de servicio garantizada en base los Acuerdos de Nivel de Servicio (o SLAs por sus siglas en inglés).

Este modelo le permite a las empresas desplegar selectivamente los medios y dispositivos de comunicaciones en un modelo “pay as you go”, según sea necesario, eliminando la gran inversión de capital y los gastos generales en curso para un sistema cuya capacidad a menudo pueden ascender o descender por debajo de la demanda actual. El modelo de CaaS ofrece flexibilidad y capacidad de expansión que las pequeñas y medianas empresas de otro modo no podrían costear, que permite la adición de dispositivos, modos o la cobertura de la demanda. La capacidad de red y conjunto de características se puede cambiar de un día para otro si es necesario para mantener nivelada la funcionalidad con el ritmo de la demanda y no desperdiciar los recursos cuando no se requieran.

Monitoreo como Servicio:

Los componentes de (Monitoring as a Service) MaaS se encargan de monitorear el funcionamiento de la plataforma en la Nube y de notificar al usuario de computación en la Nube de eventos como fallas de disponibilidad de la red, errores, o disminución en las velocidades de la Nube. Por ejemplo, Cloud Status es una simple aplicación para el iPhone que monitorea el estado de Amazon Web Services, Google App Engine y Twitter y reporta si el servicio es normal, tiene problemas, o si está caído. Una implementación de MaaS puede contener componentes de auditoria para la evaluación de vulnerabilidad de la red o para verificar el cumplimiento de los contratos de nivel de servicio (SLAs) y la precisión de los cargos de uso mensuales.

Algunos proveedores de servicios de MaaS, como RightScale, también proveen de automatización del despliegue de instancias para incrementar el número de instancias AMI en ejecución durante picos de demanda del servicio y para reducir el número de las mismas conforme la demanda disminuye.

Todo como Servicio:

EaaS, XaaS, o *aaS son las diferentes siglas asociadas al modelo de Everything as a Service, subconjunto del modelo de cloud computing. Wikipedia describe al modelo propuesto por EaaS como “el concepto de ser capaz de invocar componentes reutilizables y de grano fino de software a través de una red.’’ Lo que falta en esta definición es la interacción orquestada entre los diversos componentes para poder resolver un problema de negocio, que es frecuentemente llamada Integration as a Service.

Del mismo modo que Microsoft es el principal propulsor de S+S, HP es el mayor promotor del modelo de EaaS. Este modelo tiene como propósito principal superar los retos técnicos que surgen al migrar las operaciones de un negocio completamente a Internet, o lo que es lo mismo, a la Nube.

Espero que hayan quedado un poco más claros los diversos conceptos *aaS aquí tratados. El siguiente artículo se tratará acerca de los diversos factores que favorecen o dificultan la adopción del modelo de cloud computing. Hasta la próxima.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *