Elastic Beanstalk, usos prácticos y conceptos

Preview:

Citation preview

Elastic Beanstalk Usos prácticos y conceptos

by Marc Cluet (@lynxman)

Ingeniero basado en Londres

Co-Fundador de Ukon Cherry

20 años de experiencia

Miembro fundador de MAAS (Canonical)

Involucrado en DevOps durante los últimos 7 años

Contribuidor Open Source

¿Quien soy?

London DevOps Meetup

¿Que es Elastic Beanstalk?

Es un PaaS

Fácil de usar

Autoescalable

Automatizable

¿Que es Elastic Beanstalk?

Servidor Web

Servidor de aplicaciones

Interprete de Lenguaje

Sistema Operativo

Servidor

¿Que es Elastic Beanstalk?Código

Servidor Web

Servidor de aplicaciones

Interprete de Lenguaje

Sistema Operativo

Servidor

¿Que es Elastic Beanstalk?Código

¿Que es Elastic Beanstalk?Version: 0.1

Version: 0.2

Version: 0.5

Version: 1.0

¿Que es Elastic Beanstalk?Version: 0.1

Version: 0.2

Version: 0.5

Version: 1.0

¿Que es Elastic Beanstalk?Version: 0.1

PRODUCCION Version: 0.2

STAGING Version: 0.5

DEVEL Version: 1.0

¿Que es Elastic Beanstalk?

Arquitectura de Beanstalkhttps://www.flickr.com/photos/86530412@N02/14796090251

Arquitectura de BeanstalkELB

Route 53 (opcional)

Beanstalk

RDS (opcional)

Arquitectura de BeanstalkELB

Route 53 (DNS dinamico)

Beanstalk

RDS (opcional)

1. Servicio simple 2. Servicio redundado

1. RDS 2. Docker 3. EC2

Arquitectura de Beanstalk

https://www.flickr.com/photos/krystalclear/3189597813

Arquitectura de BeanstalkELB

Route 53 (DNS dinamico)

BeanstalkVersion 0.5

RDS (opcional)

BeanstalkVersion 0.5

BeanstalkVersion 0.5

Arquitectura de BeanstalkELB

Route 53 (DNS dinamico)

BeanstalkVersion 0.5

RDS (opcional)

BeanstalkVersion 0.5

Beanstalk Version 0.5

Arquitectura de BeanstalkELB

Route 53 (DNS dinamico)

BeanstalkVersion 0.5

RDS (opcional)

BeanstalkVersion 0.5

Beanstalk Version 0.5

BeanstalkVersion 0.5

Arquitectura de BeanstalkELB

Route 53 (DNS dinamico)

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

Arquitectura de BeanstalkELB

Route 53 (DNS dinamico)

Deployment con Beanstalk

https://www.flickr.com/photos/zolakoma/4118276928

Deployment con Beanstalk

• Consola de AWS

• AWS SDK

• AWS CLI

• EB CLI

Deployment con Beanstalk

• Consola de AWS

• AWS SDK

• AWS CLI

• EB CLI

Deployment con Beanstalk

$ pip install awsebcli

$ cd miapp/

$ eb init

$ eb create

Upgrade con Beanstalk

$ git add .

$ git commit -m "v2.0"

$ eb deploy

Estrategias de DeploymentTodos de golpe

Rolling

Rolling con crecimiento

Inmutable

A/B

Todos de golpe (All at once)ELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

Todos de golpe (All at once)ELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

Todos de golpe (All at once)ELB

BeanstalkVersion 0.6

BeanstalkVersion 0.6

BeanstalkVersion 0.6

RollingELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

RollingELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

RollingELB

BeanstalkVersion 0.6

BeanstalkVersion 0.5

BeanstalkVersion 0.5

RollingELB

BeanstalkVersion 0.6

BeanstalkVersion 0.5

BeanstalkVersion 0.5

RollingELB

BeanstalkVersion 0.6

BeanstalkVersion 0.6

BeanstalkVersion 0.6

Rolling con crecimientoELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

Rolling con crecimientoELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

Rolling con crecimientoELB

BeanstalkVersion 0.6

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.6

Rolling con crecimientoELB

BeanstalkVersion 0.6

BeanstalkVersion 0.6

BeanstalkVersion 0.6

BeanstalkVersion 0.5

Rolling con crecimientoELB

BeanstalkVersion 0.6

BeanstalkVersion 0.6

BeanstalkVersion 0.6

InmutableELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

InmutableELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.6

InmutableELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.6

InmutableELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.6

InmutableELB

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.6

InmutableELB

BeanstalkVersion 0.6

BeanstalkVersion 0.6

BeanstalkVersion 0.6

A/BELB 1 (Activo)

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

ELB 2

A/B

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.6

BeanstalkVersion 0.6

ELB 1 (Activo) ELB 2

A/B

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.5

BeanstalkVersion 0.6

BeanstalkVersion 0.6

BeanstalkVersion 0.6

ELB 1 ELB 2 (Activo)

Deployment con BeanstalkEstrategia Impacto Tiempo Instancias

Todos de golpe Si · Existentes

Rolling No ·· Existentes

Rolling con crecimiento No ···

Existentes y nuevas

Inmutable No ···· Nuevas

A/B No ····· Nuevas

Un paso mas alla

https://www.flickr.com/photos/marcdalio/15977984286

Configuración de Beanstalk

• Directorio .ebxtensions

Configuración de Beanstalk

• Directorio .ebxtensions

• Configuración por entorno

• Configuración instancias

• Configuración interprete

Configuración de Beanstalk

Ventanas de mantenimiento

https://www.flickr.com/photos/elsie/1500337173

Ventanas de mantenimiento

¡Muchas gracias!

https://www.flickr.com/photos/hectorgarcia/75719454

Sígueme en Twitter

@lynxman

Recommended