Llegamos a ustedes gracias a:



Reportajes y análisis

Frameworks de nube: Un trabajo en progreso

[15/05/2012] Cuando la consultora de TI, OpenCredo, se dispuso a poner en marcha tres nuevas aplicaciones en siete meses para una importante empresa aseguradora, tenía tres objetivos en mente: Recortar el tiempo de desarrollo del habitual ritmo de años de duración, permitir los cambios frecuentes del cliente, y construir un sistema que pueda manejar los picos de tráfico impredecibles.
Al utilizar el framework de código abierto Cloud Foundry, junto con otros software de código abierto, OpenCredo eliminó "trabajo pesado" como la configuración de máquinas virtuales y el ajuste del tamaño de los volúmenes de almacenamiento, según su presidente Miles Russell. El framework permite a los desarrolladores escribir código de forma local, compartirlo con el cliente y automatizar la integración, pruebas y despliegue de componentes de la aplicación.
Entre otras ventajas, Cloud Foundry hace que una aplicación sea más fácil de escalar mediante la adición de más instancias sin tiempo de inactividad, señala Miles. Debido a la forma en que funciona con otro software de código abierto, las nuevas características se pueden agregar en cuestión de minutos en lugar de horas.
Vea también:
Incluso con todos esos beneficios, los frameworks de código abierto de nubes como Cloud Foundry están en progreso. Muchos solo administran servidores físicos y aplicaciones stand-alone, permitiendo que los clientes que necesitan capacidades más sofisticadas puedan crear sus propios frameworks. Sin embargo, ofrecen un valor convincente, ya que ocultan la complejidad de las configuraciones de cloud computing, y el modelo de código abierto es una manera atractiva de hacer eso.
Conceptos básicos
El término "framework" se utiliza para describir vagamente colecciones de cualquier cosa, desde herramientas de desarrollo para el middleware hasta los servicios de base de datos que facilitan la creación, despliegue y gestión de aplicaciones en la nube. Esos que trabajan a nivel de servidores, almacenamiento y redes son frameworks de infraestructura como servicio (IaaS). Los que operan en el nivel más alto de las aplicaciones son frameworks de plataforma como servicio.
Entre los frameworks IaaS más populares están OpenStack, Eucalyptus y la infraestructura en nube de Ubuntu. Citrix anunció recientemente que estaba haciendo que su plataforma de IaaS CloudStack sea parte del proyecto de código abierto Apache. Lydia Leong, analista de Gartner, escribió en su blog que esta es "una gran noticia" porque CloudStack es mucho más estable y lista para la producción que el "inestable" y "fastidioso" OpenStack.
Los frameworks PaaS más populares son Heroku, Cloud Foundry (respaldado por VMware), y OpenShift de Red Hat, que se construye sobre una base de Red Hat Enterprise Linux con soporte para una variedad de idiomas y middleware a través del uso de "cartuchos".
Los clientes a menudo usan múltiples frameworks y herramientas asociadas. Un ejemplo es el uso de OpenStack para aprovisionar máquinas virtuales, y Opscode Chef para crear "recetas" que describen cómo se deben configurar los servidores, señala el co fundador de Opscode, Jesse Robbins. Mientras más arriba en la "pila" opere una plataforma, menos trabajo hará el cliente, pero también tienen menos control sobre los componentes de la infraestructura, agrega Matt Conway, CTO de Backupify.
Más allá de facilitar la creación de nubes, la mayoría de los frameworks aseguran facilitar las migraciones entre nubes públicas y privadas para obtener el menor costo y mejor servicio. Por ejemplo, Eucalyptus tiene por objeto proporcionar una API Amazon EC2 compatible que se ejecuta en la parte superior de Ubuntu Linux (la versión de Linux que basa en la nube Ubuntu), "así que las aplicaciones que se crean para EC2 deben ser trasplantables a un centro de datos propio que ejecute Eucalyptus", señala Conway. "Deltacloud fue una iniciativa de Red Hat para crear una 'nube API' que abstraiga su aplicación fuera de vendedores como Amazon, y que replique las peticiones a la actual API de Amazon".
Para el proveedor de almacenamiento CX, OpenStack ofrece la flexibilidad de utilizar otros proveedores de nube, además de Amazon "si los servicios de Amazon se vuelven demasiado caros o inadecuados", señala el CTO de CX Jan Vandenbos.
Anthony Roby, un alto ejecutivo del grupo de tecnología y sistemas avanzados Accenture, señala que la palabra "framework" es a menudo mal utilizada, y las ofertas como Eucalyptus u OpenStack "no son frameworks en absoluto", pero "se pueden ampliar o utilizar para construir su propia infraestructura cloud". Sin embargo, la mayoría de los observadores definen a los frameworks como bloques de construcción de software utilizados para crear servicios basados en nube para los usuarios.
El papel del código abierto
Los proyectos de código abierto van desde iniciativas "puras" de desarrollo de código abierto, dirigidas por fundaciones sin fines de lucro que no están asociadas con ningún vendedor comercial, hasta los que reciben ayuda financiera, marketing y desarrollo de empresas líderes.
Canonical, que proporciona soporte para los esfuerzos de código abierto y tiene un papel de liderazgo en Ubuntu, ha visto un interés en el código abierto "de la lista Fortune 50 y de una tonelada de pymes y empresas que recién empiezan", señala Kyle McDonald, director de la nube de Canonical. La mayoría de los negocios OpenStack de la compañía ha venido de la lista de empresas Fortune 1000 que buscan reducir los costos de software, añade.
En los últimos cinco años, "ha habido un cambio radical hacia el código abierto, que se está viendo como una apuesta más segura" que el software propietario, comenta Chris Haddad, vicepresidente de evangelización en tecnología del proveedor de framework PaaS WSO2. Con la calidad cada vez mayor del software de código abierto, y el respaldo de los principales proveedores", las grandes organizaciones comerciales no la ven como una amenaza", señala. De hecho, debido a las incertidumbres económicas, "apostar su granja a una empresa no se ve como una buena decisión en estos días", indica.
A diferencia de los desarrolladores que trabajan para cumplir con los objetivos de una sociedad sujeta a los vaivenes de la economía, los contribuyentes del código abierto, "están escribiendo el software, porque eso es lo que les gusta hacer", añade Conway.
Aunque la mayoría de los primeros usuarios de los productos de código abierto, como Chef, fueron proveedores de nube que vendían servicios a los clientes de otros, Robbins agrega que está "viendo un cambio bastante rápido hacia la rápida adopción en la empresa" entre los bancos, grandes compañías de medios y otras organizaciones que están construyendo sus propias nubes privadas.
La mayoría de los usuarios, sin embargo, aún no están moviendo sus aplicaciones críticas hacia la nube, porque no tienen las herramientas necesarias para proporcionar la supervisión adecuada de TI y de seguridad, agrega Bryan Che, director senior de gestión de producto y marketing de la unidad de nube empresarial de Red Hat. Él dice que OpenShift de Red Hat ayudará a satisfacer estas necesidades, en parte, mediante el aprovechamiento de los mecanismos de seguridad que ya están dentro de Red Hat Enterprise Linux.
State Street supera las preocupaciones de seguridad al nunca adquirir software de código abierto directamente desde la web, sino solo a través de socios de confianza de los que "podemos obtener una estructura de apoyo, así como el software", señala el jefe de arquitectos Kevin Sullivan. Además, agrega, la compañía también comprueba cuidadosamente los contratos para asegurar el cumplimiento con los términos de la licencia, y analiza todo el software de código abierto en busca de código malicioso.
WSO2 Stratos ya está abordando esas necesidades con productos para apoyar no solo el desarrollo y despliegue de aplicaciones, sino también la integración, normas, gestión de procesos de negocios, gobierno, procesamiento de eventos complejos y gestión de identidades, agrega Haddad.
¿Beneficios dudosos?
Algunos observadores se preguntan si los frameworks de código abierto realmente entregan las prestaciones que suelen ofrecer, como la portabilidad entre los proveedores de nubes. "Eucalyptus replica algunas de las API de Amazon, pero si está utilizando algo en Amazon que no es compatible con Eucalyptus, no tendrá suerte", señala Roby. "Del mismo modo, si está tratando de ejecutar aplicaciones Java y usa el framework de desarrollo de aplicaciones Spring, tendrá una buena cantidad de soporte". Pero tan pronto como un cliente comience a utilizar las funciones, tales como almacenamiento de datos, que no se pueden acceder a través de Spring, esas características pueden no funcionar correctamente con un proveedor diferente. Sin la posibilidad de trasladar los servicios básicos, así como el código de la aplicación, señala, "no tiene ninguna portabilidad".
Con el código abierto, los usuarios (o un grupo de usuarios), teóricamente podría tomar el código fuente y modificarlo para satisfacer sus propias necesidades, si un vendedor no puede o no quiere. Sin embargo, pocos usuarios quieren hacer eso, agrega Roby. "Si es una empresa grande de telecomunicaciones, tal vez esté interesado en ser capaz de cambiar el código... pero la mayoría de las organizaciones no harían eso. Lo último que quieren es tener su propia variante específica del producto" que tendría que apoyar, mientras se pierde la capacidad de tomar ventaja de las actualizaciones de otros en la comunidad, agrega.
La creación de una única palanca de código abierto no suele ser algo que quiera hacer", a menos que sea absolutamente necesario", concuerda Conway, señalando que la palanca podría estancarse sin las contribuciones de los demás.
Mucho rumores rodean el de código abierto, pero los frameworks de propiedad como Microsoft Azure o Force.com de Salesforce.com pueden ser mejores opciones "si tiene necesidades específicas y esa plataforma ya tiene incorporados elementos para hacer el trabajo más fácil", señala Shriram Nataraj, director senior en la práctica de tecnología de nube en Persistent Systems, una firma global de desarrollo de software. "Si usted ya es cliente de Salesforce y desea migrar parte de su carga de trabajo hacia una plataforma diferente, Force.com pueden ser una muy buena opción para usted. Si ya es cliente de Office 365 y tiene cargas de trabajo de Microsoft. Net framework... tiene sentido migrar hacia Microsoft Azure".
Los buenos ajustes para los frameworks de código abierto tienden a incluir aplicaciones experimentales de nubes creadas por desarrolladores que se sienten cómodos con las nuevas herramientas de código abierto. Otros posibles candidatos incluyen las aplicaciones implementadas por organizaciones como universidades o laboratorios de investigación, que tienen las habilidades técnicas para aprender y trabajar con estas nuevas tecnologías, y/o la necesidad de capacidades especializadas, tales como bases de datos masivas o analíticas avanzadas, señala Roby.
Las aplicaciones típicas que utilizan frameworks de código abierto incluyen las aplicaciones web y sociales, así como los sitios web móviles o de cara al cliente, agrega Jerry Chen, vicepresidente de nube y servicios de aplicaciones en Cloud Foundry. Estos frameworks también son útiles cuando las organizaciones necesitan implementar aplicaciones de forma rápida y escalar hacia arriba y hacia abajo según sea necesario.
Las aplicaciones heredadas que requieren de hardware o software que pueden no ser admitidos en la web tienden a ser los candidatos menos atractivos. "Si bien es muy posible migrar muchas aplicaciones de centros de datos desde los servidores locales hacia servidores virtuales basados en la nube, el retorno de la inversión no siempre está claro", señala Bill Weinberg, director senior de Olliance Group del proveedor de software y servicios Black Duck Software. "El inconveniente puede estar en los potenciales problemas de seguridad, la respuesta divergente a la carga, cuellos de botella de rendimiento y disponibilidad".
OpenStack y Cloudscale son mejores opciones para las aplicaciones más complejas que Eucalyptus, señala Nataraj, porque hacen un mejor trabajo de ocultamiento de la complejidad de las redes. Para una aplicación que, por ejemplo, requiere que el usuario "se conecte desde un rango IP diferente", un cliente "tendría que escribir código personalizado para que esto suceda con Eucalyptus", agrega. Con OpenStack, los "interruptores" necesarios para hacer esas nuevas conexiones de red ya están presentes.
El número y la calidad de los desarrolladores que participan en un proyecto de código abierto también puede ser un buen indicador de la calidad del proyecto, según dicen muchos observadores. Si los desarrolladores de varias compañías están involucrados, es menos probable que los proveedores de tecnología sean un problema, añade Nataraj.
Roby, sin embargo, sugiere centrarse en el nivel de compromiso de un proveedor comercial, en lugar del de la comunidad. "En gran parte es un mito eso de que hay una gran cantidad de código nuevo que se está desarrollado por un grupo grande de personas", añade. "Cualquiera de estos productos exitosos son desarrollados por un pequeño grupo de personas", con la comunidad generalmente "proporcionando información y tal vez haciendo las pruebas o el suministro de la documentación".
Miles también advierte de los esfuerzos "token" de código abierto por parte de las asociaciones entre los principales proveedores. "Si ambas compañías no se basan en el producto para los ingresos, en cualquier momento uno o ambos simplemente se irán, y el producto morirá", advierte.
Los términos de la licencia no convencionales que algunos desarrolladores de código abierto imponen en su software, como uno que requiere que "el software se use para el bien, no para mal", hace que las cejas de los departamentos legales se levanten. Un problema más grave lo plantean las licencias que requieren que una compañía comparta las mejoras con otros miembros de la comunidad -lo que crea la posibilidad de que la compañía podría tener que revelar sus "mejores prácticas" a los competidores.
La mayoría de los expertos entrevistados señalan que las licencias de corriente tales como Apache no imponen esas exigencias problemáticas. En cualquier caso, agrega Conway, los procesos de su personal y sus habilidades son tan importantes como cualquier código que comparte con los demás. Y, señala, que al código abierto también se le permite utilizar las mejoras hechas por otros.
Los frameworks de nube de código abierto tienen el potencial para satisfacer las cambiantes necesidades de negocio de las organizaciones, mediante la rápida implementación de aplicaciones web a través de nubes públicas y privadas. Pero para obtener esos beneficios, los arquitectos de TI deben tamizar a través de los diversos significados que los diferentes fabricantes le dan a sus "frameworks", y si cada framework puede ofrecer el nivel de facilidad de uso que necesitan para satisfacer sus necesidades específicas.
Robert L. Scheier, Computerworld (EE.UU).