Implantación De Un Sistema De Integración Continua
Total Page:16
File Type:pdf, Size:1020Kb
Projecte fi de carrera – Integració Continua Implantació d’un Sistema de Integració Continua Memòria Daniel García Magané Enginyeria en Informàtica Miquel Colobran Huguet Curs 2017-18 (1er semestre) 1 Projecte fi de carrera – Integració Continua DEDICATORIA I AGRAÏMENTS En primer lloc, agrair a la meva dona Jenny per ser el suport que necessitava, animant- me cada dia, per a dur a terme aquest PFC. Li dono les gràcies per la seva paciència en tots aquests anys i caps de setmana de PACs tancats a casa sense poder sortir. Gràcies per intentar fer de mi una millor persona cada dia. Gràcies de tot cor. En segon lloc, a les meves dues filles bessones Abril i Sira, us demano perdó per haver estat desaparegut aquestes últims mesos, ho sento. Us dono les gràcies per fer-me sentir millor en els pitjors moments amb el vostre somriure i alegria infinits. Als meus pares per donar-me l’oportunitat d’estudiar i recolzar-me sempre que els he necessitat. Gràcies. I finalment al meu professor de PFC, en Miquel Colobran, per la seva gran ajuda sense la qual no hauria sigut possible realitzar aquest treball. Ha sigut un plaer treballar amb tu. Moltes gràcies. 2 Projecte fi de carrera – Integració Continua Descripció del Treball Avui en dia en les empreses dedicades al desenvolupament de software, un gran avantatge competitiu és la capacitat de lliurar els seus productes i serveis de forma ràpida, segura, lliure d’errors i respectant els ajustats temps de mercat (time to market). El desenvolupament de software amb metodologies Àgils es caracteritza pel lliurament constant de productes MVP (Minimum Value Product). La capacitat de poder oferir ràpidament als clients les noves funcionalitats desitjades i detectar l’abans possible qualsevol error és l’objectiu de qualsevol organització. Disposar d’eines per a gestionar les diferents versions del producte així com administrar els entorns de desenvolupament i producció de la forma més automatitzada possible, donarà sense dubte un gran avantatge i noves oportunitats de negoci a les empreses. En aquest PFC es vol presentar una proposta de treball completa per descriure el procés de transformació d’una empresa tipus. Es partirà des d’un entorn sense un correcte control de la gestió del desenvolupament de projectes informàtics cap a un entorn totalment automatitzat en termes de Integració Continua. Es tractaran aspectes relacionats amb la forma de treballar i de gestionar els projectes informàtics. S’analitzaran entre d’altres, temes importants com l’organització dels repositoris de codi font, les eines disponibles per a validar, compilar i publicar les aplicacions, les metodologies i els procediments de treball. També es consideraran els recursos de xarxa, de software i de maquinari necessaris per a integrar-se dins de l’organització. S’analitzaran les diferents estratègies i productes del sector i es descriurà una possible implementació. 3 Projecte fi de carrera – Integració Continua Índex Índex de figures ............................................................................................................................6 1 Introducció ...........................................................................................................................8 1.1 Justificació i Context del projecte .................................................................................8 1.2 Objectius del projecte ..................................................................................................8 1.3 Organització i Planificació del treball ............................................................................9 1.4 Enfoc i metodologia seguida.......................................................................................15 1.5 Requisits del projecte. ................................................................................................15 1.6 Productes obtinguts ...................................................................................................16 1.7 Breu descripció dels capítols de la memòria ..............................................................16 2 Introducció a la Integració Continua ..................................................................................17 2.1 Què és la Integració Continua ? ..................................................................................17 2.2 Breu antecedents històrics de la IC ............................................................................17 2.3 Principals components d’un sistema de IC .................................................................18 2.4 Principals fluxos i interaccions en un sistema d’IC ......................................................20 2.5 Característiques i pràctiques d’un sistema d’IC ..........................................................21 2.6 Altres pràctiques relacionades amb la IC ....................................................................27 3 Anàlisis de productes IC en el mercat .................................................................................30 3.1 Jenkins ........................................................................................................................30 3.2 Bamboo ......................................................................................................................35 3.3 Team City ....................................................................................................................42 3.4 CircleCI .......................................................................................................................47 3.5 GoCD ..........................................................................................................................52 3.6 Resum i comparativa de les eines...............................................................................56 3.7 Justificació del producte triat .....................................................................................58 4 Implementació d’un Sistema d’Integració Continua ..........................................................61 4.1 Descripció i anàlisis de l’entorn inicial ........................................................................61 4.2 Anàlisis d’entorns .......................................................................................................62 4.3 Anàlisis de l’estructura del codi font ..........................................................................65 4.4 Anàlisis de recursos necessaris ...................................................................................73 4.5 Instal·lació d’un repositori de Codi Font .....................................................................73 4.6 Instal·lació de l’eina d’Integració Continua.................................................................76 4.7 Metodologia desenvolupament .................................................................................85 4.8 Formació d’equips ......................................................................................................89 4.9 Monitoratge ...............................................................................................................90 4 Projecte fi de carrera – Integració Continua 5 Conclusions ........................................................................................................................92 6 Bibliografía .........................................................................................................................93 5 Projecte fi de carrera – Integració Continua Índex de figures Figura 1: Diagrama de Gantt resumit .....................................................................................10 Figura 2: Diagrama de Gantt complet ....................................................................................11 Figura 3: Components i interaccions bàsiques a un sistema de IC (font) .........................21 Figura 4: Relacions i dependències dins el flux de IC (font) ...............................................25 Figura 5: Exemple de flux de treball i notificacions ...............................................................26 Figura 6: Altres pràctiques relacionades (font) ......................................................................27 Figura 7: Integracio Continua Vs Lliurament Continu ...........................................................28 Figura 8: Continuos Delivery Vs Continuous Deployment ...................................................28 Figura 9: Exemple de configuració de tasques en Pipelines ...............................................31 Figura 10: Jenkins - Edició i visualització de pipelines ...........................................................32 Figura 11: Jenkins - Visualització d’una execució fallida de les pipelines ...........................32 Figura 12: Jenkins - Visualització de l’activitat històrica d’una pipeline ...............................32 Figura 13: Jenkins - Visualització del estat de les branques .................................................33 Figura 14: Exemple escenari plataforma Jenkins .................................................................34 Figura 15: Ecosistema de Jenkins i connexió a altres plataformes (font) ..........................35 Figura 16: Model arquitectura bàsica Bamboo ......................................................................36 Figura 17: Exemple de configuració de jobs en Bamboo (font) ..........................................37 Figura 18: Relació entre stage, task i job a Bamboo ............................................................38 Figura 19: Panell