Openstack. Nuevas
tendencias en la Nube
En esencia, OpenStack es un sistema operativo sobre
el que se construyen las nubes públicas o privadas. Pero OpenStack es una
plataforma, no es solo una pieza de software que se descarga y se instala para
construir una nube y “¡voila!”. En lugar de eso, OpenStack se compone de más de
una docena de elementos que controlan los aspectos más importantes de una nube.
Hay un proyecto para la gestión de cómputo, redes y almacenamiento en la nube.
Otros para la identidad y la gestión de acceso, y unos para orquestar las
aplicaciones que corren encima de todo esto. Al colocarlos juntos, esos
componentes permiten a las empresas y proveedores de servicio ofrecer recursos
de computación bajo demanda, al provisionar y gestionar grandes redes de
máquinas virtuales. El código para cada proyecto puede ser descargado
gratuitamente de GitHub y muchos de esos proyectos son actualizados dos veces
al año cuando sale un nuevo reléase. La mayoría de compañías que interactúan
con OpenStack lo hacen través de una nube pública que se ejecuta en estos
componentes, o a través de una versión producida de este código distribuido por
uno de los muchos proveedores involucrados en el proyecto. Es importante
conocer las piezas que componen el proyecto. Así que aquí está el OpenStack
básico (1).
Componentes (2)
OpenStack tiene una arquitectura modular con varios
nombres para sus componentes.
Compute (Nova)
OpenStack Compute (Nova) es un controlador de
estructura cloud computing, que es la parte principal de un sistema de IaaS.
Está diseñado para gestionar y automatizar los pools de los recursos del equipo
y puede trabajar con tecnologías ampliamente disponibles de virtualización. KVM
y Xen son las opciones disponibles para la tecnología de hipervisor, junto con
la tecnología Hyper-V, la tecnología vSphere de VMware y la tecnología de
contenedores Linux como LXC.
Está escrito en Python y usa muchas bibliotecas
externas, como Eventlet (para la programación concurrente), Kombu (para la
comunicación AMQP) y SQLAlchemy (para acceder a la base de datos). La
arquitectura de Compute está diseñado para escalar horizontalmente en hardware
estándar, sin requisitos de hardware o software propietarios, y proporcionar la
capacidad de integración con sistemas legados y tecnologías de terceros.
Object Storage
(Swift)
OpenStack Object Storage (Swift) es un sistema de
almacenamiento redundante y escalable. Los objetos y los archivos se escriben
en varias unidades de disco repartidos por los servidores del centro de datos,
con el software OpenStack responsable de asegurar la replicación y la
integridad de los datos en el clúster. Agrupaciones de almacenamiento escalar
horizontalmente simplemente añadiendo nuevos servidores. En caso de que un
servidor o disco duro falla, OpenStack replica su contenido desde otros nodos
activos a nuevas ubicaciones en el clúster. Debido a que OpenStack utiliza la
lógica del software para asegurar la replicación de datos y la distribución a
través de diferentes dispositivos, discos duros y servidores de bajo costo
pueden ser utilizados.
En agosto de 2009, Rackspace comenzó el desarrollo
del precursor de OpenStack Object Storage, como un reemplazo completo para el
producto Cloud Files. El equipo de desarrollo inicial consistió en nueve
desarrolladores. SwiftStack, una compañía de software de almacenamiento de
objetos, es actualmente el líder en el desarrollo de Swift.
Block Storage
(Cinder)
OpenStack Block Storage (Cinder) proporciona
dispositivos de almacenamiento a nivel de bloque persistentes para usar con
instancias de OpenStack Compute. El sistema de almacenamiento de bloques
gestiona la creación, aplicación y el desprendimiento de los dispositivos de
bloque a los servidores. Volúmenes de almacenamiento de bloque se integran
plenamente en OpenStack Compute y el Dashboard que permite a los usuarios en la
nube gestionar sus propias necesidades de almacenamiento. Además del
almacenamiento del servidor local de Linux, puede utilizar las plataformas de
almacenamiento incluyendo Ceph, CloudByte, Coraid, EMC (VMAX y VNX), GlusterFS,
Hitachi Data Systems, IBM Storage (familia Storwize, controlador de volumen
SAN, XIV Storage System, y GPFS) , Linux LIO, NetApp, Nexenta, Scality,
SolidFire, HP (StoreVirtual y 3PAR StoreServ familias) y almacenamiento puro.
El almacenamiento de bloques es apropiado para escenarios donde el rendimiento
es sensible, tales como el almacenamiento de base de datos, sistemas de archivos
expandibles, o la prestación de un servidor con acceso al almacenamiento a
nivel de bloque en bruto. La gestión Snapshot ofrece una potente funcionalidad
para realizar copias de seguridad de los datos guardados en volúmenes de
almacenamiento en bloque. Las instantáneas no se pueden restaurar ni utilizar
para crear un nuevo volumen de almacenamiento en bloque.
Networking (Neutron)
OpenStack Networking (Neutrones, anteriormente
Quantum) es un sistema para la gestión de redes y direcciones IP. Asegura que
la red no presente el problema del cuello de botella o el factor limitante en
un despliegue en la nube y ofrece a los usuarios un autoservicio real, incluso
a través de sus configuraciones de red.
OpenStack Networking proporciona modelos de redes
para diferentes aplicaciones o grupos de usuarios. Los modelos estándar
incluyen redes planas o VLAN para la separación de los servidores y el tráfico.
Gestiona las direcciones IP, lo que permite direcciones IP estáticas o DHCP
reservados. Direcciones IP flotantes permiten que el tráfico se redirija
dinámicamente a cualquiera de sus recursos informáticos, que permite redirigir
el tráfico durante el mantenimiento o en caso de fracaso. Los usuarios pueden
crear sus propias redes, controlar el tráfico y conectar los servidores y los
dispositivos a una o más redes. Los administradores pueden aprovechar las redes
definidas por software de tecnología (SDN) como OpenFlow para permitir altos
niveles de multiempresa y escala masiva. OpenStack Networking tiene un marco
que permite la extensión de servicios de red adicionales, como los sistemas de
detección de intrusos (IDS), balanceo de carga, cortafuegos y redes privadas
virtuales (VPN) para ser implementada y administrada.
Dashboard (Horizon)
El Dashboard de OpenStack (Horizont) proporciona a
los administradores y usuarios una interfaz gráfica para el acceso, la
provisión y automatización de los recursos basados en la nube. El diseño
permite que los productos y servicios de terceros, tales como la facturación,
el monitoreo y las herramientas de gestión adicionales. El Dashboard es sólo
una forma de interactuar con los recursos de OpenStack. Los desarrolladores
pueden automatizar el acceso o construir herramientas para gestionar sus
recursos mediante la API nativa de OpenStack o la API de compatibilidad EC2.
Servicio de Identidad
(Keystone)
El servicio de Identidad de OpenStack (Keystone)
ofrece un directorio central de usuarios asignados a los servicios de OpenStack
que pueden acceder. Actúa como un sistema de autenticación común en todo el
sistema operativo para la nube y se puede integrar con los servicios de
directorio backend existentes como LDAP. Es compatible con múltiples formas de
autenticación, incluyendo nombre de usuario y contraseña de credenciales
estándar, sistemas basados en tokens e inicios de sesión (login) de estilo
AWS (es decir, Amazon Web Services). Además, el catálogo incluye una lista
consultable de todos los servicios existentes en la OpenStack cloud, en un solo
registro. Los usuarios y las herramientas de terceros mediante programación
pueden determinar qué recursos pueden acceder.
Servicio de Imagen
(Glance)
El servicio de imagen de OpenStack (Glance)
proporciona servicios de descubrimiento, de inscripción y de entrega de los
discos y del servidor de imágenes. Las imágenes almacenadas se pueden utilizar
como una plantilla. También se puede utilizar para almacenar y catalogar un
número ilimitado de copias de seguridad. El servicio de imagen puede almacenar
imagenes de disco y de servidores en una variedad de back-ends, incluyendo
OpenStack Object Storage. La API de servicios de imagen proporciona una
interfaz REST estándar para consultar información sobre las imágenes de disco y
permite a los clientes transmitir las imágenes a nuevos servidores.
Telemetría (Ceilometer)
El servicio de Telemetría de OpenStack (Ceilometer)
proporciona un único punto de contacto para los sistemas de facturación,
proporcionando todos los contadores que se necesitan para establecer la
facturación del cliente, a través de todos los componentes actuales y futuras
de OpenStack. La entrega de los contadores es trazable y auditable, los
contadores deben ser fácilmente extensible para apoyar nuevos proyectos, y los
agentes que realizan las colecciones de datos deben ser independientes de todo
el sistema.
Orquestación (Heat)
Heat es un servicio para orquestar múltiples
aplicaciones compuestas en la nube utilizando plantillas, tanto a través de una
API REST OpenStack nativa y una API de consultas compatibles con CloudFormation
Base de datos (Trove)
Trove es una base de datos que funciona como un
servicio de aprovisionamiento de motores de bases de datos relacionales y no
relacionales.
No hay comentarios:
Publicar un comentario