Cronica de una viaje al Silicon Valley – Dia 5

Seguimos en la conferencia de OpenStack. A diferencia de ayer, hoy no ha habido presentaciones comerciales, solamente sesiones de diseño puramente técnicas.

Una de las sesiones más esperadas ha sido la propuesta de mover todo o parte del proceso de desarrollo de Launchpad a Github. Como siempre pasa en este tipo de discusiones, el ambiente se calienta pronto y se convierte en una guerra de religiones. Algunas perla que se ha escuchado durante la discusión: “Si no puedes aprender bzr, no eres lo suficientemente inteligente como para contribuir a OpenStack” 🙂

Al mediodía me he escapado un rato para comer con David Boronat en el Plug and Play Tech Center de Sunnyvale, un centro de aceleración de empresas tecnológicas (en la actualidad hay instaladas allí más de 300 start-ups!).

David es un emprendedor catalan que se ha convertido en un trotamundos 😉 Decidió un buen dia conocer mundo junto con su familia, y dicho y hecho, cogió su empresa, multiplica, y ya ha abierto oficinas en Santiago de Chile, Sao Paulo, Buenos Aires, Mexico D.F., Miami y ahora en el Silicon Valley. Su sinceridad al relatarme su experiencia y vivencias, y la explicación de la metodologia que utiliza para controlar su futuro en vez de dejarse arrastrar me han sido realmente útiles. Gracies David!

Después he vuelto otro ratito a la conferencia, y al finalizar las sesiones, me he acercado a la sede central de Intel, que está bastante cerca del hotel de las conferencias, a visitar el museo que tienen. No es muy grande, pero me ha resultado interesante conocer como fabrican los procesadores. Por si os interesa, he actualizado el set de Flickr con unas cuantas fotos del museo.

Mañana creo que voy a pasar de asistir a la conferencia, lo que queda son alguna que otra discusion técnica que no me interesa. Cuando me levante, ya veré como planteo el dia.

Publicado en General | Etiquetado

Cronica de una viaje al Silicon Valley – Dia 4

Hoy poco que contar. Me he pasado el dia en la conferencia sobre OpenStack. Igual que ayer, presentaciones más o menos comerciales (por desgracia, algunas que poco tenian que ver con OpenStack), pero mezcladas con las sesiones sobre diseño de la nueva versión, con un enfoque claramente técnico y orientadas a desarrolladores.

Como punto a destacar, se nota que Rackspace todavia no ha cedido el liderazgo del desarrollo a la comunidad open-source. He visto algunas reuniones (aunque no todas) donde la voz cantante la forman un corrillo de Rackers y el resto de asistentes están más para escuchar que no participar. Este es un punto que claramente hay que mejorar si quieren conseguir la involucración del resto de la comunidad.

Interesante también la presentación de Cisco, donde a parte de presentar su involucración en el proyecto, cita 2 temas interesantes:

  • como la innovación de las arquitecturas Web está produciendo un transvase de tecnologías al mundo de las infraestructuras del mundo empresarial (mucho más tradicional);
  • y como más que hablar de PaaS deberíamos hablar de Servicios como Plataforma, un cambio sutil para remarcar la palabra “Servicios”. No hay que olvidar que, al igual que las infraestructuras, las plataformas no son más que servicios que sustentan las aplicaciones, en vez del mensaje que lanzan algunos proveedores de plataformas donde ejecutar nuestras plataformas, algo que también apuntó ayer Nati Shalom en su presentación sobre PaaS on OpenStack donde puso ejemplos de proveedores que pretender controlar que se ejecuta en sus plataformas en comparación a otros que ofrecen más grados de libertad.

Después del dia agotador, camino otra vez a Palo Alto. Como nota curiosa, los atascos que se producen cada dia en ciertas zonas (5 carriles en cada sentido!) de la US-101, una autopista que atraviesa gran parte de la costa oeste.

Mañana espero contaros algo más interesante!

Publicado en General | Etiquetado

