Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Evitá (tantos) bugs en tu código: Zuul CI al rescate

vkmc
October 22, 2021

Evitá (tantos) bugs en tu código: Zuul CI al rescate

Zuul CI es una plataforma de CI/CD open source que se especializa en el control de cambios entre múltiples repositorios y es usada por muchos proyectos de gran escala. Conocé más detalles de qué es, cómo funciona y datos de uso reales de esta herramienta.

vkmc

October 22, 2021
Tweet

More Decks by vkmc

Other Decks in Technology

Transcript

  1. ¡HOLA! Victoria Martinez de la Cruz Senior Software Engineer en

    Red Hat Fundadora de LinuxChix Argentina 2
  2. 3 AGENDA • Cómo hacemos CI • Gating • Zuul

    • Caso de uso de OpenStack • Deploy básico
  3. CÓMO HACEMOS CI PASADO Post-merge Escribir el código, hacer un

    build, comprobar que funciona Claramente no apto para software profesional moderno PRESENTE Pre-merge Escribir código, ejecutar tests, hacer un build, comprobar que funciona Estrategia de CI común en diferentes organizaciones FUTURO Gating Escribir código, ejecutar tests en el orden en que los cambios se van mergeando, hacer un build, comprobar que funciona Lo que Zuul hace 5
  4. 6 ZUUL CI Solución de continuous integration, delivery (CI/CD) y

    system deployment especializada en el project gating y cross-project testing
  5. 7 ZUUL CI CONCEPTOS • Zuul pipelines ◦ Procesos que

    pueden hacer aplicados a uno o más proyectos ◦ E.g. Check, gate, post pipelines • Zuul triggers ◦ Acciones a ejecutar cuando pasa un evento ◦ Soporte para diferentes triggers ◦ E.g. nuevo cambio para review, recheck
  6. 8 ZUUL CI CONCEPTOS • Zuul reporters ◦ Responsables de

    reportar el resultado de la ejecución de los procesos ◦ Soporte para diferentes reporters ◦ E.g. Gerrit reporter deja un review positivo o negativo
  7. 9 ZUUL CI FEATURES • Simplicidad ◦ Zuul usa YAML

    para describir los pipelines ◦ Zuul usa Ansible para describir los jobs a ejecutar • Global, pero distribuido ◦ Las definiciones de los pipelines pueden usarse en más de un proyecto ◦ Los jobs son especificos ◦ Herencia
  8. 10 ZUUL CI FEATURES • Multi-tenant ◦ Mejora la colaboración

    entre equipos ◦ Autonomía y el control para cada proyecto ◦ DRY. Posibilidad de compartir definiciones de pipelines y jobs entre proyectos, usuarios y hasta otros deployments de Zuul
  9. 11 ZUUL CI FEATURES • Cross projects ◦ Posibilidad de

    crear dependencias entre cambios de diferentes repositorios • Cross connections ◦ Posibilidad de crear dependencias entre cambios en diferentes plataformas (Github, Gitlab, entre otros)
  10. 13 ZUUL CI FEATURES • Multi node y multi cloud

    ◦ AWS, Azure, GC, K8s, OpenStack, OpenShift, etc ◦ Load balancing ◦ Evitar vendor lock-in
  11. 15 ZUUL PARA OPENSTACK Zuul nace en la comunidad de

    OpenStack para poder agilizar el release cycle y mejorar la calidad del producto
  12. 17 CONTRIBUTION WORKFLOW OPENSTACK manila / master manila / master

    Zuul (gate pipeline) manila / bug/12345 manila / bug/12345 Development env Upstream code Gerrit (pair-review system) Review reqs Zuul: +1 (Human) reviews Zuul (check pipeline) git clone git branch bug/12345 fix changes run tests git commit git review 2 +2 +A
  13. 20 QUICKSTART Quickstart instructions • Docker-compose • Zookeeper, Gerrit, Nodepool,

    Zuul scheduler, Zuul Web Server, Zuul executor, Apache HTTPD Getting Started with Zuul Zuul docs