Victor Aguilar C.

vicobits@gmail.com

Past leader de comunidades como GDG La Paz y Docker La Paz, actualmente.

Sr. Software Engineer en Fondeadora

Antes de Empezar

¿Cómo desplegamos nuestras apps?

Despliegue

Infraestructura

Es hacer que esté disponible en internet y se pueda acceder a esta a través de

una url, ip o dominio

Aprovisionamiento

Instalación

Infraestructura

 Servidores Fisicos y Virtuales

etc, etc ....

Aprovisionamiento

Aplicaciones que necesitamos tener en los servidores

etc, etc ....

Evolución de las herramientas de despliegue

Manual

Scripts

Declarativos

Abstracciones

Wiki, Documentación, Preguntale al devops

Bash, Fabric (python), etc...

Cloud Formation, Terraform

AWS CDK, Pulumi

Generadores

Troposphere, GoFormation

Dile No!  al despliegue Manual

Ventajas

Desventajas

  • Consume tiempo
  • Poco mantenible
  • No es fácil agregar CI/CD
  • Inseguro
  • No es reproducible
  • No es versionable
  • Un largo etc....
  • Relativamente fácil

Herramientas más utilizadas

Declarative

Abstraction

Se define la infra en documentos yml, json, etc.

Se define la infra en usando lenguajes de programación

Es un framework para definir recursos  de infraestructura en AWS mediante un lenguaje de programación.

Java, TypeScript, JS, Python, C# y Go

¿Porque usar algo como CDK?

  • Haces menos código
  • Puedes usar tu lenguaje favorito 
  • Puedes aplicar técnicas de programación a tu Infra
  • Puedes agregar tests unitarios
  • Puedes hacer Infra multi-stage muy fácil
  • Cuenta con poderosas herramientas y una gran comunidad
  • Es soportado por los proveedores de nube

AWS CDK - Architecture

AWS CDK - Components

AWS CDK - Workflow

Time

Demo

1
 

Static/SSR React Project

+

Time

Requerimientos

  • Tener python/nodejs y pipenv instalados
  • Tener una cuenta AWS
  • Tener cuenta en GitHub o alguno similar

Static Project

Blog

S3 Bucket

CloudFront

Route53

GitHub Repo

Beta / Prod

https://beta.enpython.com

https://enpython.com

CI Pipeline

React app

CDK  app

CDK Examples

1

2

CDK  avanzado

Django App

SSR Project

Blog

ECS

Load Balancer

Route53

CI Pipeline

ECR

GitHub Repo

https://ssr.domain.xyz

https://ssr-beta.domain.xyz

Beta / Prod

Conclusiones

  • Puedes AWS CDK/Pulumi como dev, usando un lenguaje de programación

  • Puedes aplicar las técnicas de desarrollo, y aprovechar mucho mas tu background dev.

  • Puedes Reutilizar Componentes

  • Puedes Aprovechar todos los recursos de la comunidad

Recursos Útiles

- Ejemplos creados con CDK

https://github.com/aws-samples/aws-cdk-examples

 

- Custom Constructs  de la comunidad

https://constructs.dev/

 

- Taller para aprender CDK con TS, Java y Python
https://cdkworkshop.com/

 

- Muchos Recursos para practicar CDK

https://cdk.dev/

¿Preguntas?

https://github.com/victoraguilarc

Infra como Código para Devs

By Victor Aguilar

Infra como Código para Devs

Esta charla es acerca de CDK, una herramienta con la que puedes construir infra con las técnicas de desarrollo y programación que conoces.

  • 224