Cronica de una viaje al Silicon Valley – Dia 3

Hoy he dormido de tirón, no se si porque no han pasado trenes, porque estava muy cansado o simplemente es que me he acostumbrado al ruido y ya no lo noto 🙂

Después de desayunar en el University Cafe, he cogido el coche y en unos 20 minutos me he plantado en el hotel Hyatt Regency de Santa Clara, que es el lugar donde se celebra a conferencia sobre OpenStack. Como podeis comprobar en la foto de abajo, es el típico hotel americano de grandes dimensiones, rodeado de grandes avenidas, y en este caso justo anexo al Santa Clara Convention Center y cerca del parque de atracciones Great America:

Lo primero que he hecho ha sido registrarme, donde me han dado el tipico badge con mi nombre, una camiseta y una mochila, todo, claro está, con el logo de OpenStack:

Me parece increíble el hype que está adquiriendo Openstack. Esta es la segunda conferencia que organizan, y con tan solo 8 meses de vida, son capaces de atraer a 480 asistentes, la mayoría desarrolladores, aunque también ha aparecido algún ilustre personaje de la saga de los Clouderati 🙂

La conferencia ha comenzado con una pequeña introducción de Jim Curry, seguido de una explicación del estado de los 3 proyectos (Nova, Swift y Glance) por parte de los PTL. A partir de aquí ha habido diversas sesiones interesantes, la primera de James Williams, CIO del centro Ames Research Center de la NASA, donde ha explicado como empezaron con Nebula y como a partir de conversaciones con Rackspace decidieron liberar el código y lanzar a OpenStack.

Posteriormente la gente de Wikimedia ha explicado como están planeando utilizar OpenStack, muy centrados en aspectos puramente técnicos y de comunidad. Y más tarde ebay ha explicado sus modelos económicos y como, según sus cálculos, les cuesta 4 veces más utilizar un proveedor de IaaS público que no utilizar su propio centro de datos, y que por esta razón ellos apuestan por un modelo híbrido, muy centrados sobretodo en agilidad antes que en economia de costes.

No voy a entrar a explicaros el detalle de cada sesión, que se os haría muy pesado 🙂 Si estais interesados, podeis encontrar algunas de las presentaciones en slideshare.

Como nota curiosa, me he encontrado a los chicos de Stackops, Diego Parrilla y Luis Gervaso, y como suele ser normal por aquello del idioma, nos hemos acabado juntando para comer.

Mañana el segundo dia, donde se alternan presentaciones más o menos comerciales con sesiones de diseño y planificación de la nueva versión de OpenStack.

Publicado en General | Etiquetado

OpenStack Cactus

Después de 10 semanas de desarrollo, la semana pasada se liberó la 3ra release pública de OpenStack, llamada Cactus. La lista completa de novedades en esta versión la podeis consultar en su wiki. Aquí os dejo algunas destacadas:

  • En Nova:
    • Soporte a dos nuevas tecnologias de virtualización: LXC (Linux Containers) y VMWare/vSphere ESX / ESXi 4.1, Update 1.
    • En el caso de utilizar KVM, ahora podremos mover máquinas virtuales de un servidor físico a otro sin necesidad de pararlas.
    • Soporte a IPv6 independientemente del modo de network que utilizemos.
    • Aunque en modo experimental, la nueva versión 1.1 de la API habilita mecanismos de extensión. Esto facilitará a los desarrolladores que añadan sus propias extensiones a la API de una forma fácil y sin ensuciar el core de la API.
  • En Swift:
    • Podemos servir contenido estatico directamente desde Swift. Además el servidor se comporta como un servidor web tradicional, buscando un archivo de index en primer lugar, devolviendo el listado de archivos existentes, y una página de error en caso de no encontrar un archivo (todo esto configurable).
    • Mejoras en el rendimiento al utilizar comunicación asincrona contra los backends.
    • Mejoras en la detección de errores al realizar una validación de checksum para cada acción de GET sobre un objeto. En caso de fallo, el sistema pone el objeto en quarentena e intenta replicarlo desde otro backend.
  • En Glance:
    • Nueva interface por linea de comandos que nos permite interactuar con los servicios de Glance. El nuevo comando se llama glance y admite las siguientes opciones:

      Usage: glance [options] [args]

      Commands:

      help Output help for one of the commands below

      add Adds a new image to Glance

      update Updates an image’s metadata in Glance

      delete Deletes an image from Glance

      index Return brief information about images in Glance

      details Return detailed information about images in Glance

      show Show detailed information about an image in Glance

      clear Removes all images and metadata from Glance

    • Hasta ahora solo podíamos indicar el tipo de imagen (machine, kernel, ramdisk) y ahora se ha habilitado que podamos definir el formato (ami, ari, aki, vhd, vmdk, raw, qcow2, vdi) y el contenedor (ami, ari, aki, bare, ovf) de la imagen.

