Este documento describe el despliegue de una nube privada de IaaS con fines educativos utilizando software libre. Explica las características del cloud computing, los tipos de despliegues, y propone utilizar OpenStack para implementar una nube privada de IaaS en un centro educativo, detallando los equipos necesarios y los escenarios de aprendizaje que permitiría.
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
Despliegue de un Cloud privado de IaaS con fines educativos utilizando software libre
1. Despliegue de un Cloud privado de IaaS con
fines educativos utilizando software libre
Alberto Molina Coballes
Jes´s Moreno Le´n
u o
IES Gonzalo Nazareno
Dos Hermanas (Sevilla)
2. Cloud Computing. Caracter´
ısticas
Servicio a demanda Los recursos de software o hardware se ofrecen
como servicio a los usuarios (. . . as a Service)
Accesible a trav´s de la red Normalmente Internet
e
Agrupaci´n de recursos Los recursos se agrupan en diferentes pools:
o
almacenamiento, memoria RAM, cores, etc.
Multi-tenancy Capacidad de aislar tr´fico, datos o configuraciones de
a
usuarios utilizando el mismo software
Escalabilidad y Elasticidad Permite ajustar los recursos utilizados a la
demanda
Pago por uso Permite ajustar los costes de explotaci´n al uso de los
o
recursos
2 de 28
3. Cloud Computing. Capas
Se definen tres capas principales:
Software as a Service (SaaS) Aplicaci´n completa ofrecida como
o
servicio en la nube (Servicios de Google, Salesforce.com,
Microsoft Office 365, . . . )
Platform as a Service (PaaS) Aplicaci´n completa para el desarrollo
o
ofrecida como servicio en la nube (Google App Engine,
Windows Azure, Red Hat OpenShift, . . . )
Infrastructure as a Service (IaaS) Principalmente almacenamiento y
capacidades de c´mputo ofrecidos como servicio en la
o
nube (Amazon Web Services, RackSpace Cloud, . . . )
3 de 28
4. Cloud Computing. Tipos de despliegues
P´blico Una empresa ofrece servicios a terceros, encarg´ndose
u a
de toda la gesti´n del Cloud.
o
Privado Una organizaci´n configura sus propios recursos de
o
forma mucho m´s flexible en una nube.
a
H´
ıbrido Algunos servicios se gestionan en el cloud privado y
otros se transfieren a uno p´blico, normalmente utilizan
u
una API com´n que permita una buena integraci´n.
u o
4 de 28
5. Cloud en las ense˜anzas de inform´tica
n a
1. Las tecnolog´ de Cloud computing en s´ son importantes y deben
ıas ı
estar incluidas en el curr´
ıculo, en particular las de PaaS e IaaS.
2. Utilizar la tecnolog´ de cloud en un centro educativo es una
ıa
herramienta did´ctica muy poderosa
a
5 de 28
6. Nuestra opci´n: IaaS privado con software libre
o
IaaS La capa m´s completa de todas y que ofrece m´s
a a
posibilidades como herramienta. Adem´s es posible
a
implementar el resto de capas (PaaS o SaaS) sobre la
IaaS.
Privado Permite control total sobre el cloud, utilizarlo sin l´
ımites
y estudiarlo de forma detallada.
Software libre Entre otros motivos:
• Permite control total sobre software
• Garantiza la independencia tecnol´gica
o
• Utiliza de forma habitual est´ndares
a
• Supone un ahorro de costes a corto y largo plazo
6 de 28
7. Software libre para IaaS
Hay bastantes opciones, quiz´s las m´s relevantes actualmente son:
a a
7 de 28
8. ¿Qu´ podemos hacer en IaaS?
e
La IaaS obviamente no se pens´ para utilizar como herramienta en el
o
´mbito educativo, donde tiene un enorme potencial al resultar muy
a
sencillo:
• Ejecutar una instancia de sistemas operativos muy diversos con
cualquier grado de configuraci´n
o
• Configurar la red de la instancia
• Configurar DNS
• Acceder a la instancia de forma remota
• Utilizar m´ltiples vol´menes de almacenamiento adicional
u u
• Realizar instant´neas (snapshots) de las instancias
a
• Suspender y reanudar las instancias en cualquier momento
Todo lo anterior realizado por el propio usuario y adecuadamente
controlado mediante roles de acceso y cuotas.
8 de 28
9. Evoluci´n de las herramientas did´cticas
o a
A la par de la evoluci´n tecnol´gica se ha producido una evoluci´n en
o o o
las herramientas did´cticas para el aprendizaje de la inform´tica, que
a a
podr´ıamos de forma muy general clasificar en tres fases diferentes1 :
• Primera fase: Utilizaci´n de equipos f´
o ısicos
• Segunda fase: Utilizaci´n de m´quinas virtuales
o a
• Tercera fase: Utilizaci´n de IaaS
o
Estas fases no son excluyentes: una fase siempre puede incluir las
anteriores.
1
Nos
9 de 28
referimos siempre a ense˜anzas pr´cticas, no a la tiza ;)
n a
10. Primera fase
Utilizaci´n de equipos f´
o ısicos:
• Una m´quina por alumno
a
• Algunos servidores compartidos
• El alumno gestiona su propio
equipo
• El alumno no gestiona los
servidores
10 de 28
11. Primera fase
Ventajas
• F´cil despliegue inicial y puesta en marcha
a
Inconvenientes
• Entorno poco vers´til
a
• Pr´cticas muy limitadas por n´mero de equipos y tipo de
a u
configuraciones
• Hardware poco variado
• Pr´cticas en general muy “acad´micas”
a e
• Pr´cticas reales complicadas de preparar
a
• Tiempos muertos entre pr´cticas
a
• Posibles conflictos entre asignaturas
11 de 28
12. Segunda fase
Utilizaci´n de m´quinas virtuales:
o a
• Un equipo por alumno
• Varias m´quinas virtuales por
a
m´quina f´
a ısica
• El alumno gestiona su equipo
• El alumno gestiona sus
m´quinas virtuales
a
12 de 28
13. Segunda fase
Ventajas
• Cada alumno dispone de un entorno “completo” e independiente
• Pr´cticas menos r´
a ıgidas
• M´s sencillo simultanear pr´cticas
a a
• Se aprende virtualizaci´n de forma transversal
o
Inconvenientes
• Entorno m´s complejo
a
• Requiere equipos actualizados para los alumnos
• Los alumnos tienen que administrar el gestor de m´quinas virtuales
a
13 de 28
14. Tercera fase
Utilizaci´n de IaaS:
o
• Un equipo convencional por
alumno
• IaaS privado de la organizaci´n
o
• Los alumnos gestionan sus
instancias en el cloud
• Los alumnos no gestionan el
software de IaaS
14 de 28
15. Tercera fase
Ventajas
• Creaci´n/uso/eliminaci´n de instancias r´pido y sencillo
o o a
• Mayor variedad de pr´cticas
a
• F´cil utilizaci´n de entornos preconfigurados
a o
• Utilizaci´n de entornos m´s complejos
o a
• Equipos b´sicos para los alumnos
a
• Aprendizaje transversal de Cloud Computing
Inconvenientes
• Sistema muy centralizado
• Imprescindible administraci´n del Cloud
o
• La inversi´n inicial puede ser importante
o
15 de 28
16. Nueva forma de aprendizaje
• La utilizaci´n de IaaS en el ´mbito acad´mico proporciona una
o a e
nueva forma de aprendizaje
• Con el uso de MVs se ha impuesto una forma de aprender que no
siempre es la mejor:
◦ Configurar una red en modo NAT cuando el alumno no sabe todav´
ıa
qu´ es enrutar
e
◦ Instalar Tomcat (o mejor JBoss) para probar ”Hola mundo!”
◦ ¿Hay mundo m´s all´ de localhost?
a a
• El uso de MVs es muy conveniente, pero no deber´ condicionar la
ıa
forma de aprender.
• Un cloud puede contar con gran cantidad de im´genes
a
preconfiguradas de sistemas con muy diversas configuraciones ⇒
La forma de aprender no viene condicionada por la necesidad de
una configuraci´n previa.
o
16 de 28
17. Escenarios (I)
Instalaci´n y configuraci´n de un servicio
o o
Los pasos t´
ıpicos a seguir ser´
ıan:
• Cada alumno inicia una instancia del SO en el que va a instalar el
servicio (no es necesario que previamente sepa instalar ese SO).
• Realiza la instalaci´n del servicio
o
• Realiza la configuraci´n del servicio. Si esta configuraci´n dura
o o
m´s de una clase, suspende la instancia y la reinicia en la siguiente
a
clase.
• Una vez terminada la configuraci´n puede crear una instant´nea
o a
para utilizarla como base en posteriores pr´cticas.
a
• Si alg´n alumno no ha podido realizar la configuraci´n
u o
correctamente podr´ utilizar la instant´nea de un compa˜ero en
a a n
clases posteriores.
17 de 28
18. Escenarios (II)
Despliegue de una aplicaci´n web
o
Los pasos t´
ıpicos a seguir ser´
ıan:
• Se prepara una imagen de un sistema en el que se configura de
forma precisa un completo servidor web con todos los m´dulos
o
necesarios. Se instala y configura un servidor git u otro scm.
• Cada alumno inicia una instancia de la imagen anterior y transfiere
la aplicaci´n web desde su equipo.
o
• Comprueba el funcionamiento en un servidor remoto (la instancia)
con similares caracter´
ısticas que tendr´ en un servidor remoto real.
ıa
• En caso de que tenga que utilizar la instancia durante m´s de una
a
clase, suspende y reinicia cuando sea necesario.
• En caso de fallos o errores, puede crear una nueva instancia a partir
de la imagen inicial o de una instant´nea guardada previamente.
a
18 de 28
19. Escenarios (III)
Test de intrusi´n
o
• Se levanta una instancia y se configuran algunos servicios
vulnerables. Se hace una instant´nea y se almacena.
a
• Cada alumno inicia una instancia de la imagen anterior sin conocer
las caracter´
ısticas de las vulnerabilidades ni en los servicios en las
que se producen.
• Cada alumno tiene que realizar un test de intrusi´n tal como se
o
har´ en un escenario real.
ıa
19 de 28
20. Escenarios. Resumen
• Esto no son m´s que algunos ejemplos suficientemente diversos
a
para ver las enormes posibilidades que se abren.
• En general, pueden plantearse pr´cticas m´s complejas, inviables
a a
en el esquema tradicional de uso de m´quinas virtuales por la
a
complejidad de configurar el escenario inicial y por los problemas
que acarrea una equivocaci´n del alumno durante el desarrollo de
o
la pr´ctica.
a
• Adem´s las pr´cticas no interfieren con otras asignaturas, parar la
a a
pr´ctica y continuar otro d´ es tan simple como suspender la
a ıa
instancia y reanudarla cuando se precise.
20 de 28
21. IaaS en el IES Gonzalo Nazareno
• Hardware
◦ 1 nodo controlador
◦ 4 nodos de computaci´n: 80 cores a 2.6 GHz y 192 GiB RAM
o
◦ 1 nodo de almacenamiento: 12 TiB
• Software
◦ OpenStack Essex (2012.1) sobre Debian Wheezy en el nodo
controlador y los nodos de computaci´n
o
◦ Provisionalmente NexentaStor en el nodo de almacenamiento
◦ KVM como hipervisor
• Redes
◦ Red de almacenamiento Gigabit Ethernet (192.168.222.0/24)
◦ Red local Gigabit Ethernet (172.22.0.0/16)
• Proyectos
◦ Cada alumno dispone de un proyecto propio aislado en una VLAN
◦ Cada grupo dispone de un proyecto compartido
21 de 28
23. OpenStack
• Proyecto libre y de desarrollo abierto iniciado en 2010
• Fuerte ritmo de desarrollo: ciclo de publicaci´n de 6 meses
o
◦ Austin, Bexar, Cactus, Diablo, Essex, Folsom, Grizzly, . . .
• Tecnolog´ utilizadas
ıas
◦ Python
◦ Hipervisores: KVM y Xen. Parcialmente LXC, Hyper-V y ESXi
◦ Almacenamiento de vol´menes: LVM (Zvol) + iSCSI, Ceph RBD
u
◦ M´ltiples componentes. Comunicaci´n AMQP y APIs web
u o
◦ iptables
◦ Almacenamiento de objetos: Swift
◦ Autenticaci´n por tokens
o
◦ Integraci´n con LDAP
o
◦ VLAN, Bridges, VPN o Quantum
23 de 28
25. Equipamiento inicial
• Al opta por software libre, la principal inversi´n son los servidores
o
que formar´n el cloud de infraestructura.
a
• Configuraci´n m´
o ınima: 3 servidores (1 gesti´n del cloud y 2 para
o
ejecuci´n de instancias)
o
• Configuraci´n recomendada: 2 servidores para gesti´n (en HA),
o o
1 para almacenamiento y 4 o m´s para ejecuci´n de instancias
a o
• Para la gesti´n del cloud es suficiente un equipo de caracter´
o ısticas
m´
ınimas.
• Para la ejecuci´n de instancias es necesario procesadores potentes
o
y mucha memoria RAM (entre 0,5 y 2 GiB por instancia)
• El almacenamiento depende del n´mero de im´genes, instant´neas
u a a
y vol´menes que sea necesario guardar.
u
• Sistema f´cilmente escalable, se puede empezar por una
a
configuraci´n m´
o ınima e ir a˜adiendo componentes a˜o a a˜o.
n n n
25 de 28
26. Conclusiones
• Es necesario incluir Cloud computing en los curr´
ıculos
• No s´lo es importante conocer el Cloud, sino que utilizarlo
o
habitualmente en clase permite adquirir unas destrezas
significativas en su manejo
• Todas las capas de Cloud son interesantes, pero la que ofrece
mayores opciones es IaaS
• Una organizaci´n que implante un cloud de infraestructura
o
propiciar´ que sus alumnos hagan pr´cticas muy interesantes,
a a
dif´
ıcilmente realizables en otros entornos
• En el caso de alumnos de sistemas, disponer de un cloud de
infraestructura, permite conocer con detalle y en profundidad una
tecnolog´ para la que se prev´ una importante demanda futura
ıa e
26 de 28
28. Despliegue de un Cloud privado de IaaS con
fines educativos utilizando software libre
Alberto Molina Coballes
Jes´s Moreno Le´n
u o
IES Gonzalo Nazareno
Dos Hermanas (Sevilla)