Mostrando entradas con la etiqueta virtualization. Mostrar todas las entradas
Mostrando entradas con la etiqueta virtualization. Mostrar todas las entradas

domingo, 7 de julio de 2013

SÍ SE PUEDE hacer live-migration SIN SANs


SI se puede hacer Live migration de máquinas virtuales SIN hardware de SANs (shared storage).

Es un mito entre sysadmins que no son especialistas en virtualización el que "sí o sí" hace falta una SAN para poder tener live-migration, "o sino no se puede".

Claro, si tenés que preguntar a un vendedor de hardware, la mayoría te va "confirmar" que es "mejor" si tenés la SAN, y claro, a alguien tenés que comprarsela ¿verdad?

En cambio, lo que podrías confirmar por vos mismo es ir hasta los sitios de los fabricantes del software y bajarte los documentos de KB (Knowledge Base), ver los casos de estudio, los foros de ayuda, y en último lugar tal vez, los manuales y documentación, según el nivel de feedback que tengas ya vas a ir viendo - por vos mismo - qué tanto funcionaría o no, tener o no una SAN, y si vale la pena invertir en comprar una.


Veamos algunos links que lo confirman NO hace falta una SAN para tener live-migration:

Microsoft Hyper-V 2012
http://blogs.technet.com/b/canitpro/archive/2013/03/21/step-by-step-completing-storage-live-migration-in-hyper-v.aspx

http://blogs.technet.com/b/canitpro/archive/2013/01/03/shared-nothing-live-migration-goodbye-shared-storage.aspx


Vmware vSphere
http://blogs.vmware.com/performance/2012/08/vmware-vsphere-5-1-vmotion-architecture-performance-and-best-practices.html


XenServer
http://blogs.citrix.com/2012/09/11/demo-live-migration-without-shared-storage-using-xenserver-and-openstack/


KVM
http://blog.allanglesit.com/2011/08/linux-kvm-management-live-migration-without-shared-storage/

Consolidar y desagregar/distribuir servicios en infraestructuras virtuales

Ayer en la Hackathon Express 2013, estaba conversando con un par de  IT guys y les comento que estuve trabajando con un cliente familiar para ellos, y que pasamos de unas pocas máquinas físicas a varias decenas de máquinas virtuales en producción, esto causó cierta sorpresa, principalmente porque la cantidad de servicios en producción permaneció más o menos igual, pero la cantidad de servidores virtuales parecía un poco elevada..en otras palabras, tal vez haría falta "consolidar".


Consolidar
Había hace un tiempo la tendencia a "consolidar": incluir la mayor cantidad de servicios posible de correr por servidor físico y por sistema operativo. Esta noción brinda ciertos beneficios por sobre tener muchos servidores y servicios en cada uno.

Sin embargo no es una visión correcta para ser aplicada en un entorno de infraestructura virtualizada. El fundamento detrás de "consolidar" se basa principalmente en limitaciones propias del hardware físico, que no existen más en las infraestructuras virtuales.

La idea principal de "consolidar" se daba cuando un servidor físico se iba haciendo "viejo", y se acerca al fin de garantía o ya lo superaba e iba en camino a ser descontinuado por el fabricante, aquí se buscaba "consolidar", concentrando la mayor cantidad de servicios posibles en servidores físicos que aún tenían garantía o que se encuentraban aún plenamente soportados - en partes y respuestos - por el fabricante.

Otra noción importante devenía del mejor aprovechamiento de recursos además del hardware con garantía: los mismos recursos del hardware (ram, procesador, disco, etc.), los recursos externos (alimentación, disponibilidad de conectividad, etc.). Al consolidar, los servicios se ubicaban de modo tal de poder acceder a un conjunto de ciertos recursos que tal vez no estuvieran disponibles en otro hardware (un server viejo fuera de garantía idealmente), o inclusive, accediendo a facilidades de recursos solo disponibles en el lugar físico donde se iba a reubicar - consolidar - los servicios (por ejemplo: algún link de fibra óptica más cercano al backbone y/o core de la organización, brindando al servicio potencial mayor conectividad hacia la red interna).

Es decir, si pensamos la idea de "consolidar" basándonos en infraestructuras puramente basadas en servidores físicos, y en gral. en recursos físicos, consolidar tiene mucho sentido.


Distribuir, desagregar
Las infraestructuras virtuales crean una "capa intermedia" de administración y gestión de recursos (hipervisores y sus dispositivos virtuales, manejadores de hipervisores), que son luego entregados a servidores virtuales.

Esos servidores virtuales consumen los recursos entregados por la capa de virtualización, incluyendo procesador, ram, discos, conectividad, etc.

La capa de virtualización se encarga de proveer servicios avanzados de gestión de recursos, por ejemplo, permitiendo tener servidores virtuales, cuya suma total de memoria ram virtual asignada es mayor que la memoria ram física disponible en la capa física (en el servidor en el que corre el hipervisor en gral.). Similares características se encuentra en cuanto a procesadores, espacio en disco, conectividad, etc.

Entonces, si de repente tenemos un solo servidor virtual con 3 servicios que consumen X cantidad de ram, y los separamos en 3 servidores virtuales, en algún punto no estamos desaprovechando la memoria ram física en realidad. Una parte mínima de memoria adicional será ocupada para mantener tres sistemas operativos diferentes funcionando al mismo tiempo (3 kernels y poco más), y la memoria individual que ocupa cada servicio será muy similar en cada server separado, respecto de lo que ocupaba cada uno cuando estaban "consolidados" en un solo server virtual.


Las ventajas que obtenemos al desagregar servicios, al distribuirlos en varias máquinas virtuales en vez de consolidarlos es que nos hacemos de piezas más pequeñas para manejar, servidores que ocupan menos memoria ram (algo que es barato, pero no siempre está disponible en demasía), y si necesitamos mover una máquina virtual de un hipervisor a otro, casi seguramente lo podremos hacer.

Hay otras ventajas evidentes de la desagregación: si un kernel falla, los otros dos servicios siguen funcionando, si un servicio tiene una brecha de seguridad, los otros dos permanecen - en lo inmediato - sin ser alcanzados, etc. etc.

Cualquier "cosa" que le suceda a un servicio (en un servidor virtual), a nivel de software y hasta el nivel del mismo sistema operativo que lo está corriendo, continúa sin afectar los otros dos servicios, que si son independientes del servicio afectado, van a continuar operando normalmente mientras la capa de virtualización funcione normalmente.


Consolidar y desagregar servicios en servidores, pero en un contexto pertinente

Como ven "consolidar" es una noción, no "prehistórica" ni poco útil en la actualidad, sino perfectamente útil y pertinente en un contexto específico: infraestructuras de servidores físicos.