La semana que viene, aprovechando la conferencia de usuarios que se realizará en Santa Clara (con 400 usuarios registrados y 100 en lista de espera), se definirán las nuevas funcionalidades que van a incorporarse en las 2 próximas releases. Si habéis estado siguiendo regularmente la lista de distribución, os habréis dado cuenta que la lista de temas a discutir es bastante amplia, señal inequívoca que esta tecnología suscita bastante interés y que va apartandose cada vez más del vaporware del año pasado.

Yo por mi parte tengo previsto asistir a la conferencia. En la medida de lo posible iré actualizando este blog con lo más destacado que vaya pasando. Stay tuned!

Comments

Comment by Carlos on 2011-06-29 04:49:55 +0000

Muchas gracias por compartir tu conocimiento acerca de Cloud Computing

Mi nombres es Carlos y soy de Peru

Soy nuevo en este tema y por lo q estoy leyendo en tu Blog sabes bastante del tema.

No se si me puedes orientar en mi inicio acerca de este tema te lo agradecería mucho

Muchas Gracias

Existos

Publicado en General | Etiquetado

Instalando Openstack Glance

Hoy toca jugar con un nuevo servicio de Openstack, liberado hace muy poco tiempo, y que todavia se encuentra en fase “experimental”: Openstack Glance.

Podríamos definir a este proyecto como un servicio de gestión de imagenes de máquinas virtuales, con el objetivo de independizar el sistema de computación o almacenamiento de la gestión de las imagenes. De esta forma, podríamos llegar a instanciar imagenes que se encontrasen almacenadas en localizaciones diferentes (incluso en sistemas gestionados por terceros: ¿un proveedor especializado en imagenes?), o podríamos guardar copias de seguridad de instantáneas en otro centro de datos (por temas de DR), o podríamos almacenar nuestras imagenes en nuestro repositorio, y cambiar de proveedor de IaaS tantas veces como quisiésemos sin tener que estar ligado a ellos (vendor lockin), o podríamos … siempre y cuando los proveedores adopten Glance, claro está (que fácil es soñar 🙂 ). En definitiva, un proyecto con mucho potencial, aunque a expensas de que se convierta en un estándard y los proveedores lo quieran adoptar.

El proyecto se divide en 2 servicios:

  • glance-registry“, un servicio que nos permite registrar y descubrir imagenes de máquinas virtuales;
  • glance-api“, un servicio que nos permite almacenar y recuperar imagenes de máquinas virtuales en repositorios diversos. A dia de hoy los repositorios pueden ser: un almacen en Amazon S3, un almacen en Openstack Swift, un sistema de ficheros, o un almacen HTTP.

Pues bien, una vez definido el proyecto, detallemos las instrucciones de instalación. Como he dicho anteriormente, el proyecto todavia es experimental, con lo que nos encontraremos muchas cosas por pulir.

En primer lugar añadiremos el repositorio PPA de Launchpad donde se encuentra el proyecto y lo instalaremos con el metodo habitual:

