Este documento introduce OpenStack, una plataforma de código abierto para computación en la nube. Explica que OpenStack permite ofrecer servicios de computación a través de Internet y que puede usarse para implementar una nube privada. Detalla los principales componentes de OpenStack como Nova para computación, Glance para imágenes, Cinder para almacenamiento y Neutron para redes. También menciona otros proyectos como Heat, Telemetry e Ironic que amplían las capacidades de OpenStack. Finalmente, señala que OpenStack es una opción madura para implementar una nube privada a
2. 2 / 44
Introducción a OpenStack
● ¿Qué es la nube?
● Una nube privada
● OpenStack – Por encima
● Los componentes de OpenStack
● Componentes opcionales
● Palabras finales
6. 6 / 44
¿Qué es la nube?
● AUTO PROVISIONAMIENTO
Los usuarios deben poder gestionar los recursos por si mismo.
● RECURSOS
Recursos como máquinas virtuales, alojamiento, conectividad de red y
otros recursos de computación.
● ELÁSTICO
Debe ser elástico: el sistema debe ser capaz de ajustarse a las
necesidades.
● ESCALABLE
Los recursos deben poder crecer o reducirse fácilmente.
● RÁPIDA
Se debe poder crear y destruir recursos rápidamente.
● MULTI USUARIO (multi tenancy)
Grupos diferente de usuarios deben ser capaces de usar los recursos
sin interferir entre ellos.
8. 8 / 44
Una nube privada
Ofrecer los servicios de computación en una
plataforma de nuestra propiedad
9. 9 / 44
Una nube privada
● Aprovechar la inversión en hardware.
● Control de los recursos.
● Por seguridad de la información necesitas un plan
B de todas formas.
● Restricciones legales.
● Capricho.
10. 10 / 44
Una nube privada
También existe una solución de compromiso:
la nube híbrida
(y sí, OpenStack también permite ese caso)
15. 15 / 44
OpenStack – Por encima
“OpenStack is a free and open-source software platform for cloud
computing, mostly deployed as infrastructure-as-a-service (IaaS),
whereby virtual servers and other resources are made available to
customers. ”
16. 16 / 44
OpenStack – Por encima
● Una nube como servicio
● Está listo para producción
● Ofrece unas API estándar
● Hay un importante ecosistema de terceros que se integran con él.
● Y por supuesto, es software libre.
17. 17 / 44
OpenStack – Por encima
● Fue fundado en 2010.
● Surge de una colaboración entre la NASA y RackSpace.
● Gobernado por la fundación OpenStack.
● Usado por un gran número de empresas:
– Bancos
– Telecomunicaciones
– ¡CERN! ( https://cernvm.cern.ch/portal/openstack )
18. 18 / 44
OpenStack – Por encima
● Fue fundado en 2010.
● Surge de una colaboración entre la NASA y RackSpace.
● Gobernado por la fundación OpenStack.
● Usado por un gran número de empresas:
– Bancos
– Telecomunicaciones
– ¡CERN! ( https://cernvm.cern.ch/portal/openstack )
19. 19 / 44
OpenStack – Por encima
● OpenStack está formado por una serie de proyectos
● Existen múltiples distribuciones
● Nuevas versiones cada 6 meses
22. 22 / 44
Los componentes
https://www.openstack.org/software/project-navigator/
23. 23 / 44
Los componentes
● OpenStack usa la licencia Apache 2.0
– Todo el código es libre.
– No hay una edición enterprise, premium ni nada así.
● El diseño es un proceso abierto
● El desarrollo está documentados y es muy transparente.
24. 24 / 44
Los componentes
● Múltiples opciones para instalarlo
https://www.openstack.org/marketplace/
● Mútliples soluciones Open Source
– Debian
– Ubuntu
– CentOS (RDO)
● Distribuciones
– RHEL
– SuSE
– VMware y muchas muchas más
25. 25 / 44
Los componentes
● OpenStack es más bien un coordinador de recursos
● Está formado por múltiple servicios
● Se habla con ellos utilizando una API HTTP
● Entre ellos utilizan esa API y un sistema de mensajes (p.e. RabbitMQ)
● La arquitectura puede ser engorrosa, pero resuelve problemas
complejos.
● Muy modular. Mucho.
28. 28 / 44
Otros componentes
Hay otros proyectos que amplian la funcionalidad.
29. 29 / 44
Los componentes
Keystone
Servicio de autenticación y listados de endpoints.
$ openstack endpoint list
+----------------------------------+--------+--------------+-----------------+---------+-----------+------------------------------------------------------------------+
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+----------------------------------+--------+--------------+-----------------+---------+-----------+------------------------------------------------------------------+
| 23f4dce8928046b298d54562c35d8bdf | DEV | cinderv2 | volumev2 | False | public | http://openstack.example.com:8776/v2/%(project_id)s |
| 40efb5a289024f49bf5642b2cd20007c | DEV | glance | image | True | public | https://openstack.mdev.corp-apps.com:9292 |
| 42dd204a105f4a509227c229d89f11af | DEV | cinderv3 | volumev3 | True | public | https://openstack.mdev.corp-apps.com:8776/v3/%(project_id)s |
| 4da829c4f57044ddaa1307f4b2c4ca24 | DEV | cinderv3 | volumev3 | True | admin | http://openstack.example.com:8776/v3/%(project_id)s |
| 639337a226324467bad25bb7e78d7647 | DEV | cinderv2 | volumev2 | True | internal | http://openstack.example.com:8776/v2/%(project_id)s |
| 66aab885d29a4f93a5acb5ba3765ce27 | DEV | nova | compute | True | internal | http://openstack.example.com:8774/v2.1 |
| 8ce3cb206dfb4c338863865990fa90f0 | DEV | cinderv3 | volumev3 | False | public | http://openstack.example.com:8776/v3/%(project_id)s |
| 9a8d16e81eb0441aafc8eb3e1d466cda | DEV | cinderv3 | volumev3 | True | internal | http://openstack.example.com:8776/v3/%(project_id)s |
| 9fc5db1b8f894dee8f9946284ef01bd4 | DEV | nova | compute | True | admin | http://openstack.example.com:8774/v2.1 |
| a2cc7f63c5c8455f972195fe0b413a5f | DEV | glance | image | True | admin | http://openstack.example.com:9292 |
| abca4ee9c6474d0bbc81a2438d12628f | DEV | cinderv2 | volumev2 | True | admin | http://openstack.example.com:8776/v2/%(project_id)s |
| bd295b9b8e274f4f8892ec5af236b9e9 | DEV | cinderv2 | volumev2 | True | public | https://openstack.mdev.corp-apps.com:8776/v2/%(project_id)s |
| d2b62bf059ba411a948f34f9a02dff65 | DEV | nova | compute | True | public | https://openstack.mdev.corp-apps.com:8774/v2.1 |
| eb7c17f9b7484b7680470e012a0a5921 | DEV | glance | image | True | internal | http://openstack.example.com:9292 |
| ef29d81b9fa24994a930c3ff642e47d9 | DEV | glance | image | False | public | http://openstack.example.com:9292 |
30. 30 / 44
Los componentes
Horizon
Frontend web para gestionar los distintos productos.
31. 31 / 44
Los componentes
Nova
Servicio de computación. Se ocupa de lanzar y gestionar las máquinas
virtuales (o containers)
- Nova API
- Nova Scheduler
- Nova Placement
- Nova Compute
- Nova Metadata
32. 32 / 44
Los componentes
Glance
Servicio de gestión de imágenes
Cinder
Servicio de gestión de dispositivos de bloques
33. 33 / 44
Los componentes
Neutron
Gestión de redes. Con diferencia, el servicio más complejo de todos.
- Redes externas y privadas
- Virtual Routers
- Virtual Switches
- Integración con otros elementos
- DHCP
- Proxies
- LBaaS
34. 34 / 44
Los componentes
Neutron
Topología: redes privadas
36. 36 / 44
Otros componentes
Hay otros proyectos que amplian la funcionalidad.
37. 37 / 44
Otros componentes
● Heat
Orquestador
● Telemetry
Métricas y monitorización
● Swift
Repositorio de objetos
● Ironic
Provisionamiento en hardware
39. 39 / 44
Palabras finales
● No es todo oro, hay que tener cosas en cuenta.
● Es un producto complejo (p.e. en
ask.openstack.org +6.000 preguntas sin responder)
●
42. 42 / 44
Palabras finales
Pero si quieres tener una cloud privada, sí deberías
estudiar la opción.
Es un producto maduro, de producción aunque
tiene algunas asperezas por limar.
De https://www.reddit.com/r/ProgrammerHumor/comments/6cer5t/what_are_clouds_made_of/
Todo dependerá mucho de la casuística, de qué queramos conseguir y de las circunstancias a la hora de escoger entre los distintos modelos:
- Cloud “clásica”,
- Cloud privada
- Cloud híbrida