Los beneficios de la desagregación de servicios en varios servidores virtuales - en entornos virtualizados - inclusive suponen, como estrategia de gestión de recursos de infraestructura, un número mucho más elevado de ventajas respecto de lo que se obtiene "consolidando" al trabajar con servidores físicos. 

Además de simples ventajas prácticas (el mencionado incremento de resiliencia de servicios gracias a que cada uno corre en sistemas operativos diferentes, por ej.), hay diferentes posibilidades exclusivamente disponibles en entornos virtualizados se hacen disponibles a los administradores al desagregar servicios .La migración live de máquinas virtuales sería casi lo más útil:

http://en.wikipedia.org/wiki/Live_migration

http://www.vmware.com/products/datacenter-virtualization/vsphere/vmotion.html
http://blogs.citrix.com/2012/08/24/storage_xenmotion/
http://docs.openstack.org/trunk/openstack-compute/admin/content/configuring-live-migrations.html


Subutilizando recursos con infraestructura virtual, un ejemplo

Al contrario, cuando se tiene servidores "consolidados" en entornos virtuales, nos encontramos con grandes consumidores de recursos, que tienden a replicar la misma situación de sub-utilización o poco óptima utilización de recursos que había previo a la virtualización, pero agregando en el medio una capa de hipervisores.

Por ejemplo, sin virtualización, en un servidor físico dado, se corría un Linux con 3 servicios críticos, ahora, con un hipervisor corriendo sobre el servidor físico, se tiene de vuelta un Linux con los mismos 3 servicios críticos, y al ocupar estos tantos recursos, no dejan "lugar" para incluir más servidores virtuales en el mismo hipervidor.

Puede ocurrir que uno de esos servicios críticos se use a la mañana, otro a la tarde y un tercer servicio es de backup y está funcionando toda la noche, entonces en ningun momento del día se tiene realmente libres los recursos físicos disponibles, si hubiera mínimas cantidades libres de alguno, la criticidad del uso del servicio activo al momento o que otros recursos estén siendo ocupados al máximo al momento (mucho procesamiento/ram a la mañana en una base de datos, mucho storage por la tarde en el volcado a disco de datos, y mucha conectividad a la noche cuando se hacen los backups).

Desagregando los 3 servicios en 3 servidores virtuales, podríamos encontrar que a la tarde, en un hipervisor diferente de donde corren los 3 servidores virtuales, hay suficiente "tranquilidad" como para que el servicio que es intensivo en storage corra, así que lo podríamos mover allí, de ese modo la tarde queda libre para poder correr diagnósticos sobre el servidor virtual que se encarga del backup a la noche, y cuando llegue el momento de hacer backups, tenemos de ante-mano cierto stock de pre-diagnósticos del sistema, y si hay alguna falla inclusive podríamos tener un pre-aviso antes de que ocurra la falla.

Si hubiéramos tenido los el servicio intensivo en storage a la tarde y el de backup intensivo a la noche, consolidados en un mismo server, esa situación de prevención de errores tal vez no hubiera sido posible de alcanzar por falta de recursos (no se podía "molestar" al server a la tarde mientras estaba ocupado en otra cosa).

jueves, 2 de mayo de 2013

Ganeti: live-migration, hipervisores en clusters, sin SANs ni placas RAID


Ganeti es soft opensource creado por Google para poder implementar hipervisores KVM/XEN (Linux) en cluster (1 a 40 servers por cluster, "hotplug" de servers disponible), disponiendo de live-migration, sin necesidad de SANs ni placas RAID en cada server(bajando el costo por server). Es decir, el modo más barato posible de crear una infraestructura virtual altamente redundante y responsiva.

https://code.google.com/p/ganeti/

En un momento de la charla - link de abajo - de Tom Limoncelli (sysadmin de Google), explica que Google no podía pagar 2 millones de dólares por cada SAN ultra-redundante que iba a necesitar en grandes números, y Ganeti le permitió crear una infraestructura montada sobre hardware commodity, fácilmente reemplazable.

https://www.usenix.org/conference/lisa12/ganeti-your-private-virtualization-cloud-way-google-does-it

Tom Limoncelli por su parte tiene su propia categoría en cuanto a administradores de sistemas, podés leerlo en su blog o sus libros:http://everythingsysadmin.com/


Links

(Excelente fuente de información práctica sobre Ganeti y obtenida de sistemas en producción)
http://www.lancealbertson.com

Building a Private Cloud with Open Source Ganeti: Pros and Cons

Hands On Virtualization with Ganeti

Ganeti Google Group

lunes, 25 de marzo de 2013

Arranca la primera implementación masiva de Openstack (infraestructura virtual basada en soft libre)



Bah, no es la primera, sino la primera que se hace en un par de empresas muy conocidas (Ebay, PayPal), y a nivel de varias decenas de miles de servers simultaneamente.


Empezamos..

El éxito a nivel empresarial del software libre viene principalmente de dos fuentes:

- Ser técnicamente capaz y viable como opción al soft propietario.
- Ser gratuito de usar, al no tener costo de licencia.

Hilando fino en el TCO
El TCO (Total Cost Ownership, Costo Total de Propiedad), incluye varios costos más aparte de la licencia del software (cuanto le pagás a los administradores que te instalan/manejan el soft por ejemplo), sin embargo dada una infraestructura lo suficientemente grande, el costo en licencias se vuelve una porción mucho más grande en el TCO que lo habitual en infraestructuras más chicas.

En empresas como PayPal e Ebay, con alrededor de 80.000 servidores, el costo a pagar por licencias de soft va a ser necesariamente bastante alto por la cantidad de servidores.

Así que cuando surge una - cualquier - opción de soft libre, técnicamente fiable, las empresas con infraestructuras grandes - y un par de importantes nociones de búsqueda de un buen equilibrio inversión de recursos vs. rentabilidad por ahorro en compra de licencias - inician rápidamente proyectos para implementarla y dejar de pagar licencias, cuando ya en ese momento no es - o no sería - indispensable hacerlo.

La noticia de más abajo comenta como PayPal e Ebay iniciaron un proyecto piloto migrando 10.000 servidores desde Vmware hacia OpenStack, con la probable idea de - si todo funciona bien - migrar los 80.000 servidores en algun momento y dejar de pagar licencias por el uso de soft de virtualización.