~$ sudo add-apt-repository ppa:glance-core/trunk
~$ sudo apt-get update
~$ sudo apt-get install glance

Ahora debemos configurar los servicios. Desgraciadamente el paquete no lleva ningún ejemplo de archivo de configuración, por lo que lo tendremos que crearlo a mano:

~$ cd
~$ mkdir glance
~$ cd glance

A continuación copiad el siguiente texto en vuestro editor preferido y guardarlo como glance.conf. Para vuestra comodidad, lo podeis descargar de aquí (acordaos de renombrarlo como glance.conf):

[DEFAULT]
# Show more verbose log output (sets INFO log level output)
verbose = True
# Show debugging output in logs (sets DEBUG log level output)
debug = False
[app:glance-api]
paste.app_factory = glance.server:app_factory
# Directory that the Filesystem backend store
# writes image data to
filesystem_store_datadir=/var/lib/glance/images/
# Which backend store should Glance use by default is not specified
# in a request to add a new image to Glance? Default: 'file'
# Available choices are 'file', 'swift', and 's3'
default_store = file
# Address to bind the API server
bind_host = 0.0.0.0
# Port the bind the API server to
bind_port = 9292
# Address to find the registry server
registry_host = 0.0.0.0
# Port the registry server is listening on
registry_port = 9191
[app:glance-registry]
paste.app_factory = glance.registry.server:app_factory
# Address to bind the registry server
bind_host = 0.0.0.0
# Port the bind the registry server to
bind_port = 9191
# SQLAlchemy connection string for the reference implementation
# registry server. Any valid SQLAlchemy connection string is fine.
# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
sql_connection = sqlite:///glance.sqlite
# Period in seconds after which SQLAlchemy should reestablish its connection
# to the database.
#
# MySQL uses a default `wait_timeout` of 8 hours, after which it will drop
# idle connections. This can result in 'MySQL Gone Away' exceptions. If you
# notice this, you can lower this value to ensure that SQLAlchemy reconnects
# before MySQL can drop the connection.
sql_idle_timeout = 3600

El siguiente paso es arrancar los servicios, tanto el registry como el servidor api. Podemos arrancarlos de forma independiente, pero en este caso vamos a hacerlo de forma conjunta:

~/glance$ sudo glance-control all start

Si todo ha ido bien, el sistema nos dirá que ha arrancado los 2 servicios y que ha utilizado el archivo de configuración glance.conf:

Starting glance-api with /home/ferdy/glance/glance.conf
Starting glance-registry with /home/ferdy/glance/glance.conf

Para comprobar que todo está correcto, vamos a lanzar una consulta al servidor api. Para ello utilizaremos curl, aunque podemos realizar la misma prueba desde nuestro navegador:

~/glance$ curl http://localhost:9292

Y el servidor nos devolverá las imagenes registradas (en este caso, ninguna):

{"images": []}

Ahora vamos a almacenar una imagen de una máquina virtual. En primer lugar nos descargamos una imagen de Ubuntu (si ya tenéis una imagen, podeis saltaos este paso), y luego la almacenaremos y registraremos en el sistema:

~/glance$ wget http://uec-images.ubuntu.com/maverick/current/maverick-server-uec-amd64.tar.gz
~/glance$ glance-upload --type raw maverick-server-uec-amd64.tar.gz "Ubuntu Maverick 10.10"

Como respuesta recibiremos los metadatos de la imagen:

Stored image. Got identifier: {u'created_at': u'2011-03-04T23:47:58.145889',
 u'deleted': False,
 u'deleted_at': None,
 u'id': 1,
 u'is_public': True,
 u'location': u'file:///var/lib/glance/images/1',
 u'name': u'Ubuntu Maverick 10.10',
 u'properties': {},
 u'size': 187634470,
 u'status': u'active',
 u'type': u'raw',
 u'updated_at': None}

Ahora volvemos a realizar la consulta sobre el servidor api, y veremos que ya tenemos registrada nuestra imagen:

