Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cómo desarrollar tu aplicación cloud-ready sin morir en el intento

vkmc
December 03, 2016

Cómo desarrollar tu aplicación cloud-ready sin morir en el intento

DevDayAR 2016. Migrar tus workloads a la nube no es ponerlos adentro de un container... en esta presentación se detallan algunos tips a tener en cuenta a la hora de construir y migrar aplicaciones a la nube

vkmc

December 03, 2016
Tweet

More Decks by vkmc

Other Decks in Programming

Transcript

  1. VICTORIA MARTINEZ DE LA CRUZ SOFTWARE ENGINEER EN RED HAT

    CO-FOUNDER LINUXCHIX ARGENTINA SYSARMY JUNIOR CADET
  2. CLOUD READY & CLOUD CENTRIC Clasificación común Cloud ready: Desplegada

    efectivamente en una nube pública o privada Cloud centric: Construida usando herramientas y rutinas diferentes a las aplicaciones tradicionales.
  3. TOPOLOGÍA DE APLICACIONES DINÁMICAS Si la topología tiene que cambiar,

    va a cambiar Desplegá tu aplicación de la forma más genérica y stateless posible. Esto va a permitir que: Escalar selectivamente componentes individuales Simplificar mantenimiento y reutilización Tolerancia a fallas E.g. No hardcodees información sobre redes, delega ese trabajo al servicio de redes de la nube
  4. ALMACENAMIENTO EFÍMERO Nunca asumas que el sistema de archivos local

    es permanente Usá un almacenamiento remoto para los datos no estáticos Cache Logs E.g. Podés usar los volúmenes provistos por el servicio de almacenamiento por bloques para almacenar los datos
  5. STATELESS Cualquier forma de statefulness limita la escalabilidad de una

    aplicación Eliminá o, si es necesario, almacená el estado de la sesión en un almacenamiento externo HA a tu servidor de aplicaciones (una caché o base de datos) E.g. Podés usar el servicio de bases de datos para lanzar una instancia de base de datos
  6. ESTÁNDARES Usa servicios y APIs basados en estándares para la

    portabilidad a entornos en la nube Evitá usar protocolos propietarios No dependas de librerías específicas al sistema operativo subyacente
  7. AUTOMATION Las aplicaciones en la nube necesitan ser desplegadas rápidamente

    y por demanda Automatizá la configuración Minimizá las dependencias requeridas para la instalación de aplicaciones
  8. APACHE LIBCLOUD from libcloud.compute.types import Provider from libcloud.compute.providers import get_driver

    import libcloud.security libcloud.security.VERIFY_SSL_CERT = False OpenStack = get_driver(Provider.OPENSTACK) driver = OpenStack('your username', 'your password', ex_force_auth_url='https://nova-api.trystack.org:5443', ex_force_auth_version='2.0_password') nodes = driver.list_nodes() images = driver.list_images() sizes = driver.list_sizes() size = [s for s in sizes if s.ram == 512][0] image = [i for i in images if i.name == 'natty-server-cloudimg-amd64'][0] node = driver.create_node(name='test node', image=image, size=size)
  9. OPENSTACK HEAT Heat Orchestrator Template (HOT) - YAML Control sobre

    el ciclo de vida completo de una aplicación Compatibilidad con AWS Cloudformation