Como andamos con el TCO por acá
Es importante remarcar algo, dado el TCO típico, las empresas/organizaciones buscan tener siempre la menor cantidad de personal especialista en IT (que de por sí en un mínimo habitual, suele ser un equipo de entre 4 y 6 personas), y Vmware garantiza que se pueda administrar una importante infraestructura virtual - digamos, 10-50 nodos físicos, con 20-100 máquinas virtuales - con el mínimo personal y por un costo en personal bastante razonable (ya que es un estándar de mercado, muchos profesionales IT tienen hoy ciertas skills en administración Vmware, y de todos modos las contrataciones de especialistas externos de mayor nivel tampoco supone en gral. un costo excepcionalmente alto, como sí lo sería - probablemente - consultar por software muy complejo con poca oferta de consultoría).

Así que no muchas empresas/organizaciones están siquiera buscando de momento reemplazar sus actuales soluciones basadas en Vmware (por muy caras que estén), inclusive se puede decir algo similar de otras opciones ya implementadas (Hyper-V, Xen, KVM, etc.). 

Y para las organizaciones que están buscando salir de Vmware en algun momento (por lo caro que está ahora justamente), hay otras opciones comerciales tremendamente viables (y muy buscadas, en mi opinión):

- Desde lo técnico (reutilizan skills, porque las nociones de configuración/administración son similares a lo encontrado en Vmware), y 
- Desde lo económico (hipervisores gratuitos, o incluídos con la licencia del sistema operativo, herramientas adicionales disponibles y con precios razonables: gestores centralizados, algun software appliance como antivirus y networking virtualizado, etc.), se destacan en particular: Windows Server 2012 (Hyper-V), RHEL y SLES (KVM y Xen), Citrix (Xen).

Cerca, no todavía, pero...
En otras palabras, es una muy buena señal el inicio de implementaciones masivas de Openstack fuera de las ya existentes, que se limitaban casi exclusivamente a proveedores de servicios de cloud de infraestructura (IASS): Rackspace, HP, etc. Pero todavía falta un poco de tiempo para ver a OpenStack compitiendo mano a mano el mercado típico - en Argentina por ejemplo - con otras ofertas de software de virtualización de infraestructuras, tal como ocurre hoy cuando se considera un SO de servidor y se compara RHEL, SLES, Windows Server, etc.

Claro, los pioneros que tengan en sus equipos IT suficiente skillset para anticiparse, van a tener el potencial de acercarse mucho más rápido a implementar infraestructura virtual basada en software libre, con los múltiples beneficios que en gral. tienen: no tener que presupuestar decenas de miles de U$S de costo en re-licenciamiento en ciclos quinquenales, y poder gastar ese presupuesto en otras necesidades de IT y/o de la empresa/organización.

Links
http://gigaom.com/2013/03/25/mirantis-open-sources-its-openstack-cloud-management-tools/

miércoles, 20 de febrero de 2013

Testeo rápido de monitoreo opensource, update de capabilities al 2013


Fue una semana movida hasta ahora, estuve re-analizando el status de diferentes soluciones de monitoreo basado en soft opensource, y desde el lunes estuve deployando Nagios, Icinga, Ganglia, Cacti, OpenNMS y Zabbix, y estoy instalando Sensu ahora mismo.

Las viejas quejas de todos los que usamos soft de monitoreo desde hace años se hacen muy evidentes al trabajar con todo ese software. 




Básicamente OpenNMS es lo que mejor funcionó out-of-the-box, llevando solamente un par de horas la primer instalación+configuración completa (la 1ra. fue la de prueba también), y luego con un par de clicks, un auto-discovery barrió muy bien un rango detectando los dispositivos de mi red prueba. Configurar thresholds y la mensajería fue un poco más trabajoso, otra hora de trabajo, leyendo un poco una documentación bastante confusa y más confusos mails de pedidos de ayuda de usuarios y respuestas vagas. Claro, la solución era bastante simple e intuitiva...luego de haberla hecho funcionar la primera vez. Básicamente funciona bastante bien, pero es un poco inestable en el sentido de que deployar plugins y adicionales rápido - vía apt por ejemplo - no va a terminar siempre en un OpenNMS completamente estable, y se puede llegar a tener un servicio funcionando perfectamente durante horas luego de instalar plugins, y luego al primer reinicio del sistema, algo triggerea una falla en el arranque, y los mensajes de error son básicamente el volcado del output de la Java VM, y pocas veces contienen información útil para hacer la recuperación (el "profile" de respuesta de los foros/listas apunta mucho a que los users avanzados de OpenNMS están muy familiarizados con identificar "partes" de la configuración del soft a modificar/arreglar mirando directamente el volcado de la JVM, más que a buscar/encontrar esa información en alguna documentación). 

Por ejemplo, al instalar el plugin de monitoreo de DHCP, configurarlo, y luego desinstalarlo, dejó al software incapaz de arrancar por la falta de los binarios para arrancar el servicio, en este caso fue con suerte y el mensaje de error indicaba claramente que el fallo se debía a que no podía arrancar el servicio de monitoreo de DHCP, y la solución era simplemente volver a comentar el servicio en el file de configuración correspondiente (y así desactivar el intento de arrancarlo al inicio de OpenNMS).

Cacti fue muy fácil de instalar, el uso de Cacti es tan sencillo que casi nadie se preocupó por crear tutoriales de cómo agregar un dispositivo y llegar a generar (y ordenar), las gráficas; pero.."sencillo" no implica que sea totalmente intuitivo, y estuve una buena media hora jugando con la GUI hasta entender el workflow para agregar dispositivos y generar la información gráfica, motivo base para deployar Cacti (de todos modos, al parecer, OpenNMS está generando "exactamente" la misma información, pero claro, hay que navegar varios menúes hasta encontrarla, en Cacti se la tiene a la vista luego del login directamente).


Ganglia es desde siempre mi primer opción para levantar información de performance y uso de servers, principalmente porque se instala muy rápido, no requiere más que instalar el soft servidor, el soft cliente, y "engancharlos" mediante configuración (hay que decirle al soft cliente, al agente ganglia en el server a monitorear, cual es su - o sus - server a aceptar en comunicaciones). Luego de instalar Ganglia y dejarlo tomando información, me puse a revisar la demás opciones y a medio camino de estar bastante decidido a implementar OpenNMS y Cacti, Ganglia ya tenía perfiles gráficos armados de mis sistemas de testing.


