
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
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.
- 472