From on premise to full architectures on Openstack
-
Upload
guillermo-alvarado-mejia -
Category
Technology
-
view
127 -
download
0
Transcript of From on premise to full architectures on Openstack
From on-premise to full
architectures on OpenstackGuillermo Alvarado - @galvarado89
Francisco J. Araya - @fjaraya
Temario
•VPS
•Cloud Servers
•Las diferencias
•Arquitectura
•Automatización
•OpenStack Heat
•Plantillas
•Caso de Uso
•Demo
Un viaje al pasado...
Los VPS / On-Premise
VPS
•“VPS” Virtual Private Server
•Es un servidor común, pero con
sus recursos virtualizados.
•Modelo de entrega de
infraestructura como servicio.
IaaS.
Escalando recursos...
Cloud Servers
Cloud servers
•Realmente es una
evolución a una estructura
de nube integrada.
•En minutos, podemos
añadir balanceadores de
carga, bases de datos,
almacenamiento,
monitoreo y DNS como
servicios adicionales
Cloud servers
•Podemos escalar recursos hacia
arriba o hacia abajo en cualquier
momento
•Cuenta con una herramienta de
gestión de los recursos
•Modelo de servicio “Pay as you
go” otorgando mayor flexibilidad
Entonces a ¿A donde vamos?
Diferencias entre VPS y
Cloud server
Diferencias
•Un servidor cloud es tolerante a fallos de hardware, un VPS
no. Es decir, puede cambiar de Host.
•Gracias al dinamísmo del cloud server, se pueden generar
estrategias de Alta disponibilidad
Diferencias
•
•Podemos explotar los beneficios de un SDN: Redes
virtuales, vSwitches y vRouters, etc.
La evolución...
Arquitecturas
Arquitecturas
Las Arquitecturas Cloud son los diseños y desarrollo de
arquitecturas de software que hacen un uso eficiente de los
servicios en cloud.
Arquitecturas
Las Características de una arquitectura Cloud:
•Ejecutan de forma óptima las tareas para cubrir una
necesidad de negocio.
•Sólo hacen uso de la infraestructura de computación que es
necesaria en cada momento.
•Escalan basándose en la demanda, asignando y realizando
el aprovisionamiento y destrucción de servidores según sea
necesario de manera automática
Arquitecturas
Arquitecturas
Las aplicaciones soportadas en una arquitectura cloud,
necesitan:
•Desplegar detrás de un Firewall, sin internet.
•Escalar recursos hacia arriba o hacia abajo.
•Realizar flujos con las apps (MySQL, Django, etc)
•Manejar las redes virtuales entre los servidores
•Dar de baja o aumentar el número de servidores
•Realizar y restaurar backups
•Gestionar el DNS
El problema? Son tareas concurrentes, repetitivas.
Dejemos de perder el tiempo,
Automaticemos
Arquitecturas
Resolvamos esto mediante un enfoque DevOps: definiendo
hooks para gatillar tareas automatizadas como:
•Aprovisionamiento de una nueva instancia
•Instalación del software necesario
•¿Cuando escalo mis recursos?
•¿En que momento agrego más servidores?
•Política de restauración de Backups
•Modificación de los records DNS
•Ampliar el pool del Load Balancer
Es el OpenStack Day, no?
OpenStack Heat
Heat
Heat es un servicio para orquestar múltiples aplicaciones
sobre Openstack, es decir, provee un mecanismo para
manejar el ciclo de vida de las aplicaciones y la
infraestructura Cloud.
Ofrece a desarrolladores y administradores de sistemas un
método sencillo de crear un stack de recursos de Openstack
relacionados entre sí para ofrecerlos de una manera
ordenada y predecible.
Heat
Openstack por filosofía es interoperable, por esta razón Heat
es compatible con el formato de la plantilla de Amazon Web
Services, CloudFormation.
Heat
Las plantillas permiten la creación de la mayoría de los tipos
de recursos de OpenStack:
•IPs flotantes
•Instancias de computo
•Redes Virtuales
•Volúmenes de almacenamiento
•Grupo de seguridad/Firewall
•Usuarios
Así como funciones más avanzadas como alta disponibilidad,
autoscaling, configuraciones de servicios third party, etc.
Heat
Además Heat permite describir cualquier dependencia o
parámetro especial para transmitirlo en el tiempo de
ejecución, habilitandonos a trabajar con distintas
aplicaciones como:
•WordPress
•Django
•RoR
•MySQL
•GIT
•Nginx
•Etc
¿Y cómo se hace?
Plantillas Heat
Plantillas
Las plantillas son sencillos archivos de texto con formato
YAML, son un documento que detalla la orquestación de todo
lo que se necesita para llevar a cabo un stack.
Heat Orchestration Template (HOT), es el lenguaje para
escribir una plantilla de Heat.
Plantillas
# Definitions of components used (similar to Juju charm syntax)
components:
- &wordpress_reference_id
id: wordpress
revision: 3
summary: "A popular blog engine"
provides:
url:
interface: http
requires:
db:
interface: mysql
server:
relation: host
interface: linux
options:
url:
type: String
default: wp.test.local
description: the url to use to host your blog on
- &mysql.1
id: mysql
revision: 1
summary: "A popular database. Note, this is a cloud database and therefore does not need a host"
provides:
db: mysql
Plantillas
¿Que dice la plantilla?
•En una plantilla se describe la infraestructura para una
aplicación cloud.
•Los recursos de infraestructura que pueden ser descritos
incluyen: servidores, ips flotantes , volúmenes, grupos de
seguridad , usuarios, etc.
•Las plantillas también pueden especificar las relaciones
entre los recursos, por ejemplo, este volumen está conectado
a este servidor
Plantillas
¿Como funciona?
•El motor de Heat genera los datos que serán consumidos
por cloud-init
•Heat se comunica con Nova para crear la instancia
•Nova selecciona un servidor compute donde ejecutar la
instancia
•Cuando la instancia bootea, se ejecutan las tareas de
redimensionar el filesystem, setear el hostname, instalar la
llave SSH del usuario, etc.
Plantillas
¿Como funciona?
•Posteriormente, se ejecuta el resto del script de la plantilla
para instalar paquetes, crear archivos, gestionar el
filesystem, etc.
•Heat se comunica con Cinder para aproviosionar Volúmenes
de almacenamiento en caso de ser necesarios
•Heat guarda los logs de las actividades en: /var/log/part-
handler.log y /var/log/heat-provision.log
Plantillas
Además
•Heat gestiona todo el ciclo de vida de la aplicación cuando
se necesita cambiar la infraestructura, simplemente se
modifica la plantilla, y se aplica al stack existente. Heat sabe
cómo hacer los cambios necesarios.
•De la misma manera, heat eliminará todos los recursos extra
cuando haya terminado con la solicitud
Plantillas
Además
•Las plantillas se integran con herramientas de gestión de
configuración de software como de Puppet y chef
Caso de Uso
Heat para Wordpress y
MySQL
Caso de uso
Caso de uso
1.Creación de red virtual para comunicación privada
2.Creación de Router virtual, para salida a Internet
3.Enlazamiento de red privada a Gateway público
4.Creación de servidor para Wordpress
5.Creación de servidor para MySQL
6.Comunicación entre servidores a través de interfaz
privada
7.Instalación de Wordpress
8.Instalación de MySQL
9.Configuración de MySQL (Usuarios y permisos)
10.Configuración de Wordpress
11.Asignación de IP Pública a servidor Wordpress
La curiosidad me mata, ¡Quiero ver!
Demo
Dudas, comentarios y sugerencias
@galvarado89
@fjaraya