A Zabbix lo instalé en minutos (y un par de agentes también), y la GUI si bien es muy atractiva, no es tan intuitiva como la de OpenNMS (que no es demasiado intuitiva tampoco), de todos modos ubiqué la capability de auto-discovery y triggereé un rápido discovery, que no llegó a captar ni un solo dispositivo en el mismo rango de red que había cargado dos horas antes en OpenNMS (y donde este último soft detectó perfectamente mis servers y dispositivos de prueba, datos snmp incluídos). Así que fui de la GUI a la documentación sin encontrar mayor explicación del procedimiento de agregado - "intuitivo" - de dispositivos, de ahí fui buscar en foros y listas de correo, sin encontrar nada de vuelta, supongo que es algo tan fácil que nadie se molestó en escribir un paso-a-paso, así que dejé Zabbix funcionando y sin configurar por ahora (hasta encontrar cómo agregar dispositivos). Igualmente, a cada golpe de Google no dejo de encontrar las recomendaciones de que Zabbix es "muy fácil", supongo que se refieren a la instalación, pero tengo que dedicarle más de los 20 minutos que le dediqué para poder concluir algo sobre el software (y poder cargar al menos un par de dispositivos de prueba). Si llega a funcionar, podría tener un poco más de utilidad que OpenNMS inclusive.


Nagios (e Icinga, en mi primer contacto con el soft, utilicé mi expertise en Nagios y lo pude configurar/administrar sin issue alguno, así que la portabilidad de skills la puedo confirmar) es lo que dejé para probar al final, es una tentación el querer a producción el soft más fácil de configurar y más rápido de deployar, ello no siempre significa que el software sea razonablemente fácil de administrar en el día a día (bah, en el caso de Nagios ES fácil de administrar), y/o que escale muy bien siquiera a mediano plazo. 

Nagios no escala nada bien en ambientes dinámicos, donde los servers suben y bajan de producción constantemente, y la medida básica de esto es implementar nagios para monitorear ambientes en clouds, sin embargo, si implementas Nagios en ambientes virtualizados, rápidamente verás como solo tus servers en producción y estables son permanentemente monitoreados, mientras que los demás servers que son arrancados y apagados dinámicamente, inclusive aunque estén en producción, lentamente van quedando atrás mientras las configuraciones de Nagios solo se dedican a controlar los servers que están funcionando continuamente, sin downtimes dinámicos.

Aparte está la tentación de integrar Nagios+Cacti, RRDD+Nagios, Nagios+lo que sea, una solución que rápidamente va a dejar de reflejar correctamente el verdadero perfil de performance total de ambientes virtualizados, claro, a menos que elijas manejar la arquitectura de modo que tus servers "fijos" en producción están siempre funcionando en determinados hipervisores y los demás, en producción pero dinámicamente arrancados/apagados y los de testing (que se crean y borran regularmente), quedan limitados a otros hipervisores. 

Mmm, hay un problema en que justamente, la posibilidad de utilizar las capacidades ociosas en los hipervisores es la razón para virtualizar en principio, así que "limitar" el foco de la infraestructura virtualizada porque un(1) software no tiene capabilities para "seguir" el dinamismo de la infra virtual es quitarle capabilities en exceso a la solución de virtualización. Consideren por ejemplo que esa limitación se potencia radicalmente cuando los servers corren en infras virtualizadas con configuraciones complejas (las que definen jerarquías para el apagado dinámico de VMs en hipervisores bajo determinados perfiles de performance, por ejemplo).

Claro, Nagios puede ser "adaptado" a escenarios dinámicos, pero esa misma configuración va a ser estática (básicamente se podría "jugar" con schedulear downtimes programados que coincidan con los downtimes estimables que van a tomar las VMs cuando la infra virtualizada apague los servers), con el resultado de que por un lado configuramos la infra virtual para que se adapte automáticamente y por el otro lado tenemos que lidiar con (re)adaptar manual/continuamente la configuración del software de monitoreo para los servers.

Casi nada de estas conclusiones es nuevo (vean los links de monitoring-sucks), ni tampoco utilizar software comercial es la solución (tiene las mismas limitaciones para adaptarse a infraestructuras dinámicas en general), y no es que no suceda lo mismo con el resto del software que probé: OpenNMS, Cacti, Ganglia, etc.


Me falta testear Groundwork y HypericHQ (similar a Zabbix, comerciales, pero opensource o freeware al menos), y ver que tal se comportan. Me resulta curioso como las páginas de todos los software de monitoreo que se venden dicen que son los mejores o algo similar :-D > "Monitoring The World's Largest Web Applications"



Al rearrancar la semana voy a testear Sensu y ver cual es su perfil de adaptación a escenarios dinámicos, ya que hay bastante material en la red prometiendo mucho a este respecto:



Planeo escribir algo (cuando tenga la experiencia práctica), de Sensu - en español - para que al menos alguien que googlee desde LATAM/ES "sensu" a corto plazo al menos encuentre algo de material en español y de 2013 entre los primeros hits.


Links:

domingo, 23 de diciembre de 2012

Cómo podemos terminar usando Openstack


Una cuestión que se discute ida y vuelta en cada charla sobre virtualización es si Openstack va a llegar a usarse "masivamente" igual que Linux.

La discusión en realidad, se parece mucho a la que había hace 10 años atrás cuando Linux "aparecía" en ambientes de server, como webserver y estaba presente la discusión de si Linux iba o no a usarse masivamente como sistema operativo de servidor para otra cosa que no fuera LAMP (webservers basados en Apache).

Claro, igual que en ese momento, hablar de Openstack y limitarse a considerar un uso masivo eventual es una simplificación.


Cuando entendemos lo fácil que es instalar una infraestructura Openstack, luego es muy directa la conclusión: Openstack va a utilizarse masivamente de un momento a otro.

Si Openstack no tiene éxito como software libre de cloud, lo tendrán otras opciones: 

http://incubator.apache.org/cloudstack/
http://www.eucalyptus.com/


La nube privada opensource
La cuestión que surge luego de instalar y configurar tu primera nube es simple: podemos instalar una, dos, tres, cuatro infraestructuras de nube privada, rápidamente, sin muchas vueltas.

No hay costo de licencias que pagar, las imágenes de los servidores virtuales que se puede deployar quedan disponibles de inmediato, su configuración se simplifica en grado sumo, etc.

El salto que hay desde instalar un - ahora ya - simple hipervisor como KVM, Vmware ESX, Xen, etc. a tener una real infra de cloud privada es simple: se manejan imagénes completas, desde CLI (línea de comando) o desde una GUI, se las puede montar desde imágenes .iso, desde snapshots de las máquinas virtuales en ejecución, etc. etc. 

El conjunto total de software que usa Openstack es libre: 

 - Linux como sistema operativo base, 

 - Mysql como backend (si "conmueve" de algun modo tener una sola DB corriendo como backend de una infraestructura - virtual - completa, fácilmente puedes montar Mysql en esquemas de alta disponibilidad..de hecho, es una recomendación), 

