Este documento presenta opciones para automatizar el despliegue de aplicaciones en entornos multi-cloud, incluyendo Terraform y Ansible. Terraform permite crear y gestionar infraestructura de manera independiente del proveedor en múltiples clouds. Ansible configura software e instalaciones en instancias de manera independiente del proveedor. La presentación incluye demostraciones de creación de instancias en AWS usando Terraform e instalación de WordPress usando Ansible.
Guia Basica para bachillerato de Circuitos Basicos
Automatización del despliegue de aplicaciones multi cloud
1. Automatización del despliegue
de aplicaciones en ambientes
multi-cloud
Mario Rivera
https://www.linkedin.com/in/mariomarboni
@MarioMarboni
#sgnext
2. Objetivo de la presentación
• Conocer la manera en que los proveedores de nube actuales
permiten la creación de infraestructura de manera automatizada.
• Presentar diferentes opciones para el despliegue de infraestructura y
aplicaciones en entornos multi-cloud.
• Demo de creación de infraestructura en entornos cloud.
4. ¿Qué es Multi-Cloud?
• “El uso de múltiples servicios de cómputo en la nube en una única
arquitectura homogénea” (fuente: Wikipedia).
• El uso de 2 o más servicios Clouds (proveedores).
• Ejemplos:
• Ejecutar la capa de presentación en AWS, y la capa de datos en Azure.
• Utilizar Google Vision APIs para una aplicación ejecutándose en AWS.
5. ¿Qué es una estrategia multi-cloud?
• La idea principal es:
• minimizar el riesgo de pérdida de datos o de fallas en la funcionalidad de las
aplicaciones.
• Debido a fallas en el datacenter del proveedor.
• Hardware, software, infraestructura en general.
• Aunque también sirve para “evitar casarse” con un solo proveedor
Cloud.
• Ayuda a aprovechar las fortalezas de los proveedores Cloud para
mejorar el negocio.
6. Ventajas de una estrategia multi-cloud
• Menor dependencia de 1 solo proveedor.
• Obtener lo mejor de cada proveedor en cuanto a servicios.
• Optimizar costos en servicios específicos.
7. Problemas al utilizar entornos multi-cloud
• Diferentes proveedores.
• Cada proveedor tiene sus propios métodos para la creación de
infraestructura (no compatibles entre si).
• Difícil encontrar “talento humano” que conozca de diferentes
proveedores.
• Incrementa la complejidad de despliegue de aplicaciones.
13. Terraform
• Una herramienta para construir, cambiar y controlar la infraestructura
en forma segura, rápida y eficiente.
• Puede gestionar proveedores de servicios Cloud así como soluciones
internas personalizadas.
• La infraestructura que puede manejar Terraform incluye
componentes como:
• Instancias de cómputo (máquinas virtuales)
• Bases de Datos
• Almacenamiento y redes
14. Terraform
• Es independiente del proveedor Cloud y permite una única
configuración para gestionar múltiples proveedores.
• Esto simplifica la gestión y orquestación de ambientes, ayudando a
construir infraestructuras a gran escala.
• Puede trabajar con:
• AWS
• Microsoft Azure
• Google Cloud Platform
• OpenStack
• DigitalOcean
• Entre otros…..
16. Ansible
• Ansible es una plataforma de software libre para configurar y
administrar computadoras (instancias).
• Configura el software y características que debe instalarse en una
instancia determinada.
• Administra la configuración de cada instancia o grupos de instancias
(por ejemplo de servidores web) a través de un “inventario” de hosts.
• Es independiente del proveedor cloud.
• También tiene funcionalidad para crear recursos.
20. Demo - comentarios
• Creación de infraestructura desde 0.
• Posibilidad de crear los servicios que el proveedor Cloud proporciona.
• Se mantiene el estado de los elementos creados – se pueden
modificar después agregando nuevos componentes.
• Opción para “destruir” toda la infraestructura creada.
• Más ejemplos de código Terraform:
• https://github.com/hashicorp/terraform/tree/master/examples
22. Mis recomendaciones
• Abrir cuentas gratis de los principales proveedores Cloud (AWS,
Azure, GCP) para entender su funcionamiento.
• Utilizar Terraform para la creación y cambios de infraestructura.
• Utilizar Ansible para la configuración general de las instancias.
• Utilizar Jenkins para el despliegue de aplicaciones (actualizaciones de
código).