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