- Los componentes de Openstack en sí pueden distribuirse entre varios servidores (la última vez que miré, ya había un par de maneras de montar - al menos manualmente - cada componente en un esquema al menos de redundancia, sino de alta disponibilidad).

 - Los componentes de Openstack pueden ensamblarse de diferentes modos, incluído claro, la posibilidad de correrlos todos desde un solo server.

 - La infra básica de Openstack para altos requerimientos computacionales (o sea, poder correr muchas máquinas virtuales, poder disponer de la posibilidad de correr a futuro - ilimitadamente - cuantas máquinas virtuales se quiera/requiera/necesite, etc.), consiste en:

* Controlador: donde corren el software que maneja la nube privada
 * Storage
 * Nodos de Computación: (en la práctica, cada uno es un hipervisor estándar, gestionado desde Openstack)
* etc. (hay un par de cosas más).

 Y la idea básica de escalabilidad sería que se puede agregar los nodos de computación que se requieran.

 Es decir, a medidad que vayamos necesitando correr más máquinas virtuales y si nuestros servers físicos actuales ya no soportarán esa carga de trabajo, simplemente se añaden nuevos servers de computación.


La comparación directa de qué tan bueno es el software opensource Openstack es contra Vmware vSphere, y prácticamente toda argumentación contra la implementación de una nube privada opensource recae sobre dicha comparación. 

La respuesta a favor de Openstack deriva del sentido común: quienes implementen una nube privada, pueden poder necesitar hacerlo no una sola vez, sino varias veces. 

 Si estás usando software comercial, cada nube privada tendrá un costo asociado inevitable. 

Los costos puntuales más elevados disponibles en software comercial de infraestructura privada y nubes privadas, están asociados justamente a esta necesidad de las organizaciones: cuando más locaciones remotas tenga la infraestructura para ser asociadas de algun modo con la infraestructura de nube privada, más altos son los costos (porque los componentes y licencias a pagar requeridos son un "extra" a la infraestructura de nube privada local).

Ejemplo 
Un ejemplo simple es un comercio de venta al público, que tenga dos sucursales, en cada una tiene un rack con 4 a 6 servidores corriendo todo tipo de software de servicios (webservers externos, internos, DBs de backend para aplicaciones internas, soft de servicio para el comercio, etc.).

El nivel gerencial de IT resuelve que tienen demasiados servers físicos corriendo, los recursos son desaprovechados y es anti-económico, surge la idea de montar una infraestructura virtual. 

 En el análisis surge la cuestión de la administración de la infraestructura virtual, y su consumo en recursos dada la necesidad de implementar muchos hipervisores a mediano plazo (más de 4 hipervisores por sucursal, un total inicial de 8 hipervisores en total), con estimación a que se implementen al menos 5 hipervisores más en un plazo no mayor a 5 años (en la idea de que los ciclos de vida del hardware ya en producción en esa fecha, estarán finalizando y los - ya en ese momento - viejos hipervisores /servers físicos deberán ser reemplazados por esos 5 nuevos servers).

 Alguien sugiere gerenciar la infraestructura virtual como una nube privada, directamente desde una capa de software corriendo "a caballo" sobre todos los hipervisores, permitiendo una administración simplificada - y con mucho menos costo de administración en horas/hombre - de máquinas virtuales ("instancias" en la jerga de nube), y de los recursos de virtualización.

 La idea de un software comercial llamado "ZZZ" surge de inmediato, pero luego se dan cuenta que los planes a futuro implican abrir nuevas sucursales en los próximos 5 años, al menos 4 nuevas sucursales. Entonces el plan de implementación de una nube privada deberá contemplar una implementación de al menos 6 locaciones de nube privada diferentes. 

 Por cada locación se deberá pagar licencias para poder utilizar las capacidades del software comercial de nube privada llamado "ZZZ". Se hacen los cálculos y luego se suma el hardware que se va a requerir para sostener todo ese software (incluídos aquí los requerimientos del software de usuario final que efectivamente es necesario para los clientes internos).

 Es aquí donde los números no cierran hoy en día, los costos de licencias para montar no una, sino 4, 5, 6 nubes privadas, casi simultáneamente, o con muy pocos años de diferencia, son tremendos.


Conclusión: la idea original o cómo se van a usar las nubes privadas en realidad
La idea "original" era que montar una nube privada iba a ser suficientemente caro en términos de necesidades de hardware, que nadie iba a necesitar más de una sola nube privada en su organización.

Más o menos es el mismo razonamiento que se hacía 10 años atrás cuando un server físico era "caro" y nadie pensaba que una organización chica a mediana fuera a necesitar más de un solo software de servidor web. 5 años luego de esos razonamientos, muchas organizaciones ya estaban implementando decenas de Apaches para todo tipo de tareas (por ejemplo, ¿cuantos servicios Apache tienes hoy corriendo en tu infraestructura?).

La idea "original" de los proveedores de software comercial de virtualización era proveer hipervisores, y que las grandes organizaciones luego incorporaran una capa de soft de gestión "a caballo" para manejar esos hipervisores. Pero solo "una" capa, una sola instancia de ese soft de gestión.

Sin embargo, las infraestructuras organizacionales IT típicamente están suficientemente descentralizadas, y los servidores, excepto pocos casos ideales están geográficamente dispersos, al menos entre varios edificios de una ciudad. En estos casos implementar más nubes privadas va a ser una opción interesante.

Si tienes todos tus servidores en la misma locación física, lo que necesitarás es poder hacer crecer indefinidamente la infraestructura, sin preocuparte de migraciones masivas de plataforma virtual porque la organización de repente no tiene presupuesto para dar el siguiente salto.

Cuando se produzca ese evento, es probable que muchos administradores tomen un par de servers y empiecen a montar el proto-nucleo de su futura nube privada, y medida que pasan los meses y años (unos pocos), esos núcleos se van a poblar de nuevos nodos y máquinas virtuales funcionando en producción, y al cabo de un tiempo, el salir a pagar licencias por algo que tiene costo cero y está funcionando perfectamente hace 2-3 años, va a ser una pregunta de respuesta obvia.

lunes, 5 de noviembre de 2012

Virtualización: Live Migration - migracion en vivo - sin storage (SAN) compartido, a cero costo de licencia


Redudancia de máquinas virtuales
Como es sabido una de las características clave para implementar una infraestructura virtual es poder mantener más de una copia de una máquina virtual.

El hipervisor (Microsoft Hyper-V, Vmware ESX, KVM, Xen, etc.), es un sistema operativo que corre sobre un server físico, este server físico puede fallar y apagarse, apagando así todas las máquinas virtuales que estén corriendo sobre el hipervisor. Por eso tenemos que tener más de un hipervisor corriendo al mismo tiempo, para poder salvar esta emergencia apropiadamente.