~/glance$ curl http://localhost:9292
{"images": [
   {"type": "raw",
    "id": 1,
    "name": "Ubuntu Maverick 10.10",
    "size": 187634470}
  ]
}

Incluso podemos pedirle que nos devuelva los metadatos completos de las imagenes registradas:

~/glance$ curl http://localhost:9292/images/detail
{"images": [
   {"status": "active",
    "name": "Ubuntu Maverick 10.10",
    "deleted": false,
    "created_at": "2011-03-04T23:47:58.145889",
    "updated_at": "2011-03-04T23:48:02.011583",
    "id": 1,
    "location": "file:///var/lib/glance/images/1",
    "is_public": true,
    "deleted_at": null,
    "type": "raw",
    "properties": {},
    "size": 187634470}
   ]
}

Y en el caso de que tengamos varias imagenes y queramos obtener los metadatos de una imagen en concreto, podemos utilizar el siguiente comando (aunque en este caso nos los devuelve en forma de headers de HTTP):

~/glance$ curl -I http://localhost:9292/images/1
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 0
X-Image-Meta-Type: raw
X-Image-Meta-Id: 1
X-Image-Meta-Deleted: False
X-Image-Meta-Location: file:///var/lib/glance/images/1
X-Image-Meta-Properties: {}
X-Image-Meta-Deleted_at: None
X-Image-Meta-Created_at: 2011-03-04T23:47:58.145889
X-Image-Meta-Size: 187634470
X-Image-Meta-Status: active
X-Image-Meta-Is_public: True
X-Image-Meta-Updated_at: 2011-03-04T23:48:02.011583
X-Image-Meta-Name: Ubuntu Maverick 10.10
Date: Fri, 04 Mar 2011 23:57:05 GMT

Y nada más, ya que de momento las opciones por línia de comando son muy limitadas. De igual forma, a dia de hoy no hay integración con el sistema de computación nova, por lo que tendremos que esperar a que un futuro no muy lejano se vayan ampliando las funcionalidades de este proyecto.

Y como siempre, antes de acabar, acordaos de apagar los servicios:

~/glance$ sudo glance-control all stop
Stopping glance-api  pid: 3518  signal: 15
Stopping glance-registry  pid: 3519  signal: 15

Comments

Comment by Diego Parrilla on 2011-03-05 09:38:55 +0000

Gran post. Glance está verde todavía, pero la posibilidad de tener un registros distribuidos de imágenes por la red es algo muy potente.

En el Roadmap futuro el registro también realizará conversiones entre diferentes formatos de disco virtual y de contenedor (ovf, vmx, ami…). En ese punto lo incorporaremos a la distro de StackOps.

Diego Parrilla

StackOps CEO

Comment by ferdy on 2011-03-06 00:52:44 +0000

Gracias Diego. Coincido contigo que este proyecto promete bastante, y creo además, que favorecerá que aparezcan negocios relacionados con el almacenamiento y provisioning de imagenes.

Comment by Armando on 2011-03-21 10:46:16 +0000

pero donde esta el paquete de instalación!!

eske tengo al profe aquí al lado i no para!!

Comment by ferdy on 2011-03-21 23:47:24 +0000

Armando, ejecuta:

~$ sudo add-apt-repository ppa:glance-core/trunk
~$ sudo apt-get update
~$ sudo apt-get install glance

Y te instalará el paquete.

Comment by Francisco on 2011-04-05 02:17:15 +0000

Que tal, esta muy bueno el blog, me ha ayudado mucho.

Podrían por favor colocar mas referencias a servidores que podemos cargar usando glance?

Estamos experimentando con esta aplicación, pero me gustaria probarla lo mas que sea posible.

Muchas gracias.

Comment by daniel on 2014-03-04 18:32:39 +0000

alguien me puede ayudar a subir imagenes ISO a openstack lo tengo instalado pero no he podido subir nada aun, la maquina de cirros funciona super bien

Publicado en General | Etiquetado