Cómo-te-ayuda-Continuous-Integration-y-Continuous-Delivery-a-mejorar-flujos-de-trabajo-Itequia

Continuous Integration i Delivery com a tècniques de treball

Una aplicació no es desenvolupa per operar només en un buit ideal. Aquesta mateixa aplicació no correrà únicament a l’ordinador de l’administrador, també ha de funcionar en tots els PCs i dispositius necessaris. No podràs controlar les variables un cop surti de les teves mans, així que és molt important assegurar que funciona en tota mena d’entorns.

Per assolir aquests requisits, sempre estem buscant les millors pràctiques per als nostres projectes i el seu correcte funcionament i desplegament. Avui comentarem dos termes que s’han tornat sinònims amb la tendència actual d’automatitzar sense comprometre la qualitat.

Estem parlant de la Continuous Integration i el Continuous Delivery.

Què és la Continuous Integration o CI?

Que-es-Continuous-Integration-Itequia

Coneixem com Continuous Integration l’automatització de la compilació i Unit Testing d’una aplicació tan aviat com afegim noves capacitats. Un pipeline basat en el CI sol emprar una plataforma, com Azure Pipelines, que reacciona davant un canvi al repositori del codi. Aleshores, realitza uns passos prèviament programats des d’una màquina agent designada.

Per començar, el primer és descarregar la versió més actualitzada del repositori amb els canvis del programador. El pipeline compila el codi i genera una aplicació funcional i executable. El primer èxit és que ja n’hem optimitzat la creació, perquè no depenem d’una màquina física del desenvolupador. Gràcies a l’estandardització, podem repetir els passos cada cop que sigui necessari. A més, els errors al codi en aquests primers moments es poden detectar i solucionar abans.

Tan bon punt tenim l’aplicació compilada correctament, podem fer Unit Tests y validacions automàtiques. Les validacions es poden personalitzar amb l’anàlisi de codi per evitar patrons incorrectes, i els Unit Tests es poden ajuntar al code coverage per garantir que:

  1. L’aplicació compleix aquests tests
  2. Els tests cobreixen un percentatge suficient de codi per al correcte funcionament de l’aplicació

Si fallen les validacions i els tests, el pipeline deixa de funcionar per notificar al programador que ha de corregir el codi. No es tornarà a activar fins que el vostre desenvolupador hagi treballat sobre el codi i el torneu a compartir al repositori.

Què és el Continuous Delivery o CD?

Qué-es-Continuous-Delivery-Itequia

Continuous Delivery fa referència al pas següent després del CI, que és el concepte d’automatitzar la instal·lació i posada en marxa d’una aplicació. De nou, fem servir eines d’automatització que faran la feina des d’una màquina agent.

CD estén el concepte de CI perquè prepara i realitza la instal·lació en un entorn de desenvolupament on fem les proves pertinents. El pipeline de CD es connecta automàticament quan conclou el seu homòleg de CI afegint uns passos més al procés.

El primer pas bàsic d’una CD és recollir l’aplicació quan surt del pipeline de CI des del vostre repositori o registre corresponent. Així, l’aplicació sempre estarà disponible per a instal·lacions posteriors.

Un cop compilada, el pipeline de CD aplica configuració específica a l’entorn de desenvolupament on s’instal·larà l’aplicació. Es configuren punts com la ubicació de la base de dades, l’usuari i la contrasenya. Els atributs de l’entorn es poden emmagatzemar i utilitzar a l’aplicació perquè funcioni en aquest entorn. D’aquesta manera, formalitzem la configuració necessària i assegurem que les instal·lacions posteriors funcionen abans sense passos manuals.

Amb l’aplicació configurada, el següent pas és, és clar, instal·lar l’aplicació. Depenent del tipus d’instal·lació, el sistema pot desinstal·lar la versió anterior o tornar a instal·lar-ne la nova. En aquest cas, la instal·lació estarà automatitzada i es pot reproduir tantes vegades com calgui, tallant moltes possibilitats que hi hagi un error per actuació manual durant el procés.

Un pipeline ben implementat de CD amplia la cadena de muntatge, ja que estandarditza la configuració i la instal·lació i l’aplicació de treball en un entorn de desenvolupament comú.

Com funciona un flux de treball amb CI i CD?

Flujo-de-trabajo-Continuous-Integration-Delivery-Itequia

Un cop el pipeline que combina ambdós termes estigui implementat, podem crear un flux de treball optimitzat. Et donarem un exemple de com seria un flux de treball per implementar una funcionalitat nova:

  1. El desenvolupador crea el codi nou, que inclou la nova funcionalitat desenvolupada, i el puja al repositori
  2. El pipeline compila el codi i el valida. Si no hi ha prou Unit Testing per a aquesta nova funcionalitat, atura el procés i notifica l’error al nostre equip
  3. El desenvolupador corregeix el codi, afegeix Unit Testing i el torna a pujar al repositori
  4. El pipeline valida la nova versió i la instal·la a l’entorn de desenvolupament
  5. Altres desenvolupadors o Q&A testers poden accedir a l’entorn i fer les seves proves amb l’aplicació. Cada canvi queda documentat i enviat a l’equip de desenvolupament
  6. L’equip de desenvolupament torna a treballar sobre els canvis, els comparteix al repositori i el pipeline repeteix el procés una tercera vegada

Implementant pipelines similars a aquest, observarem que emprar el CI i el CD dins del nostre treball ajudarà a ordenar el flux de treball i automatitzar el treball de molts departaments de la nostra empresa. Un avantatge molt important és que sempre tindrem una versió amb els canvis més recents possibles

Les claus dels nous mètodes de treball

El pipeline entorn del CI i CD està pensat per automatitzar el desenvolupament i tenir un entorn llest per a consultes posteriors, però més endavant pot ser molt útil en altres funcions. Com a exemple, si tenim preparada l’automatització de la instal·lació, és molt fàcil ampliar aquesta instal·lació amb variables per a altres entorns per a les seves instal·lacions en versions similars. En els casos més extrems, hi ha el Continuous Deployment (no confondre amb el CD que hem referit durant tot l’article). En aquestes instàncies, realitzem instal·lacions automàtiques no només durant el desenvolupament, sinó també a tots els entorns processables.

Nuevos-métodos-de-trabajo-automatizacion-Itequia

Tot sense cap mena de procés manual, només validacions automàtiques per assegurar que no instal·lem versions incorrectes.

Les eines d’automatització també us permeten estendre pipelines per realitzar accions addicionals. Per exemple, potser voldreu que una pàgina d’avís aparegui automàticament a la instal·lació, o que les dades de proves es netegin després de cada testeig correcte.

Ambdues opcions (i moltes més) estan disponibles a la majoria de les eines del mercat, demostrant el veritable interès que hi ha al sector a automatitzar molts dels processos més tediosos del treball. És una gran estratègia per animar els teus empleats a explorar més les possibilitats de les parts més implicades.

A tall de vista general del que hem escrit en aquest article, hem vist com implementar pipelines que utilitzen tècniques de Continuous Integration, complementats amb altres basats en Continuous Delivery, t’assegura millors fluxos de treball, optimització dels temps de test i instal·lació i l’automatització de tasques vitals per a un bon desenvolupament.

Coneix més sobre altres mètodes de desenvolupament o sobre com començar a automatitzar a altres entorns de la teva empresa.

Daniel Morales Fitó – Consultant at Itequia