El principio de la idea es que si en un hipervisor A tenemos una máquina virtual llamada "EJEMPLO" corriendo, en otro hipervisor B, deberíamos tener una copia de esa máquina, lista para ser arrancada si fallara el primer hipervisor (por ejemplo, si el server físico donde corre A fallara por completo).

De este modo no se pierde la capacidad de provisión de servicio prestada por la máquina virtual EJEMPLO. Lo ideal es que la copia de la máquina virtual EJEMPLO (que está en el hipervisor B), esté lo más actualizada posible, si es posible, actualizada al minuto o segundo de la última modificación.

Migración en Vivo
Esta necesidad de la infraestructura virtual que acabo de explicar suele ser prestada por las capacidades de - Migración en Vivo - Live Migration de un hipervisor, y está disponible en el 99% de los hipervisores en el mercado.

Con una condición: típicamente lo necesario para poder implementar Live Migration es: dos hipervisores y un storage compartido.

Así por ejemplo:

http://blogs.technet.com/blogfiles/chrad/WindowsLiveWriter/VirtualizationTipMigratingtoSANsafterthe_A55A/image_thumb_1.png




La SAN
La cuestión principal a considerar aquí es la SAN.

1) Una SAN de nivel industrial, la más barata posible de comprar, sale muy cara. 

2) Una SAN construída a mano, también va a tener un costo mínimo en hardware, ya que tenemos que proveer un suficiente nivel de redundancia (muchos discos, en RAID, mínimamente), y resiliencia al hardware (un server con dos fuentes al menos, de nivel industrial).

El escenario 2) es ideal cuando tenemos servers muy grandes con mucha capacidad de discos disponible (o fácilmente adquirible), y así se puede convertirlo en una SAN muy buena.

Nos podemos ahorrar una cantidad de dinero muy buena del presupuesto y es un gran modo de "entrar" en el campo de storage administration para el personal que va a tener que administrar SANs eventualmente. Luego de esto se puede migrar las máquinas virtuales - sin problemas mayores - a una nueva SAN de nivel industrial, aunque hay muchas organizaciones que corren servers en SANs "caseras" sin planes de migrar a SANs industriales (al contrario, planean incorporar varias/más SANs "caseras" por el mismo costo que les saldría una sola SAN "básica" de nivel industrial).


Armando SANs caseras
Hay muchas posibilidades en cuanto cómo armar una SAN "casera", el hardware hay que tenerlo/conseguirlo, el software puede ser gratis/freeware o no:

Hardware
Este tutorial tiene información respecto al hardware necesario (el soft usado es Openfiler):

"Build Your Own Fibre Channel SAN For Less Than $1000"
http://www.smallnetbuilder.com/nas/nas-howto/31485-build-your-own-fibre-channel-san-for-less-than-1000-part-1
http://www.smallnetbuilder.com/nas/nas-howto/31500-build-your-own-fibre-channel-san-for-less-than-1000-part-2


Software

Con Windows Server:

"Microsoft iSCSI Software Target 3.3 for Windows Server 2008 R2: iSCSI SAN for the masses"
http://www.techrepublic.com/blog/networking/microsoft-iscsi-software-target-33-for-windows-server-2008-r2-iscsi-san-for-the-masses/3936

"Creando un iSCSI Target en Windows Unified Data Storage Server"
http://www.bujarra.com/creando-un-iscsi-target-en-windows-unified-data-storage-server/

"Uso de StarWind para emular cabinas iSCSI/NAS/SAN"
http://www.bujarra.com/uso-de-starwind-para-emular-cabinas-iscsinassan/

Referencia:
http://www.starwindsoftware.com/starwind-free



Con Linux:

- El clásico: Se configura todo a mano, sobre cualquier distribución, un esquema posible es: usar RAID1 para los discos del sistema operativo, configurar iSCSI y exportar un arreglo RAID5 por software - sobre 5 discos - corriendo volúmenes LVM2.

- OpenmediaVault (basado en Debian)
http://www.openmediavault.org/

- Openfiler 
http://www.openfiler.com/

http://www.bujarra.com/ProcedimientoOpenfiler.html

"Using Openfiler to build an iSCSI SAN"
http://blog.ogwatermelon.com/?p=1147


Con FreeBSD:
http://www.freenas.org/

Etc.

(Parece que no es muy complicado conseguir software para armar una SAN casera no?)



El tema de la SAN en detalle
Más allá de que construir una SAN no sea una complicación mayor (todo corre sobre estándares, las máquinas virtuales pueden correr sobre una SAN casera hoy y mañana sobre una SAN de dos millones de pesos, se usa hardware de red disponible hoy de 1 giga, y mañana se compra de 10 gigas, algo similar con los switches, etc. etc.)..

La cuestión es que los servers industriales "grandes" tienen en gral. mucho storage, almacenamiento local, si consideramos la cantidad de espacio estándar de una máquina de escritorio. Pero, no suelen tener tanto espacio como para poder armar una SAN de espacio respetable; yendo a lo práctico, es casi seguro que va a haber que comprar discos. Algo parecido pasa con las placas de red: cuantos servers conocen que se hayan comprado desde el vamos con más de 8 placas de red?


Sin embargo, si corremos un hipervisor en un server mediano, digamos uno con 4 placas de red, y 500 GB de disco, podemos montar una cantidad interesante de máquinas virtuales normalmente (dada una cantidad razonable de RAM, que es relativamente muy barata y fácil de conseguir, incluso comprando para servers de marca). 

Podemos instalar y correr el hipervisor con storage local, sin SAN. El problema es la redundancia y la resiliencia, qué hacemos si el storage local se pierde por completo..

* Por ejemplo: se quema la controladora del arreglo RAID por hardware por ejemplo, un componente que no se puede "hacer" redudante en los servers de nivel medio estándar: o sea, tenemos una sola placa RAID, se quema y no importa si tenemos 20 discos en RAID, los perdemos todos, hasta conseguir una nueva placa RAID

* Dado un nivel mínimo de previsión, deberíamos tener OTRA placa controladora RAID, al menos "apagada" (en cold-standby), lista para "levantar" el arreglo cuando se queme la otra.


Algo parecido podemos ir pensando de cada componente que se pueda perder en algun momento, y en algun momento entendemos que un server, nuestro hipervisor, puede fallar, así que tenemos que tener al menos dos (2), en producción y como mínimo. Menos de dos conlleva un nivel de riesgo excesivo y obvio para servicios de misión crítica.

Ahí es donde se empieza a pensar en Live Migration y SANs..o podría ser Live Migration sin SANs?



Live Migration sin SANs
Al momento, varios de los hipervisores en el mercado, libres, freeware y pagos, ofrecen esta capacidad, solo hay que tener el cuidado de usar las últimas versiones porque es una característica que se popularizó hace muy poco.

