Ajuste del rendimiento de las canalizaciones
Identifique cuellos de botella y aplique técnicas avanzadas para optimizar la velocidad de ejecución y el consumo de recursos de sus workflows de GitHub Actions.
Ajuste del rendimiento de las canalizaciones es una lección gratuita de CI/CD with GitHub Actions & DevOps Pipelines en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CI/CD with GitHub Actions & DevOps Pipelines, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CI/CD with GitHub Actions & DevOps Pipelines incluye 4 lecciones en total.
Aumente la velocidad de su pipeline
¡Le damos la bienvenida a Ajuste del rendimiento de pipelines! En el desarrollo moderno, los pipelines de CI/CD rápidos son fundamentales para obtener comentarios rápidamente y utilizar los recursos de forma eficiente.
Los pipelines lentos desperdician tiempo y dinero. En esta lección aprenderá técnicas avanzadas para identificar cuellos de botella y acelerar considerablemente sus workflows de GitHub Actions.
Cómo encontrar cuellos de botella en los workflows
Antes de optimizar, debe saber *qué* optimizar. GitHub Actions proporciona excelentes herramientas para localizar los pasos o trabajos lentos.
- Interfaz de GitHub: consulte los registros de ejecución de los workflows. La vista de cronología muestra claramente cuánto tardó cada trabajo y cada paso.
- Resúmenes de trabajos: busque pasos con duraciones inusualmente largas.
- Registros de las acciones: los registros detallados pueden revelar comandos o procesos específicos que consumen más tiempo.
Concéntrese en los pasos que tardan más de forma constante.
Ejecución en paralelo de trabajos independientes
Si algunas partes de su workflow no dependen entre sí, ¡ejecútelas al mismo tiempo! Es una forma sencilla pero potente de reducir el tiempo total de ejecución.
Defina varios trabajos de nivel superior en su workflow. GitHub Actions los ejecutará en paralelo de forma predeterminada, siempre que no especifique dependencias needs entre ellos.
name: Parallel Jobs Example
on: [push]
jobs:
build-frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Frontend
run: echo "Building frontend..."
build-backend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Backend
run: echo "Building backend..."
Optimización de la acción de checkout
La acción actions/checkout obtiene el código de su repositorio. En repositorios grandes o con un historial extenso, este proceso puede ser lento. Optimícelo:
- Clonación superficial: use
fetch-depth: 1para obtener únicamente el commit más reciente y ahorrar una cantidad considerable de tiempo en la mayoría de las tareas de CI/CD. - Checkout disperso: si solo necesita un subconjunto de archivos, considere usar un checkout disperso (aunque a menudo es más complejo de configurar).
Evite fetch-depth: 0 salvo que sea absolutamente necesario, ya que descarga todo el historial.
name: Optimized Checkout
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1 # Only fetch the latest commit
- name: Run Build
run: echo "Code checked out and building..."
Reducción del tamaño de los artefactos de compilación
Si su workflow carga o descarga artefactos (como binarios compilados o informes de pruebas), su tamaño afecta directamente al rendimiento.
Para acelerar el proceso:
- Incluya solo los archivos necesarios: no cargue directorios de compilación temporales ni registros que no necesite.
- Comprima los artefactos: si es posible, comprima los artefactos grandes antes de cargarlos. La acción
actions/upload-artifactgestiona la compresión automáticamente, pero asegúrese de que los archivos de origen sean mínimos.
Filtrado por rutas para mejorar la eficiencia
No todos los cambios de código deben activar todos los trabajos. Use el filtrado por rutas para ejecutar los trabajos solo cuando se modifiquen archivos relevantes.
Esto resulta especialmente útil en repositorios grandes, donde un cambio en la documentación no debería activar una compilación completa del backend.
Especifique paths o paths-ignore dentro del trigger on de su workflow.
name: Path Filter Example
on:
push:
paths:
- 'frontend/**'
- 'shared/**'
jobs:
build-frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Frontend
run: echo "Frontend files changed, building..."
Runners más rápidos y asignación de recursos
Las máquinas virtuales (runners) que ejecutan sus workflows tienen distintos tamaños y tipos. Para tareas que requieren mucho uso de CPU, un runner más potente puede reducir drásticamente el tiempo de ejecución.
- Runners más grandes alojados por GitHub: GitHub ofrece runners más grandes (por ejemplo,
ubuntu-latest-xlarge) para cargas de trabajo más exigentes. - Runners autohospedados: si necesita hardware muy específico o quiere minimizar la latencia de red con recursos internos, puede optimizar los runners autohospedados según sus requisitos exactos.
Estrategias avanzadas de almacenamiento en caché
Almacenar las dependencias en caché (como paquetes de npm o artefactos de Maven) es fundamental. Vaya más allá del almacenamiento en caché básico con estos consejos:
- Claves de caché granulares: use claves de caché más específicas para evitar fallos de caché innecesarios. Por ejemplo, incluya un hash de un archivo de bloqueo específico y del sistema operativo.
- Varias cachés: no coloque todo en una única caché grande. Separar las cachés según el tipo de dependencia (por ejemplo, node_modules y paquetes de pip) puede mejorar la tasa de aciertos.
- Claves de restauración: use
restore-keyspara probar varias claves de caché si no se encuentra la principal, aumentando las probabilidades de obtener un acierto parcial.
name: Advanced Caching
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Node Modules
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: | # Try less specific keys if primary misses
${{ runner.os }}-node-
- name: Install Dependencies
run: npm ci
Optimice este workflow
Considere un workflow que compila código tanto del frontend como del backend. Actualmente, se ejecuta de forma secuencial y el checkout obtiene todo el historial. ¿Qué dos cambios mejorarían considerablemente su rendimiento?
name: Inefficient Workflow
on: [push]
jobs:
build-all:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Frontend Deps
run: npm install
- name: Build Frontend
run: npm run build
- name: Install Backend Deps
run: pip install -r requirements.txt
- name: Build Backend
run: python setup.py build
Repaso: ajuste para aumentar la velocidad
¡Ha aprendido técnicas potentes para optimizar sus workflows de GitHub Actions!
- Identificar cuellos de botella: use la interfaz de GitHub y los registros.
- Ejecutar trabajos en paralelo: ejecute las tareas independientes de forma simultánea.
- Optimizar el checkout: use clonaciones superficiales.
- Reducir los artefactos: mantenga reducidos los tamaños de carga y descarga.
- Filtrado por rutas: ejecute los trabajos solo cuando cambien archivos relevantes.
- Runners más rápidos: elija los recursos adecuados para los runners.
- Almacenamiento en caché avanzado: use claves granulares y varias cachés.
Al aplicar estas estrategias, puede hacer que sus pipelines sean más rápidos y eficientes, y ahorrar tiempo y recursos valiosos.
Preguntas frecuentes
¿La lección «Ajuste del rendimiento de las canalizaciones» es gratis?
Sí — el texto completo de «Ajuste del rendimiento de las canalizaciones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CI/CD with GitHub Actions & DevOps Pipelines, actualiza a CoddyKit PRO. El curso de CI/CD with GitHub Actions & DevOps Pipelines incluye 4 lecciones en total.
¿Qué aprenderé en «Ajuste del rendimiento de las canalizaciones»?
Identifique cuellos de botella y aplique técnicas avanzadas para optimizar la velocidad de ejecución y el consumo de recursos de sus workflows de GitHub Actions. Practicas CI/CD with GitHub Actions & DevOps Pipelines con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar CI/CD with GitHub Actions & DevOps Pipelines?
No se requiere experiencia previa. CI/CD with GitHub Actions & DevOps Pipelines en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Ajuste del rendimiento de las canalizaciones»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de CI/CD with GitHub Actions & DevOps Pipelines?
Sí. Cada lección de CI/CD with GitHub Actions & DevOps Pipelines incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Métricas DORA y salud de CI/CD
- Ajuste del rendimiento de las canalizaciones
- Tendencias futuras en la automatización de DevOps
- Optimización del coste de CI/CD y la eficiencia de los runners