Luego de publicar diversos artículos de divulgación, vimos la necesidad de entregar un comparativo de plataformas Cloud Computing. Éstas están fundadas en un paradigma tecnológico moderno que ofrece nuevas alternativas a empresas de diversas envergaduras para implementar modelos de negocios innovadores.
Bases de la comparación
Con estos nuevos modelos de negocio las empresas pequeñas pueden hacer uso de las plataformas Cloud Computing disponiendo de la posibilidad de incrementar, tanto progresiva como abruptamente, su capacidad de cómputo y almacenamiento de datos en función de las necesidades y en tiempo real, dando como resultado una oportunidad singular para la competencia de mercado. Además, las arquitecturas orientadas a servicios otorgan grandes beneficios para los sistemas modernos, permitiendo altos niveles de reutilización de funcionalidades, encapsulamiento y nuevas oportunidades para sociedades entre proveedores y consumidores de servicios. En este artículo se analizan y comparan las plataformas Cloud Computing de los principales proveedores de servicios en la nube con el objetivo de encontrar similitudes y diferencias.
A la fecha en la que fue realizado el trabajo original (ver fuente), el mercado de tecnologías de la información contaba con una amplia oferta de plataformas Cloud Computing comercializados por múltiples proveedores. Muchas de las plataformas de estos proveedores proponen servicios análogos que pueden ser explotados con diversos lenguajes de programación y plataformas de desarrollo. Es por ello que se considera necesario realizar una comparación acerca de los servicios y características ofrecidos por los principales proveedores de las tecnologías antedichas, en pos de colaborar a clarificar sobre qué plataforma puede ser conveniente para cada caso, identificando además las fortalezas y debilidades más relevantes de cada una de ellas, así como también las carencias o prestaciones faltantes por parte de cada proveedor de soluciones.
Plataformas Cloud Computing analizadas
Amazon Elastic Compute Cloud (EC2)
Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporciona capacidad informática con tamaño modificable en la nube. Está diseñado para facilitar a los desarrolladores recursos informáticos escalables y basados en web. Amazon EC2 reduce el tiempo necesario para obtener y arrancar nuevas instancias de servidor en minutos, lo que permite escalar rápidamente la capacidad, ya sea aumentándola o reduciéndola, según cambien sus necesidades. Amazon EC2 cambia el modelo económico de la informática, al permitir pagar sólo por la capacidad que utiliza realmente. Amazon EC2 presenta un auténtico entorno informático virtual, que permite utilizar interfaces de servicio web para iniciar instancias con distintos sistemas operativos, cargarlas con su entorno de aplicaciones personalizadas, gestionar sus permisos de acceso a la red y ejecutar su imagen utilizando los sistemas que desee.
Windows Azure
Windows Azure es una plataforma de nube abierta y flexible que permite compilar, implementar y administrar aplicaciones rápidamente en una red global de centros de datos administrados por Microsoft. Puede compilar aplicaciones en cualquier lenguaje, herramienta o marco, permitiendo además integrar sus aplicaciones de nube públicas con el entorno de TI existente.
Google App Engine
Google App Engine permite crear y alojar aplicaciones web en los mismos sistemas escalables con los que funcionan las aplicaciones de Google. Google App Engine ofrece procesos de desarrollo y de implementación rápidos, y una administración sencilla, sin necesidad de preocuparse por el hardware, las revisiones o las copias de seguridad y una ampliación sin esfuerzos. Las aplicaciones Google App Engine son fáciles de crear, fáciles de mantener y fáciles de escalar a medida que el tráfico y las necesidades de almacenamiento de datos crecen. Con App Engine no es necesario mantener ningún servidor. Basta con cargar su aplicación y esta ya se encontrará lista para servir a los usuarios.
Red Hat Openshift
OpenShift es la oferta de plataforma como servicio para Computación en la nube de Red Hat. En esta plataforma los desarrolladores de aplicaciones pueden construir, desplegar, probar y correr sus aplicaciones. Prporciona espacio en disco, recursos de CPU, memoria, conectividad de red y un servidor Apache o JBoss. Dependiendo del tipo de aplicación que se está construyendo, también proporciona acceso a una plantilla de sistema de archivos para esos tipos (por ejemplo PHP, Python y Ruby/Rails). También proporciona herramientas de desarrollo integradas para apoyar el ciclo de vida de las aplicaciones, incluyendo la integración de Eclipse, JBoss Developer Studio, Jenkins, Maven y GIT. OpenShift utiliza un ecosistema de código abierto para proporcionar servicios clave de la plataforma de aplicaciones móviles (Appcelerator), servicios NoSQL (MongoDB), servicios de SQL (PostgreSQL, MySQL), y más. JBoss proporciona una plataforma de middleware empresarial para aplicaciones Java, proporcionando apoyo para Java EE6 y servicios integrados tales como transacciones y mensajes, que son fundamentales para las aplicaciones empresariales.
IBM SmartCloud
SmartCloud ofrece una gestión de cloud con el valor agregado que permite la elección y la automatización más allá del aprovisionamiento de máquinas virtuales. IBM SmartCloud Enterprise+ es un entorno Cloud seguro, totalmente administrado y listo para producción, diseñado para garantizar una alta performance y disponibilidad. SmartCloud Enterprise+ ofrece un control completo de «governance», administración y gestión, permitiendo definir acuerdos de nivel de servicio (SLA) para alinear las necesidades de negocio y los requisitos de uso. Ofrece además múltiples opciones de seguridad y aislamiento, integrados en la infraestructura virtual y de red, manteniendo el cloud separado de otros entornos cloud.
VM Cloud Suite
La virtualización de VMware ha ayudado a los clientes a reducir drásticamente los gastos de capital gracias a la consolidación de servidores. Ha mejorado los gastos de explotación mediante la automatización y ha minimizado la pérdida de ingresos porque reduce el tiempo de inactividad, planificado y no planificado. Sin embargo, las empresas actuales también necesitan reducir el tiempo de comercialización de sus productos y servicios. Las unidades de negocio exigen acceso rápido a los recursos de TI y a las aplicaciones. Se presenta a continuación (figura 2.3), la solución para la nube propuesta por VMware, y también un cuadro que define las responsabilidades de cada uno de los productos para la gestión e infraestructura de la nube (figura 2.4).
Openstack
OpenStack es un conjunto de proyectos de software de código abierto que las empresas / proveedores de servicios pueden usar para configurar y ejecutar su nube de computación e infraestructura de almacenamiento. Rackspace y la NASA son los contribuyentes iniciales clave para la pila. Rackspace contribuyó con su plataforma «Archivos en la Nube» (código) para alimentar la parte de almacenamiento de objetos de OpenStack, mientras que la NASA aportó su plataforma «Nebulosa» (código) para alimentar la parte Compute. El Consorcio OpenStack ha logrado tener más de 100 miembros, incluyendo Canonical, Dell, Citrix, etc en menos de un año. OpenStack hace que sus servicios se encuentren disponibles por medio de una API compatible con Amazon EC2/S3. Por lo tanto, las herramientas cliente escritas para AWS se pueden utilizar con OpenStack.
Características evaluadas de las plataformas Cloud Computing
En la instancia de diseño del cuadro comparativo que puede descargarse desde aquí, se seleccionaron un conjunto de características que por diversas razones fueron consideradas relevantes. A continuación se define cada una de ellas.
Escalabilidad automática (auto-scaling)
Brinda la posibilidad de incrementar o reducir de manera automática, utilizando un monitor provisto por la plataforma, la cantidad de recursos asignado a un sistema o aplicación.
Blueprints / Imágenes para acelerar el aprovisionamiento
Las imágenes o blueprints son máquinas virtuales que ya disponen de un sistema operativo y de los aplicativos o marcos de trabajo (frameworks) instalados y preconfigurados, para que sea más rápido comenzar a trabajar en la plataforma, permitiendo al usuario final focalizarse en la construcción o despliegue de sus aplicaciones. Un ejemplo popular de blueprint es llamado “LAMP”, imagen de máquina virtual conformada por Linux Apache MySQL y PHP.
Soporta Sistema operativo Windows
Esta característica permite evaluar la capacidad de implementar sistemas o aplicaciones de usuarios finales que operen bajo Sistemas Operativos Windows, y en caso afirmativo, también definir cuáles de sus versiones son soportadas.
Soporta Sistema operativo Linux
Esta característica permite evaluar la capacidad de implementar sistemas o aplicaciones de usuarios finales que operen bajo Sistemas Operativos Linux, y en caso afirmativo, también definir cuáles de sus versiones son soportadas.
Soporte para lenguajes
Esta característica permite definir cuáles son los lenguajes soportados por las distintas plataformas en análisis.
Soporte para almacenamiento de datos
Define cuáles son los medios físicos que ofrecen las plataformas analizadas para la persistencia de datos.
Soporte para Colas (queues)
Define cuáles son los soportes para colas brindados por las diferentes plataformas. Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir.
Servidor Web
Esta característica permite evaluar cuáles son las opciones de servidores web (del inglés web server) ofrecidas por cada proveedor. Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor realizando conexiones bidireccionales y/o unidireccionales, y síncronas o asíncronas con el cliente generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente.
Alternativas de hipervisor
Permite evaluar cuáles son los hipervisores disponibles ofrecidos por cada plataforma. Un hipervisor (del inglés hypervisor) o monitor de máquina virtual (virtual machine monitor) es una plataforma que permite aplicar diversas técnicas de control de virtualización para utilizar al mismo tiempo diferentes sistemas operativos en una misma computadora.
Cache In-Memory distribuido / DataGrid
Los caches distribuidos o datagrids son frecuentemente implementados por tablas de hash distribuidas. Las tablas de hash distribuidas (en inglés, Distributed Hash Tables, DHT) son una clase de sistemas distribuidos descentralizados que proveen un servicio de búsqueda similar al de las tablas de hash, donde pares (clave, valor) son almacenados en el DHT, y cualquier nodo participante puede recuperar de forma eficiente el valor asociado con una clave dada. Esta clase de productos ofrecen el beneficio de mejorar los tiempos de respuesta para la búsqueda de datos, con respecto a los mecanismos de persistencia tradicionales, tales como base de datos relacionales (BDR), puesto que para acceder a un set de datos alojado en una BDR generalmente se debe establecer una comunicación TCP y luego acceder al dato realizando una lectura de disco, lo cual es menos eficiente que los caches distribuidos, a los cuales generalmente se accede por protocolo TCP y luego se accede al dato almacenado en memoria RAM (Random Access memory).
Soporte para tecnologías Big Data
Las tecnologías Big Data (del idioma inglés grandes datos) hace referencia a los sistemas que manipulan grandes conjuntos de datos (o data sets). Las dificultades más habituales en estos casos se centran en la captura, el almacenado, búsqueda, compartición, análisis, y visualización. La tendencia a manipular ingentes cantidades de datos se debe en muchos casos a la necesidad de incluir los datos del análisis en un gran conjunto de datos relacionado, tal es el ejemplo de los análisis de negocio, los datos de enfermedades infecciosas, la lucha contra el crimen organizado, etc.
Fuente: Ing. Franco Bocchio, Escuela de pos grado, Universidad Tecnológica Nacional.
Adaptado por la división consultoría de www.evaluandocloud.com