La idea de correr hipervisores y poder hacer live migrations sin SANs se ve así:

http://www.vmware.com/files/images/vsphere_imgs/vmw-dgrm-vsphr-vmotion-enhancements-101.jpg




Esto lo soporta por ejemplo, 

* Vmware vSphere 5.1:
http://www.vmware.com/products/datacenter-virtualization/vsphere/vmotion.html

"..both vMotion and Storage vMotion required shared storage to perform live migrations of virtual machines..."

"vSphere 5.1 enables a virtual machine to change its datastore and host simultaneously, even if the two hosts don't have any shared storage in common. It allows virtual machine migration between clusters in a larger datacenter, which may not have a common set of datastores between them but also allows virtual machine migration in small environments without access to expensive shared storage equipment."



* Microsoft Hyper-V 2012

"Configure and Use Live Migration on Non-clustered Virtual Machines"
http://technet.microsoft.com/en-us/library/jj134199.aspx

"Configuring Live Migration without Shared Storage on Windows Server 2012"
http://terrytlslau.tls1.cc/2012/06/configuring-live-migration-without.html

"Windows 8 Server Hyper-V Live Migration Without Shared Storage"
http://www.jamesbannanit.com/2012/03/windows-8-server-hyper-v-live-migration-without-shared-storage/


"Geek of All Trades: Live Migrations
No SAN? No problem. You can live migrate Hyper-V virtual machines without using shared storage."
http://technet.microsoft.com/en-us/magazine/hh987051.aspx



* KVM Linux 

"Linux-KVM Management: Live Migration Without Shared Storage"
http://blog.allanglesit.com/2011/08/linux-kvm-management-live-migration-without-shared-storage/

"Ubuntu 11.04 : KVM : live migration w/o shared storage"
http://lost-and-found-narihiro.blogspot.com.ar/2011/07/ubuntu-1104-kvm-live-migration-wo.html


Etc.


¿Cuanto me cuesta esto?

KVM Linux - cero costo de licencia
Microsoft Hyper-V 2012 - cero costo de licencia (en serio)

Vmware vSphere - hay que comprar vSphere (el hipervisor ESX freeware no incorpora esta característica, al menos hasta donde pude indagar, correcciones bienvenidas).

Claro, incluso con ESX, siempre queda el camino de trabajar la migración "a mano":

"Script for VM migration without Virtual Center"
http://vmetc.com/2008/01/03/script-for-vm-migration-without-virtual-center/


* En realidad, la "migración a mano", es básicamente lo que se hacía - se hace todavía - hasta ahora al no tener SAN, independientemente del hipervisor que se estuviera usando. La sensación es que las empresas se dieron cuenta y proveyeron la capacidad - por fin - desde el mismo software (eliminando mayormente el error humano de la ecuación, siempre factible al ensamblar soluciones manuales).


Conclusión
Si estamos usando un hipervisor en producción, tendríamos que usar dos (2) como mínimo, y hay que usar Live Migration o hacerlo manualmente, ya que como vemos, tanto desde los usuarios de los hipervisores (medianas/grandes infraestructuras/organizaciones), como desde los proveedores del software de hipervisor - sean libres/freeware/comerciales - hay mucha gente preocupada por elevar la resiliencia de la infraestructura virtual, y no en vano.

viernes, 19 de octubre de 2012

Por qué podés llegar a usar Openstack

Anoche leía sobre la arquitectura de Openstack - http://en.wikipedia.org/wiki/OpenStack

En este artículo de Ken Pepple:

Openstack Folsom Architecture

http://ken.pepple.info/openstack/2012/09/25/openstack-folsom-architecture/

y no puedo evitar comentar sobre la frase - trillada a esta altura - de que Openstack es el linux de los sistemas operativos de cloud.

Es verdad, 100%, desde eso a que Openstack se vuelva el “sistema operativo de cloud” omnipresente, tal vez falte un tiempo. O tal vez otro software mejore la idea de Openstack y ese sea el definitivo. Pero la cuestión es que sí, a corto y mediano plazo, el sistema operativo de cloud por excelencia va a ser Openstack.


Facilidad de Instalación
Que sea fácil de instalar no es algo que tome a la ligera en una tecnología que pocos conocen bien y menos aún dominan.

¿Los demás sistemas no son buena competencia? Para nada, el modo más fácil de montar hoy una cloud privada es comprar licencias de productos propietarios (y no nos olvidemos que podemos pagar por training, otra ventaja).

Sin embargo, esa es justamente la debilidad de las cloud propietarias: el que cuesten algo.

Openstack por otra parte  no  tiene un  costo  en licencias,  y eso  - sumado a   sus   capacidades técnicas - tiene un peso tremendo al momento de decidir  la adopción de una infraestructura que muy posiblemente va a permanecer  en producción 10 años más tiempo (en el caso de una cloud propietaria, hay que prever tener plata para pagar 10 años de licencias, y cuando se vaya por la "mitad", con la cloud privada ya "crecida", los costos iniciales podrían ser superados inclusive).

Como ejemplo, siempre recuerdo que cuando arrancaba con Linux en 1999-2000 muchas empresas instalaban un webserver Apache (sobre linux) "para probar y hasta que haya plata para comprar Internet Information Server (el "apache" de Microsoft). Tal vez más tarde compraron Windows Platform (más que nada por Active Directory), pero los Apache sobre Linux siguen instalados todavía, ahí donde los pusieron (en algunos pocos casos que vi, es la misma instalación de hace 10 años, un Debian sucesivamente actualizado a nuevas versiones, ni siquiera reinstalado una vez :-).

Openstack es relativamente difícil de instalar comparándolo con productos comerciales. ¿Training local? Nada a la vista comparable con lo disponible en US y EU. Hay pocos libros. Por otra parte, hay muchísimo material en línea, muy ordenado de modo que un sysadmin con experiencia puede entrenarse en relativamente poco tiempo.
Openstack es de momento el campo de acción de los mejores administradores de sistemas, así que son lo primero que hace falta para pensar en Openstack, y claro, incluso para montar clouds propietarias, sysadmins de primera es lo que hace falta igualmente tener desde el vamos (antes que el presupuesto incluso). Las clouds propietarias aprovechan esto claro, proveyendo deployments fáciles, claro, por un precio.


¿Por qué vas a empezar a usar Openstack en algun momento?


¿Soporte de hipervisores?
No por esto, aunque es muy importante en cuanto a la provisión de servicios IaaS de Openstack.

Hay varios motivos como ya vimos antes, entre otros, tiene soporte para todos los hipervisores populares del mercado: ESX, Kvm, Hyper-v, Xen, etc.
http://docs.openstack.org/trunk/openstack-compute/admin/content/selecting-a-hypervisor.html

