Sobre nosotros
- Profesores de Formación Profesional en el IES Gonzalo Nazareno de Dos Hermanas (Sevilla)
- Administradores de Sistemas GNU/Linux
- Detectamos demanda de formación en cloud computing
- 2011-2012: Proyecto de Innovación Mº Educación
- Administramos un cloud privado OpenStack desde Abril 2012
Infraestructura: Evolución
¿A qué llamamos infraestructura?
Equipos para procesamiento, conexión y almacenamiento de datos
Evolución
- Equipos físicos
- Máquinas virtuales
- Infraestructura en la nube
Infraestructura tradicional
- Adquisición de equipos
- Montaje físico
- Instalación y configuración "manual"
- Conexión a través de redes físicas
- Gestión del almacenamiento NAS o SAN
- Estática: Mismas configuraciones durante años
- Usuarios sin acceso directo
Virtualización de máquinas
- Dentro de un solo equipo físico se ejecutan varias MVs
- El sw para la gestión de MVs se denomina hipervisor
- Se conectan las MVs entre sí en redes virtuales
- Sin cambios relevantes en almacenamiento
- Gestión similar a la infraestructura tradicional
Infraestructura en nube
- Virtualización de máquinas
- Virtualización de la red
- Virtualización del almacenamiento
- Agrupamiento de los recursos
- Dinámica
- Configuración automática
- El usuario sí puede gestionar su infraestructura
Cloud Computing. Características
- Servicio disponible de forma automática y a demanda
- Accesible a través de la red
- Modelo multi-tenancy
- Se comparten los recursos con otros usuarios
- Debe garantizarse aislamiento y seguridad entre
usuarios
- Los recursos se agrupan en pools
- Elasticidad
- Pago por uso
The NIST Definition of Cloud Computing
... as a Service (...aaS)
- Modelo de negocio no basado en la venta de licencias o
hardware
- Oferta de servicios con caracterísicas de cloud
- Habitualmente se definen tres capas o niveles: SaaS, PaaS e
IaaS
Software as a Service (SaaS)
Aplicación como servicio en la nube
- El usuario utiliza una aplicación a través de la web en
lugar de tenerla instalada en el propio equipo.
Aviso: No todas las aplicaciones web son SaaS, deben cumplir
con las características.
- Utilizado por cualquier usuario
- Ya lo usamos, pero se prevé que se use cada vez más
- Ejemplos: Servicios de Google, Office365
Platform as a Service (PaaS)
Plataforma de desarrollo web en la nube
- Utilizado por desarrolladores de software
- Se proporciona toda la plataforma de desarrollo y despliegue
de una aplicación al desarrollador
- Ejemplos: Google App Engine, Windows Azure, Heroku,
Openshift, CloudFoundry
Infrastructure as a Service (IaaS)
Infraestructura como servicio en la nube
- Utilizado principalmente por administradores de
sistemas
- Se proporciona principalmente capacidad de cómputo, redes y
diversos modos de almacenamiento
- Ejemplos: Amazon Web Services, Google Compute Engine
Tipos de despliegues
- Público Una empresa ofrece servicios a terceros, encargándose
de toda la gestión del Cloud.
- Privado Una organización configura sus propios recursos de
forma mucho más flexible en una nube. En inglés también se
denomina "On premise cloud"
- Híbrido Se utilizan recursos de la nube privada o de una o
varias nubes públicas en función de las características de cada
caso o las necesidades puntuales que haya. Normalmente utilizan
una API común que permita una buena integración.
Cloud privado
- Los clouds públicos están bien, pero tienen algunos aspectos negativos:
- Privacidad
- Seguridad
- Vendor lock-in
- Control sobre los datos
- Personalización
- ¿Rendimiento?
- ¿Costes?
- Un cloud privado o híbrido es una opción a tener en cuenta si estos aspectos importan
IaaS
- Proveedores de cloud público IaaS: AWS, GCE y Azure. ¿Hay sitio para alguien más?
- Cloud Privado: VMware y plataformas de Software Libre, principalmente OpenStack
- IaaS es muy adecuada para servicios con demanda variable como el web:
Ejemplo de servicio en IaaS público
Servicio web de vídeo bajo demanda
Problema: Requitos de hardware muy variables con grandes picos y
valles
Alto coste en infraestructura tradicional
Solución: Clúster con un número de nodos variable en el
tiempo y que se ajuste a la demanda
- Se incluyen balanceadores para repartir la carga
- Se crean de forma automática nuevos servidores cuando se
precisa
- Cuando baja la demanda, se eliminan los servidores que
sobren.
OpenStack
“Plataforma de cloud computing hecha con
software libre para desplegar nubes públicas y privadas,
desarrollada con la idea de ser sencilla de implementar,
masivamente escalable y con muchas prestaciones”
¿Por qué OpenStack?
- Porque queremos instalar nuestro propio software para
proporcionar IaaS
- Porque es software libre
- Porque es un proyecto estable, con muchos apoyos y muy
buenas perspectivas de futuro
- Porque tiene muchas funcionalidades
- Porque podemos utilizar hardware convencional
- Porque es fácil de instalar (ejem!)
Otras alternativas
- OpenNebula, CloudStack y Eucalyptus
- Software libre
- Más compatibles con AWS
- Probablemente más sencillas de instalar
- Algunos componentes más maduros
- Proyectos más pequeños (ventajas e inconvenientes)
- VMware Vcloud
- Software privativo
- Optimizado para vSphere
- No compite en IaaS pública
- Acaba de publicarse VIO
Inicios de OpenStack
|
- Cloud propio desde 2005
- Cloud servers (IaaS)
- Cloud files (StaaS)
- Cambia a licencia libre en Abril 2010
|
|
- Comienza a utilizar Eucalyptus, pero lo deja por
ser ''open core''
- Crea el software para IaaS Nebula
- Cambia a licencia libre en Mayo 2010
|
|
- Ambas lo inician en Junio de 2010
- OpenStack Nova ⇦ Nebula
- OpenStack Swift ⇦ Cloud Files
|
Principios fundacionales
En Septiembre de 2012 se cede el control del proyecto a
la OpenStack
Foundation
Conceptos previos (I)
- Imagen: Imagen de sistema operativo preconfigurado que se
utiliza como base para crear instancias. Dentro del cloud habrá
diferentes imágenes para cada tipo de instacia que se quiera
utilizar.
- Instancia: Instancia de una imagen que se crea a
demanda del usuario en uno de los nodos del cloud.
- Sabor: Define para una instancia el número de CPUs
virtuales, la RAM, si dispone o no de discos efímeros, etc.
Conceptos previos (II)
- IP fija: Direccion IP con la que se crean una
instancia en una red y que se utiliza para comunicacion
interna. La dirección IP
fija no cambia durante la vida de la instancia.
- IP flotante: Direccion IP asociada a una
instancia en un momento dado para poder acceder a ella desde fuera. Una
IP flotante puede asignarse a otra instancia diferente cuando se estime
oportuno.
- Grupo de seguridad: Reglas de cortafuegos que
controlan el
acceso a las instancias.
- Par de claves ssh: Par de claves RSA pública/privada
utilizadas para acceder por ssh a las instancias desde fuera del
cloud.
Conceptos previos (III)
Implicaciones del uso de IaaS:
Evolución de las aplicaciones
Aplicaciones "clásicas"
- Pueden ejecutarse en cualquier tipo de Infraestructura
- No tolerantes a fallos
- Deben funcionar sobre hardware de altas prestaciones
- La redundancia la debe proporcionar la capa inferior
- Alta disponibilidad
- Típicamente escalan verticalmente (scale up)
- Funcionan sobre máquinas de vida larga (virtuales o no)
Implicaciones del uso de IaaS:
¿Por dónde empiezo?
Soy (quiero ser) desarrollador
- PaaS público
- IaaS público o privado
- Almacenamiento de objetos
- APIs RESTful
- Otras herramientas: vagrant, git, ansible, puppet, ...
Soy (quiero ser) administrador
- IaaS público: AWS
- IaaS privado: OpenStack
- Docker
- Infrastructure as Code:
- Gestión de la configuración: ansible, puppet, chef
- Control de versiones: git
- Entornos de pruebas
- Integración continua
- APIs RESTful
- AMQP
- Vagrant