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