CLOUD COMPUTING
Y OPENSTACK
Definición de Cloud Computing por el
NIST
El Instituto Nacional de Estándares y Tecnología y su laboratorio de
tecnología información, NIST ha definido Cloud Computing de la
siguiente manera:
“Cloud Computing es un modelo para habilitar acceso conveniente
por demanda a un conjunto compartido de recursos
computacionales configurables, por ejemplo, redes, servidores,
almacenamiento, aplicaciones y servicios, que pueden ser
rápidamente aprovisionados y liberados con un esfuerzo mínimo de
administración o de interacción con el proveedor de servicios. Este
modelo de nube promueve la disponibilidad y está compuesto por
cinco características esenciales, tres modelos de servicio y
cuatro modelos de despliegue.”
Cinco características esenciales de
Cloud Computing
Característica 1
Auto-servicio por demanda: El cliente provisiona capacidades
de cómputo.
Tiempo de servidor
Almacenamiento en red
Conectividad
Servicios
Sin necesidad de interacción humana por parte del proveedor
del servicio.
Cinco características esenciales de
Cloud Computing
Característica 2
Acceso amplio desde la red: Las capacidades están
disponibles sobre la red.
Se acceden a través de mecanismos estándares
Clientes heterogéneas, pesadas o livianas:
El PC
Un teléfono móvil
Un navegador Internet.
Cinco características esenciales de
Cloud Computing
Característica 3
Conjunto de recursos: Los recursos computacionales del proveedor se
habilitan para servir a múltiples consumidores: “multi-tenant”,
Recursos físicos y virtuales asignados y reasignados de acuerdo con los
requerimientos de los consumidores.
Independencia de ubicación de los recursos que se le están
proveyendo.
Algunos ejemplos incluyen:
almacenamiento,
procesamiento,
memoria,
ancho de banda
máquinas virtuales.
Cinco características esenciales de
Cloud Computing
Característica 4
Rápida elasticidad: Capacidades elásticamente aprovisionadas
Escalar rápidamente y también rápidamente ser liberadas
Pueden ser compradas en cualquier cantidad en cualquier
momento.
Por ejemplo:
Cálculos estadísticos deportivos, tiene un pico de procesamiento
el fin de semana y de pronto el lunes;
Los demás días no proceso y no requiero.
Cinco características esenciales de
Cloud Computing
Característica 5
Servicio medido: Control automático y optimizan el uso de
recursos mediante una capacidad de medición
Tipo de servicio: almacenamiento, procesamiento, ancho de
banda y cuentas de usuario activas.
El uso de estos recursos puede ser monitoreado, controlado y
reportado, proporcionando transparencia
Llevar cuentas claras de la utilización de recursos por parte de
estos usuarios mediante una página administrativa.
Los tres modelos de servicio
1. SaaS
SaaS – Software as a Service: Esta es una capacidad que se
refiere a que el consumidor utiliza las aplicaciones del
proveedor en una infraestructura de nube.
Con las ofertas de correo electrónico, portales y mensajería
instantánea.
El consumidor no administra ni controla la infraestructura que
soporta estos servicios, pero si algunos parámetros de
configuración como tamaño del Inbox, por mencionar
alguno.
Los tres modelos de servicio
2. PaaS
PaaS – Platform as a Service: Esta capacidad le permite al
consumidor desplegar en la infraestructura del proveedor
aplicaciones creadas por el primero, incluso adquiridas, usando
lenguajes de programación y herramientas del proveedor.
De nuevo, el consumidor no controla la infraestructura que soporta
estos servicios
El consumidor controla las aplicaciones o servicios desplegados y
algunas variables de ambiente que pueden permitir, en algunas
situaciones, aprovisionar un servidor Web para ofrecer mejor tiempo
de respuesta gracias al éxito de la aplicación Web, por ejemplo.
Los tres modelos de servicio
3. IaaS
IaaS – Infrastructure as a Service: Esta capacidad
permite al consumidor aprovisionar recursos
computacionales como:
almacenamiento, procesamiento, redes y otros
El consumidor puede desplegar y correr software
arbitrario, el cual puede incluir sistemas operacionales y
aplicaciones.
Cuatro modelos de despliegue
1. Nube privada
Nube privada: La infraestructura de esta nube es operada
unicamente para una organización.
Puede ser administrada por la organización o por un
tercero
Puede existir dentro de la misma, “on premises” o fuera
de la misma, “off premises”.
Cuatro modelos de despliegue
2. Nube comunitaria
Nube comunitaria: La infraestructura de esta nube es
compartida por varias organizaciones
Apoya las preocupaciones de una comunidad particular
sobre un tema específico, por ejemplo, seguridad,
investigación, políticas o cumplimientos.
Puede ser administrada por la organización o por un tercero y
puede existir dentro de la misma, “on premises” o fuera de la
misma, “off premises”.
Cuatro modelos de despliegue
3. Nube publica
Nube pública: La infraestructura de esta nube está
disponible para el público en general o para un gran grupo
de industria
La infraestructura la provee una organización que vende
servicios en la nube.
Cuatro modelos de despliegue
4. Nube hibrida
Nube híbrida: Es la composición de dos o más nubes, por
ejemplo privada y pública
Permanecen como entidades únicas pero que coexisten
Permite compartir datos o aplicaciones entre las mismas.
Aplicaciones que se desarrolla y se prueba en una nube
privada y luego se despliega a una nube pública.
CONCEPTOS DE OPENSTACK Y IASS
Nace en el 2010
Es una nube IaaS de codigo abierto.
Fundacion Open Stack esta compuesta por Mas de 500
empresas:
NASA, INTEL, REDHAT, CISCO, IBM, HP, CLOUDSCALING,
CANONICAL, SUSE, etc.
Ecosistema totalmente gratuito incluido la
documentacion.
CICLO DE LANZAMIENTO DE OPENSTACK
Se lanzan versiones cada 6 meses
Cada nueva version esta relacionada con la cumbre
bianual de OpenStack:
DISTRIBUCIONES DE OPENSTACK
Se puede instalar la ultima version manualmente desde
source code: [Link]
Las distribuciones facilitan la instalacion de OpenStack:
Ubuntu
Centos
Red Hat
VMWare
LICENCIA DE OPENSTACK
Esta bajo licencia Apache 2.0
Es libre de usar
Cualquier modificacion al codigo debe mencionar la
licencia Apache 2.0 en la parte del codigo original.
EXPLORACION DE LOS COMPONENTES
Existe un conjunto de servicios principales:
Nova (computo)
Swift (almacenamiento de objetos)
Glance (imagenes)
Cinder (volumen)
Neutron (red)
API RESTFUL Y PYTHON
Los componentes de OpenStack estan escritos en
Python
La API RESTful es una interfaz que dos sistemas de
computación utilizan para intercambiar información de
manera segura a través de Internet.
Mediante API Restful el cliente gestiona los componentes
de OpenStack
COMPONENTE NOVA
Proyecto OpenStack para aprovisionar servidores
virtuales.
Admite la creación de máquinas virtuales, servidores
baremetal.
Se ejecuta como un conjunto de servicios sobre los
servidores Linux.
COMPONENTE SWIFT
Elproyecto tiene también el nombre OpenStack Object
Store
Ofrece software de almacenamiento en la nube para
que pueda almacenar y recuperar muchos datos con
una API simple.
Swift se usa para almacenar datos no estructurados que
pueden crecer sin límites.
COMPONENTE NEUTRON
Neutron es un proyecto de OpenStack para
proporcionar "redes como servicio"
Crea mediante software interfaces, switches, segmentos
de red y routers.
Permite que los recursos virtuales de NOVA se
interconecten.
COMPONENTE GLANCE
Permite desplegar imágenes.
No se instalan las imágenes.
Las imagenes se descargan de internet.
Las imagenes pueden ser creadas de manera
personalizada.
Se utiliza una plantilla para definir el hardware de la
imagen instanciada.
COMPONENTE CINDER
Proporcione almacenamiento de bloques definido por
software
Realiza la abstracción y la automatización además de
varios dispositivos tradicionales de almacenamiento de
bloques de back-end.
Se añade a la maquina virtual como un disco separado.
COMPONENTE HORIZON
Horizon es la implementación del Dashboard de
Openstack
Proporciona una interfaz de usuario basada en la web
para los servicios de OpenStack , incluidos Nova, Swift,
Keystone, etc.
Para un control total Horizon permite usar la línea de
comandos.
COMPONENTE KEYSTONE
Servicio de identidad que utiliza OpenStack para:
Autenticación (authN)
Autorización de alto nivel (authZ).
Admite autenticación basada en token y autorización
de servicio de usuario.
Recientemente se ha rediseñado para permitir la
expansión para admitir servicios externos de proxy y
mecanismos AuthN/AuthZ como oAuth, SAML y openID
en versiones futuras.
COMPONENTE MAGNUN
Ejecutacontenedores en OpenStack
Es un servicio API de OpenStack desarrollado por el
equipo de contenedores de OpenStack
Magnum permite que los motores de orquestación de
contenedores (COE) como Docker Swarm y Kubernetes
estén disponibles como recursos de primera clase en
OpenStack.
COMPONENTE SAHARA
Proporciona a los usuarios un medio simple para
aprovisionar marcos de procesamiento de datos (como
Apache Hadoop, Apache Spark y Apache Storm) en
OpenStack.
Esto se logra especificando parámetros de configuración
como la versión del marco, la topología del clúster, los
detalles del hardware del nodo y más.
Emplea Hadoop Clusters, que consta de un nodo
maestro y varios nodos de trabajo.
COMPONENTE TROBE
Esun DBaaS
Proporcionar una base de datos en la nube
Permite aprovisionamiento de servicios para motores de
bases de datos relacionales y no relacionales.
Permite correr MariaDB, MongoDB, Cassandra, etc.
Entrega configuraciones envasadas fáciles de usar.
COMPONENTE DESIGNATE
Es un DNS como servicio
Permite servicios DNS privados y públicos.
Proporciona una API REST con autenticación Keystone
integrada.
Se puede configurar para generar registros
automáticamente en función de las acciones de Nova y
Neutron.
Admite una variedad de servidores DNS, incluidos Bind9 y
PowerDNS 4.
COMPONENTE HEAT
Brinda la capacidad de implementar instancias,
volúmenes y otros servicios de OpenStack
Utiliza plantillas basadas en YAML.
Permite describir su infraestructura como código.
COMPONENTE AGENTE DE MENSAJES
OpenStack utiliza una cola de mensajes para coordinar
las operaciones y la información de estado entre los
servicios.
El servicio de cola de mensajes normalmente se ejecuta
en el nodo del controlador.
OpenStack admite varios servicios de cola de mensajes,
incluidos RabbitMQ , Qpid y ZeroMQ .