Y las chances son de que alguno de esos hipervisores ya esté corriendo en la mayoría de las infras de tamaño medio para arriba, eventualmente llegarán a tener 5-8 hipervisores corriendo y alguien va a sugerir implementar un soft de cloud para administrar "todo eso".


¿Qué tan bueno es el soporte? En el link pueden verlo y al final hay una lista de bugs conocidos de Openstack para cada hipervisor soportado:
http://wiki.openstack.org/HypervisorSupportMatrix


Aplicaciones de nube:
El motivo más importante sin embargo, es que Openstack es un verdadero software de cloud. Por eso vas a poder programar y correr aplicaciones de nube sobre Openstack, sino ahora mismo, muy pronto.

Dice Ken Pepple en el artículo que linkeé al comienzo de este texto:

---------
"The OpenStack project as a whole is designed to "deliver(ing) a massively scalable cloud operating system." To achieve this, each of the constituent services are designed to work together to provide a complete Infrastructure as a Service (IaaS)."

Traduzco:

"El proyecto Openstack como un todo está diseñado para "entregar un sistema operativo de cloud masivamente escalable". Para lograr esto, cada unos de los servicios constituyentes está diseñado para trabajar en conjunto para proveer una Infraestructura Como Servicio completa (Iaas - Infrastructure as a Service)."
---------


Hasta ahí, nada nuevo, IaaS es lo que podemos comprar hoy de cualquier proveedor de cloud propietario, y es el motivo principal actual de la adopción de clouds (IaaS nos permite administrar mucho mejor cualquier "manada" de 10 a 40 hipervisores).

Ahora, sigue la explicación de Ken

--------
"This integration is facilitated through public application programming interfaces (APIs) that each service offers (and in turn can consume). While these APIs allow each of the services to use another service, it also allows an implementer to switch out any service as long as they maintain the API. These are (mostly) the same APIs that are available to end users of the cloud."

Traduzco:

"Esta integración es facilitada a través de APIs públicas que cada servicio ofrece (y a la vez, consume). Aunque estas APIs permiten a cada uno de los servicios usar otro servicio, también permite cambiar el servicio en sí, siempre que el nuevo se mantenga usando la misma API. Estas son - mayormente - las mismas APIs que están disponibles para usuarios finales en la cloud."
--------

Explico: más allá de la utilidad inmediata de Openstack para hacer IaaS sin pagar un costo en licencias, la fortaleza real reside en las APIs, al igual que Amazon AWS:

http://aws.amazon.com/code
http://aws.amazon.com/developertools

Openstack permite construir verdaderas "aplicaciones de nube" a través de sus APIs, una posibilidad que no está disponible en los software de cloud propietarios, mayor y casi completamente enfocados en la provisión de IaaS únicamente.

Esas "aplicaciones de nube" añaden al soft de cloud la flexibilidad necesaria para aprovechar las nuevas posibilidades que brinda una cloud (que, de vuelta, no se limitan a la provisión de IaaS). De vuelta voy a dar ejemplos del estándar actual, Amazon, para que puedan ver a qué me refiero:

http://aws.amazon.com/customerapps/
http://aws.amazon.com/customerapps/Amazon-S3
http://onlamp.com/pub/a/onlamp/2008/05/13/creating-applications-with-amazon-ec2-and-s3.html


y un libro recomendado para ver más "sustancia" (snipets de código?):

"Programming Amazon EC2
Run Applications on Amazon's Infrastructure with EC2, S3, SQS, SimpleDB, and Other Services" Feb. 2011
http://shop.oreilly.com/product/0636920013228.do


La pregunta de fondo en todo esto es: ¿Qué tanto se puede depender de un proveedor de software de cloud propietario si es que nuestra organización empieza a programar aplicaciones de nube?

El ejemplo (antecedente en la práctica) Para entender mejor, comparémoslo con el uso de Apache+Mysql+PHP de hoy en día: programamos nuestra aplicación Apache+Mysql+PHP, luego sabemos que podemos instalarla y correla:

- En servidores propios,
- En servidores ajenos (rentados, VPS, instancias de sistemas operativos corriendo en un cloud, etc.)

* Importante: Prescindo de Linux porque podemos usar otros sistemas operativo para Apache+Mysql+PHP.

Es decir, al programar en Apache+Mysql+PHP tenemos una garantía muy buena de que nuestro soft, básicamente, va a "durar". Si codeamos algo ahora, lo podremos seguir ejecutando dentro de, digamos, 10 años.

Al programar aplicaciones para la nube hoy, en el estándar actual AWS de Amazon, las cosas dependen al 100% de la empresa, si la API cambia, nuestra app deja de funcionar como antes, ya no corre sobre la nube de Amazon.

Las APIs de Openstack, sumadas a sus capacidades de provisión de IaaS, van camino - todavía es un potencial- a solucionar este problema de modo muy similar a cómo Apache+Mysql+PHP solucionan el problema de correr aplicaciones web en casi cualquier "lado" en la web.


¿Hay ya algo "material" en apps Openstack? Sí, aunque es un terreno para visionarios, startups y grandes presupuestos corporativos, todavía:

El componente object store Swift (parte de Openstack), lo usan algunas empresas para proveer storage y servicios apoyados en ese storage, hay muchas más, pero acá dejo algunos ejemplos concretos:


- RackSpace (los que codearon Swift):
http://www.rackspace.com/blog/rackspace-cloud-files-now-supporting-extremely-large-file-sizes/

- Marketto (una empresa que codeó apps de nube como producto y usa Swift en RackSpace como plataforma):
http://www.rackspace.com/knowledge_center/case-study/marketo-achieves-swift-success-with-rackspace

- KT:
http://www.slideshare.net/joearnold/open-stackconference-commercialization-of-object-storage

- SwiftStack:
http://swiftstack.com/

- Internap:
http://www.cloudtweaks.com/2011/01/internap-unveils-first-open-source-infrastructure-cloud-platform/

- HP:
https://www.hpcloud.com/products/object-storage
https://www.hpcloud.com/products/CDN


El componente Compute (se llama "Nova" en la versión actual), lo usan

- Rackspace
- HP - https://www.hpcloud.com/products/cloud-compute


Más allá de esos usuarios de las API de Openstack, su uso para provisión de IaaS está dado hoy en: CERN, NASA, Mercadolibre y un par de lugares más:

http://www.openstack.org/user-stories/

Etc.etc.


Conclusión
Openstack es un software a tener en cuenta, hace falta tenerlo presente y considerarlo seriamente cuando se esté planificando una infraestructura virtual, que con el tiempo evolucionará a una arquitectura de nube completa.