jueves, 11 de septiembre de 2014

Open Stack: Plataforma de Cloud Computing Software Libre

En esta nueva entrada, de acuerdo a la filosofía de este blog de apoyo al software libre, vamos a hablar de un plataforma de Cloud Computing  open source: Open Stack como vamos a describir, esta plataforma ofrece funcionalidades de cloud computing muy interesantes.

En primer lugar describimos esta solución:  se trata de una plataforma en software libre para cloud computing que proporciona una infraestructura como servicio (IaaS), cumpliendo con las necesidades de los proveedores de nubes públicas y privadas, independientemente de su tamaño, siendo bastante fácil de implementar y muy escalable.
Este proyecto está distribuido bajo los términos de la licencia Apache. El proyecto está gestionado por la Fundación OpenStack, una persona jurídica sin fines de lucro creada en septiembre de 2012 para promover el software OpenStack y su comunidad.
Más de 200 empresas se unieron al proyecto entre las que destacan AMD, Brocade Communications Systems, Canonical, Cisco, Dell, Ericsson, Groupe Bull, HP,IBM, InkTank, Intel, NEC, Rackspace Hosting, Red Hat, SUSE Linux, VMware y Yahoo!.

La tecnología consiste en una serie de proyectos relacionados entre sí que controlan pools de control de procesamiento, almacenamiento y recursos de red a través de un centro de datos, todos administrados a través de un panel de control que permite a los administradores controlar mientras potencia a sus usuarios proveyendo los recursos a través de una interfaz web.

Características de Open Stack
  • Los módulos tienen muchas características comunes para poder integrarse fácilmente.
  • Están desarrollados en Python
  • Algunos de ellos utilizan AMQP para el intercambio de mensajes
  • Incluyen una API RESTful para la comunicación entre componentes o externa (p. ej. clientes)
  • Autenticación basada en tokens gestionada a través del componente Keystone
  • Base de datos propia e independiente


Componentes de Open Stack
OpenStack tiene una arquitectura modular con varios nombres para sus componentes:
OPENSTACK IDENTITY SERVICE (KEYSTONE)
  • Directorio centralizado que almacena información de:
  • Usuarios
  • Proyectos (tenants)
  • Roles
  • Servicios y sus endpoints
  • Información almacenada en SGBDR o LDAP
  • Primer componente a instalar

OPENSTACK IMAGE SERVICE (GLANCE)
·         Gestiona las plantillas de imágenes de los sistemas
·         Gestiona las instantáneas de las instancias
·         Puede utilizar diversos formatos:
    • raw
    • qcow2 (Qemu/KVM)
    • vhd (Hyper-V)
    • ami (Amazon)
    • vdi (VirtualBox)
    • vmdk (VMware)
OPENSTACK COMPUTE (NOVA)

·         Componente principal de OpenStack
·         Gestiona las instancias de imágenes, dónde deben ejecutarse y el acceso mediante consola
·         Soporta diferentes hipervisores (recomendados KVM o Xen):
·         KVM/QEMU
·         Xen
·         Hyper-V
·         VMware ESXi
·         LXC
·         Docker
·         Permite incluso el aprovisionamiento de máquinas físicas mediante Baremetal/Ironic

OPENSTACK OBJECT STORAGE (SWIFT)

·         Sistema de almacenamiento redundante y escalable
·         El almacenamiento de objetos permite el almacenamiento masivo de datos no estructurados de forma bastante económica
·         Hoy en día ampliamente utilizado por aplicaciones web
·         Swift incluye su propia API y otra compatible con Amazon S3
·         Normalmente es utilizado por Glance para almacenar imágenes
·         Es independiente del resto de componentes

OPENSTACK BLOCK STORAGE (CINDER)

·         Los volúmenes son dispositivos de bloques que se crean de forma independiente de la instancia y pueden asociarse y desasociarse de ella cuando se precise
·         Cinder es equivalente al componente Amazon EBS
·         Los volúmenes se crean en el nodo de almacenamiento (por defecto con LVM) y se conectan a la instancia que se desee mediante algún protocolo de redes de almacenamiento (iSCSI es el más utilizado)
·         Cinder incluye controladores para gran cantidad de dispositivos de almacenamiento del mercado
·         Cuando nova termina una instancia borra todo el almacenamiento local asociado a ella, pero no los volúmenes, por lo que estos reciben el nombre de almacenamiento permanente.
·         Podemos pensar en los volúmenes como discos externos que se conectan o desconectan de las instancias, aunque se trate de un mecanismo completamente diferente

OPENSTACK NETWORKING (NEUTRON)
·         Componente encargado de la configuración de redes virtuales
·         El nombre original de neutron era quantum, pero se tuvo que cambiar por problemas de copyright
·         Neutron incluye un buen número de complementos: OpenvSwitch, Cisco, Nicira, etc.
·         Neutron gestiona múltiples redes de forma independiente gracias al uso de linux network namespaces que permite que múltiples routers virtuales compartan un dispositivo de red físico
·         Neutron también se encarga de la gestión de los grupos de seguridad y de las IPs flotantes

OPENSTACK DASHBOARD (HORIZON)
·         Panel de control web de OpenStack desarrollado en Django

·         No incluye toda la funcionalidad de la API de cada componente, pero sí los métodos más utilizados.