Taller CI/CD #11
Notifications
Total Time Spent: 1 second
Chacluclu
1 second
No due date set.
Depends on
#3 Instalación y despliegue de jenkins en VPS
OpenBokeron/Web
Reference: OpenBokeron/Actividades#11
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Se propone realizar un taller sobre integración continua con Jenkins (open source).
Ideas de proyecto base
Lo veo interesente, asumo que esto es para un nivel un poco más avanzado.
Desarrolla porfas xd
Añado:
En cuanto a la introducción se haría necesario mencionar el por qué del CI/CD, presentar los problemas y relacionarlos con lo que pueden haber visto o lo que verán en el trabajo. Tales como: problemas al integrar desarrollos de varios, mantener siempre una versión estable en la rama principal, y lo clásico de despliegues
En cuanto al proyecto base sobre el que iterar, considero que podría tener cierta complejidad. Aunque, este punto es discutible, el taller puede decaer fácilmente en algo aburrido como una clase genérica de universidad. Vería bien aumentar la complejidad del proyecto base. Tiene que haber un punto dulce.
La metodología del taller debe pensarse y trabajarse para evitar lo dicho en el punto anterior. Es la parte más complicada diría.
En cuanto a @Chacluclu,
Si se quiere tirar por ahí creo que merece la pena complicarlo un poco. Vería bien incluso añadir un frontend sencillo para ejemplificar la construcción y despliegue de dos artefactos (front y back) junto con los tests de cada parte. Para simplificar la construcción se puede ofrecer un
Dockerfile, que se usa bastante en lo laboral para luego hacer despliegues en Kubernetes de forma automatizada. Así la construcción del artefacto en Jenkins queda limpia y nos podemos centrar en otras cosas.Sigue pendiente aterrizar el flujo del taller para no caer en un estilo docente. Quizá buscando maneras de involucrar a los asistentes: que toquen alguna parte del código en sus propias ramas y vean cómo se actualiza el producto final de forma prácticamente inmediata. O mostrar qué ocurre cuando se introduce un error, para que así puedan experimentar.
@husbando_enjoyer se puede añadir el frontend para hacer el paripé. Menos mal que comentas lo de como involucrar a la gente, porque lo que se me había ocurrido es que hagan PR al repo, pero no se si podrán
Es un punto que hay que tratar de forma extensa. Pues también debemos pensar en el propio Jenkins, si se quiere hacer eso entonces debemos alojarlo nosotros como tal con las implicaciones que ello conlleva. Pero también estaría bien que los asistentes pues trasteasen con el propio pipeline como tal. Queda pendiente de concretar en alguna reunión.
Me parece un buen taller aunque es más del software(tema que no controlo mucho). Pienso que quizás se puede reducir el nivel de entrada tipo combinando este taller con varios conceptos más sencillos y hacer 1 taller tipo All-in-one 'Creando su proyecto de software libre':
Quizás @ferreiro puede desarrollarlo más porque ha creado varios proyectos opensource y yo como he dicho tengo poca xp con el desarrollo de sw..
Quede adjunto el repositorio del proyecto base utilizado:
https://openbokeron.uma.es/gitea/OpenBokeron/TallerCiCd
Establecemos el siguiente esqueleto:
1-Introducción
- Spam nuestro
- Qué es CI/CD
- Ejecución del taller y consideraciones
- Comparativa con GitHub Actions: ventajas/problemas de cada cosa
2-Instalación inicial
- Instalación de Jenkins en la VM del asistente
- La máquina debe tener acceso a internet, cuidado con proxies
- Definir un job de prueba para comprobar el correcto funcionamiento
3- Pendiente definición Parte práctica tocando el pipeline
4-Ver CI/CD desde fuera, como desarrollador
- Proponer un cambio sobre el código y dejar que los asistentes lo hagan
- Lancen Merge Request y observen la ejecución del flujo de trabajo
- En caso de fallo por tests que corrijan
- Una vez hecho, se mergee a main una rama y se observe la rapidez del deploy
Consideraciones/Curiosidades:
- Al generar desde jenkins imágenes etiquetadas, es sencillo realizar un rollback a una versión anterior de producto
- Jenkins ofrece una API REST para mostrar información de las últimas builds, etc.
- Se le dará al asistente una máquina virtual con Ubuntu y el proyecto clonado
- El proyecto clonado ofrece un docker compose para Jenkins, facilitando su despliegue en local, sin embargo la instalación la realizará el asistente para que observe la facilidad de levantar jenkins
- Comentemos sobre los triggers: webhooks vs polling
Por definir:
- Parte práctica del CI/CD desde dentro (apartado 2)
- Forma de despliegue en el VPS, a día de hoy, se levantan los contenedores con docker compose de forma inmediata al mergear a main. Definamos si queremos despliegue automático (para agilizar) o despliegue manual a través de un script mismamente
- Meter SonarQube