Integración Continua con
Github Actions
Victor Aguilar
vicobits@gmail.com
¿Que es CI?
Es una práctica en el desarrollo del software donde un equipo verifica el código de un proyecto continuamente y de forma automatizada, esto con el fin de detectar errores y reducir el tiempo de depuración.
Ventajas de CI
- Mejora la productividad del equipo
- Facilita la detección y resolución de errores
- Acelera la entrega de actualizaciones
Continuous Integration
vs
Continuous Delivery
vs
Continuous Deployment
Integración Continua
CONTINUOUS INTEGRATION (CI)
TEAM
PROJECT
CI / PIPELINE
FAILURE / SUCCESS
Entrega Continua
TEAM
PROJECT
CI / PIPELINE
FAILURE / SUCCESS
CONTINUOUS DELIVERY (CD)
Despliegue Continuo
TEAM
PROJECT
CI / PIPELINE
FAILURE / SUCCESS
CONTINUOUS DEPLOYMENT
Motores de Integración Continua
GitHub Actions
FUNDAMENTALS
GitHub Actions
WORKSPACE
¿Que considerar?
CONSTRUCCIÓN
DISTRIBUCIÓN
Como sobrellevar esos retos
Mantenibilidad
Disponibilidad
La Construcción
DEL PROYECTO
1. Usar una arquitectura para escalar desde el Inicio
2. Evitar un unico punto de fallo
Desacoplamiento o API First
3. Usar cache, pero sabiamente
Cache
Server
request
response
original fetch
browser cache
Un cache es como el poder, si lo usas sin control, puede terminar volviendote loco
- Yo
Solo hay dos cosas difíciles en las Ciencias de la computación:
cómo nombrar variables e invalidar cache
- Phil Karlton
4. Optimizar la obtención de Datos, siempre
La mayor parte del tiempo transcurrido desde un request hasta un response tiene que ver con consultas a las bases de datos
5. Rastrear todo, en especial los errores
Bug
Feature
o como dice la banda agregar logs a todo
6. Hacer pruebas por amor de Dios,
muchas pruebas
Unitarias
Funcionales
Integración
UI
Carga
etc ...
Haz pruebas, te aseguro que tu yo del futuro de lo agradecera
P R U E B A S
Para que no se les olvide
7. Asincrono cuando sea necesario
8. Prepararse para los fallos,
Rollbacks Rapidos
a este consejo yo le llamo el invitado especial, Murphy
El Despliegue
DEL PROYECTO
Tipos de escalabilidad
VERTICAL
HORIZONTAL
Primeros Recursos
1 - 1000
Dominio
Servidores
Base de Datos
Alta Disponibilidad
Multiples Servidores
Balanceo de Carga
1000+
Performance & Monitoring
10k ~ 100k
Indexing
Cache
Object Storage
CDNs
Combine NoSQL
Automation
500.000+
Auto Scaling
Auto Provisioning
Infra as Code
Arquitecture Improvements
1M+
Queues
Notifications
Serverless
SOA
Microservices
Victor Aguilar C.
victor.aguilar@grow.mobi
Past leader de comunidades como GDG La Paz y Docker La Paz, actualmente.
Senior Backend Dev en Grow Mobility
¿Preguntas?
@vicobits
Integración Continua con GitHub Actions
By Victor Aguilar
Integración Continua con GitHub Actions
Como hacer aplicaciones escalables
- 251