Computación nube
JJ Merelo
Os presento a OpenStack
- OpenStack es un producto para construir nubes públicas y privadas.
- Virtualiza la computación, el almacenamiento y la red.
Imagen de OpenStack.
Pero ¿qué es virtualizar?
¡Virtualizar es hacer algo de mentirijillas!
- Una nube es un recurso bajo demanda, escalable y facturable según uso.
- El origen
de la palabra viene de la tradicional representación de recursos
en la red como una nube.
¡Hay que tener cuidado con las tormentas!
Si hay que virtualizar, se virtualiza. Pero virtualizar para nada...
- El origen de la virtualización está en los mainframes de los 60
- Resurge en el año 2005 por la potencia alcanzada por los
procesadores.
- Además: simplifica el control y despliegue de recursos, permite
usar diferentes sistemas operativos y aprovechar mejor el
hardware.
La virtualización es la killer app del software
libre.
- Toda la nube está basada en software libre, empezando por los
propios programas que la sustentan.
- Los estándares abiertos permite que se integren aplicaciones
procedentes de muchos vendors diferentes.
- El modelo económico está basado en los servicios, no en la
venta por licencia.
- La virtualización también es la killer app del software
privativo.
Claro, como todo es gratis...
- El software libre te da varias libertades: copia, uso, acceso al
fuente y distribución.
- Como hay libertad de uso, copia y distribución, es, en general,
gratis.
- Pero lo importante es como se construye un ecosistema de
herramientas a partir de uno determinado.
OpenStack es software libre
- OpenStack
fue liberado por la NASA
y RackSpace en 2010.
- 1278 contribuyentes han escrito 1.3 millones líneas de
código; 231 compañías.
Nada de esto habría sido posible si no fuera software libre
Pero el software libre es mucho más
- Ciclos de desarrollo más rápidos.
- Mejores prácticas en el desarrollo de código seguro.
- Formatos abiertos.
- Creación de un ecosistema de marcos/librerías/código.
- Desarrollo empresarial no basado en alquiler de
licencias sino personalización o servicios.
O, por ejemplo, venta de servicios basados en la nube
Virtualizando un procesador
- La virtualización de recursos con un equivalente físico (CPU,
disco duro) se denomina Infrastructure as a Service,
infraestructura como un servicio.
- La virtualización la llevan a cabo programas
llamados hipervisores o Virtual Machine Monitors
(VMM)
Imagen de la Wikipedia
Hipervisores para el niño y la niña
Todavía hay clases
- Un hipervisor tipo 1 (que arranca directamente) arranca un
sistema operativo anfitrión
o dominio 0
==
dom0
.
- El resto de los sistemas operativos invitados arrancan
en dominio de
usuario ==
domU
, sin acceso al hardware.
Un poco de organización
domU
ejecutan los sistemas
operativos invitados
OpenStack Compute y sus hipervisores
OpenStack Compute crea la CPU virtual
Nova es el software que gestiona el nodo computacional
Nada existe sin soporte físico
Estas arquitecturas añaden instrucciones que permiten realizar
operaciones de virtualización de forma más eficiente.
Cincuenta sombras de virtualización
Virtualización del modo protegido o anillo 0 necesita
- Traducción binaria: traducción de una instrucciones a
otras en anillo 3
- Ensombrecido de memoria para que no se tenga acceso a
la misma
- Emulación de dispositivos de entrada salida.
Hay equivalente en red y E/S a la virtualización de CPU
¿Dónde está la pasta?
Vender el acceso o vender servicios
Hay más ladrillos en ese montón
¿Y todo eso es software libre?
Los productos cloud más populares usan ese tipo de licencia
Imagen
de la
wikipedia.
* as a service
Imagen
de la
wikipedia en el dominio público.
Subamos a la plataforma
Un PaaS ofrece pilas de soluciones
- Generalmente, máquinas configuradas
y provisionadas con el sistema operativo ya
instalado.
- La pila de soluciones basada en Ruby on Rails, Django,
J2EE, node.js o Perl + servidores
web + bases de datos o almacenes de servicios.
- Privadas o modelo freemium: se paga a partir de un uso
determinado.
Hágalo usted mismo
Herramientas para crear y gestionar tu propio PaaS: configuración
Juan Palomo se guisa y se come la nube
Herramientas para PaaS: provisionamiento
- Herramientas
como Vagrant
usan Chef y VirtualBox para crear VMs y conectarse con ellas.
- Permite importar imágenes, establecer configuraciones
específicas por máquina y ejecutar cualquier herramienta de
configuración.
- Cloud ENVy trabaja con OpenStack
Además, permite expresar en texto la creación de VMs y controlar
su versión.
Y controlar las versiones es importante
Gestionar los fuentes implica gestionar las versiones en
producción
- La mayoría de los PaaS usan sistemas de gestión de versiones
(como
git
)
- Un SCM
permite desplegar, sincronizar, revertir
y culpar código.
git clone
, git add
, git
commit
, git pull
Ya tenemos la Plataforma (como un servicio)
¡Vamos a usarla!
Lo importante son los accesorios
- Desde un panel de control, un PaaS permite añadir
fácilmente cartuchos (OpenShift) o add-ons
(Heroku)
- Cada usuario tiene asignado un número limitado
de motores (gears en OpenShift)
o Dynos
Útil
para Novelas y lo
que se te ocurra
Primeros PaaSos
Creación de un Dyno/Gear desde el panel de control y luego:
- Uso de cliente:
rhc
o heroku
para
conexión y creación de apps: heroku create
app
- Configuración de la aplicación y
git push
¡Magia!
¿Y todo esto, con qué?
¡Con software libre!
OpenShift está liberado, el cinturón de herramientas de
Heroku también (y es compatible con otros
sistemas), git
se usa en todos sitios.
Concluyendo
- La nube mola
- El software libre es imprescindible.
- Conceptos clave: virtualización, provisionamiento,
configuración, infraestructura como un servicio, plataforma como
un servicio, uso freemium
Terminando
¿Alguna pregunta?