36
From on-premise to full architectures on Openstack Guillermo Alvarado - @galvarado89 Francisco J. Araya - @fjaraya

From On Premise to Full Architectures On Openstack (spanish version)

Embed Size (px)

DESCRIPTION

Presentation made for the OpenStack Day Mexico 2014. Focused on describing how to get from hosting and vps world to full architectures using Heat Project.

Citation preview

Page 1: From On Premise to Full Architectures On Openstack (spanish version)

From on-premise to full architectures on Openstack

Guillermo Alvarado - @galvarado89Francisco J. Araya - @fjaraya

Page 2: From On Premise to Full Architectures On Openstack (spanish version)

Temario

•VPS•Cloud Servers•Las diferencias•Arquitectura•Automatización•OpenStack Heat•Plantillas•Caso de Uso•Demo

Page 3: From On Premise to Full Architectures On Openstack (spanish version)

Un viaje al pasado...

Los VPS / On-Premise

Page 4: From On Premise to Full Architectures On Openstack (spanish version)

VPS

•“VPS” Virtual Private Server

•Es un servidor común, pero con sus recursos virtualizados.

•Modelo de entrega de infraestructura como servicio. IaaS.

Page 5: From On Premise to Full Architectures On Openstack (spanish version)

Escalando recursos...

Cloud Servers

Page 6: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 7: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 8: From On Premise to Full Architectures On Openstack (spanish version)

Entonces a ¿A donde vamos?

Diferencias entre VPS y Cloud server

Page 9: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 10: From On Premise to Full Architectures On Openstack (spanish version)

Diferencias

•Podemos explotar los beneficios de un SDN: Redes virtuales, vSwitches y vRouters, etc.

Page 11: From On Premise to Full Architectures On Openstack (spanish version)

La evolución...

Arquitecturas

Page 12: From On Premise to Full Architectures On Openstack (spanish version)

Arquitecturas

Las Arquitecturas Cloud son los diseños y desarrollo de arquitecturas de software que hacen un uso eficiente de los servicios en cloud.

Page 13: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 14: From On Premise to Full Architectures On Openstack (spanish version)

Arquitecturas

Page 15: From On Premise to Full Architectures On Openstack (spanish version)

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.

Page 16: From On Premise to Full Architectures On Openstack (spanish version)

Dejemos de perder el tiempo,

Automaticemos

Page 17: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 18: From On Premise to Full Architectures On Openstack (spanish version)

Es el OpenStack Day, no?

OpenStack Heat

Page 19: From On Premise to Full Architectures On Openstack (spanish version)

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.

Page 20: From On Premise to Full Architectures On Openstack (spanish version)

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.

Page 21: From On Premise to Full Architectures On Openstack (spanish version)

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.

Page 22: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 23: From On Premise to Full Architectures On Openstack (spanish version)

¿Y cómo se hace?

Plantillas Heat

Page 24: From On Premise to Full Architectures On Openstack (spanish version)

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.

Page 25: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 26: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 27: From On Premise to Full Architectures On Openstack (spanish version)

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.

Page 28: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 29: From On Premise to Full Architectures On Openstack (spanish version)

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

Page 30: From On Premise to Full Architectures On Openstack (spanish version)

Plantillas

Además

•Las plantillas se integran con herramientas de gestión de configuración de software como de Puppet y chef

Page 31: From On Premise to Full Architectures On Openstack (spanish version)

Caso de Uso

Heat para Wordpress y MySQL

Page 32: From On Premise to Full Architectures On Openstack (spanish version)

Caso de uso

Page 33: From On Premise to Full Architectures On Openstack (spanish version)

Caso de uso

1.Creación de red virtual para comunicación privada2.Creación de Router virtual, para salida a Internet3.Enlazamiento de red privada a Gateway público4.Creación de servidor para Wordpress5.Creación de servidor para MySQL6.Comunicación entre servidores a través de interfaz privada7.Instalación de Wordpress8.Instalación de MySQL9.Configuración de MySQL (Usuarios y permisos)10.Configuración de Wordpress11.Asignación de IP Pública a servidor Wordpress

Page 34: From On Premise to Full Architectures On Openstack (spanish version)

La curiosidad me mata, ¡Quiero ver!

Demo

Page 35: From On Premise to Full Architectures On Openstack (spanish version)

Dudas, comentarios y sugerencias

@galvarado89@fjaraya

Page 36: From On Premise to Full Architectures On Openstack (spanish version)