Entrega Escenario 5 Trabajo Colaborativo

MODULO INTEGRACIÓN CONTINUA PRESENTADO POR JUAN CAMILO ACEVEDO MORALES FELIPE BERRIO ARANGO LUIS CASTAÑEDA JUAN PABLO C

Views 65 Downloads 3 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

MODULO INTEGRACIÓN CONTINUA

PRESENTADO POR JUAN CAMILO ACEVEDO MORALES FELIPE BERRIO ARANGO LUIS CASTAÑEDA JUAN PABLO CHAPARRO CARDOZO

TUTORA ALEXANDRA MARIA SILVA MONSALVE

SUBGRUPO 30

INSTITUCIÓN UNIVERSITARIA POLITÉCNICO GRANCOLOMBIANO FACULTAD DE INGENIERIA INGENIERIA DE SOFTWARE MEDELLÍN

C​ONTENIDO INTRODUCCIÓN

3

INTRODUCCIÓN

Como objetivo del proyecto seleccionado para esta etapa educativa se decidió trabajar con un proyecto de registro y categorización de productos y así desarrollar la solución de un problema. Utilizando los marcos de referencia, así como también los diferentes modelos que están establecidos. Buscaremos aprovechar al máximo la herramienta Laravel con la cual se va a trabajar el proyecto para lograr tener claros sus componentes, Así como el proceso de su uso, junto con esto buscaremos generar una estrategia eficiente y funcional, lo cual tendrá como objetivo poner en práctica los conocimientos adquiridos y comprendidos durante las etapas educativas.

Entrega Semana 5

Jenkins, gestor de operaciones e integración continua La integración continua es una practica en el desarrollo de software donde los miembros del equipo integran el trabajo frecuentemente, cada una de estas integraciones se verifica compilando o ejecutando el código fuente para después obtener un ejecutable o “build” el cual permite realizar las pruebas para detectar errores lo cual hace que el producto o la entrega final tenga un porcentaje de fallo menor o una calidad más alta. Una vez sabiendo esto, la herramienta sugerida para el desarrollo del proyecto es llamada Jenkins, es un servidor de integración continua open-source más populares últimamente, esta herramienta proviene de una similar llamada Hudson, la cual fue comprada por Oracle, luego de esto, la herramienta fue renombrada a lo que conocemos hoy en día como Jenkins. Jenkins es un servidor automatizado de integración continua de código abierto capaz de organizar una cadena de acciones que ayudan a lograr el proceso de integración continua (y mucho más) de manera automatizada. Puede trabajar con herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase y es capaz de ejecutar scripts de shell y programas batch de Windows.

¿Qué funciones cumple? La base de Jenkins son las tareas donde se le indica que es lo que se debe hacer en un “build”, en este caso se puede programar una tarea para que se compruebe un repositorio de control, entonces cuando un desarrollador quiera cargar una nueva versión del código, esta se suba y se ejecuten las pruebas correspondientes, si hay un error Jenkins va a notificar al desarrollador o a las personas encargadas para que corrijan el error, adicionalmente desde Jenkins se puede llevar el proceso de seguimiento del desarrollo, se verán resultados de test, se puede generar documentación, migrar o pasar versiones estables del software a producción y demás

Ventajas al usar Jenkins -

La mayor parte del trabajo de integración está automatizado. Por lo tanto, los problemas de integración son menores. Esto ahorra tiempo y dinero durante la vida útil de un proyecto.

-

El desarrollador escribe las pruebas para detectar los errores de su código lo más rápido posible. De modo que el tiempo del desarrollador se guarda sin desperdiciar integraciones plagadas de errores a gran escala.

-

Jenkins es capaz de realizar tareas complejas a través de una ejecución simple de código. Además dispone de una gran variedad de plugins que ofrecen la posibilidad de realizar múltiples acciones y una personalización completa del sistema.

-

El proceso automatizado de construcción y pruebas ahorra mucho tiempo y reduce muchos posibles defectos.

La idea general que nos da Jenkins es que el producto esté permanentemente pasando todos los pasos necesarios para su liberación en un ambiente más cómodo para los desarrolladores.

Requisitos Para comenzar a trabajar con Jenkins se requiere un repositorio de control de versiones, en nuestro caso este repositorio estaría alojado en GitHub en el cual deben estar los scripts del software a monitorear, Jenkins se encargará de la ejecución y monitoreo de los scripts dentro del mismo repositorio para crear la “build” de la que se habló previamente.

Proceso para el desarrollo de la integración Durante el trabajo de la integración continua están las siguientes fases: 1. Desarrollo: Se crean las mejoras y nuevas integraciones al aplicativo 2. Compilación: A partir del desarrollo se crean las nuevas Builds del código. 3. Pruebas: se realiza el análisis y los test, con las métricas de calidad para poder

encontrar los errores que se puedan presentar en la build 4. Despliegue: Luego de la fase de pruebas se pasa al despliegue de la aplicación en el entorno de producción o pre-producción del producto 5. Tests: se realizan los test funcionales en producción y de integración de los nuevos desarrollos al software 6. Reportes: se generan los reportes del versionamiento con los nuevos ajustes o características del software.

Integración de Jenkins con Laravel Para la integración con nuestro proyecto, se debe crear el entorno en Jenkins del aplicativo, luego de esto se procederá a instalar Jenkins en Docker para el control del versionamiento, cada vez que se suba una nueva versión esta se procesara mediante el pipeline de Jenkins lo cual dará la aprobación y el control del versionamiento para el proyecto, una de las ventajas que esto nos da es que no necesitamos una maquina virtual con una gran cantidad de recursos o un servidor propio para la creación y las pruebas del software, por lo cual su paso a producción final será mucho más amigable en el transcurso del desarrollo.

Downoload jekins requiere tener instalado java versión 1.8

Referencias https://medium.com/faun/configure-laravel-8-for-ci-cd-with-jenkins-and-github-part-1-58b 9be304292 https://www.itdo.com/blog/integracion-continua-con-jenkins/ https://www.jenkins.io/doc/book/ https://codingpotions.com/jenkins-integracion-continua https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/jenkins-tutorial/ https://apiumhub.com/es/tech-blog-barcelona/ventajas-de-jenkins/#:~:text=Algunas%20 Ventajas%20de%20Jenkins%20es,construir%20y%20probar%20software%20continua mente​. https://www.hiberus.com/crecemos-contigo/jenkins-automatizacion-tareas-aplicada-a-ap licaciones-moviles/ https://openwebinars.net/blog/que-es-jenkins-introduccion/ https://ciberninjas.com/jenkins/ https://davidgu.net/2012/05/19/jenkins-como-herramienta-de-integracion-continua-y-muc ho-mas/