10 desembre, 2020
Integració contínua

 

Integració contínua, entrega contínua i desplegament continu

 

El procés de desenvolupament de software està compost per una sèrie de processos on participen diferents departaments que actuen en diferents entorns. Per poder optimitzar tot el cicle de vida del software i aconseguir un producte de major qualitat reduint possibles errors, metodologies com DevOps aposten per l’automatització en les etapes de desenvolupament, així com una millor comunicació entre els desenvolupadors i professionals operadors de TI.

Per assolir aquests objectius d’un software de major qualitat, un millor flux de treball i una reducció de costos i errors, s’utilitzen tècniques com integració contínua, entrega contínua o desplegament continu.

Integració contínua

La integració contínua CI / CD (continuous integration) és una pràctica per la qual els desenvolupadors integren o combinen el codi en un repositori comú, facilitant la realització de test o proves per detectar i resoldre possibles errors. Amb la CI s’impedeix que es desenvolupin diferents divisions d’una aplicació que després puguin tenir conflictes entre si.

Els desenvolupadors integren periòdicament el seu codi en el repositori central (com GitHub) en lloc de realitzar-lo de forma aïllada a la fi del cicle de producció (com es realitzava de forma tradicional). D’aquesta manera es descobreixen abans els conflictes entre els nous codis i els existents, fent que la resolució dels mateixos sigui més senzilla i comporti un menor cost.

En la integració contínua, els tests són fonamentals per poder garantir que el codi és fiable i serà necessari comptar amb un sistema automatitzat per a poder realitzar tot el procés d’integració de codi i test (proves unitàries o testing de resolució, per exemple).

En el desenvolupament modern d’aplicacions, els equips estan compostos per diferents desenvolupadors que treballen de forma simultània en diferents funcions del programa. Amb la integració contínua aquests desenvolupadors podran anar integrant o provant els seus canvis i comprovant que funcionin de manera correcta i no entren en conflicte amb els canvis d’altres desenvolupadors.

En el desenvolupament de software, la integració contínua és un dels pilars en què es basen metodologies com DevOps per aconseguir reduir costos alhora que s’incrementa la qualitat i agilitat en el desenvolupament.

Entrega contínua

L’entrega contínua CI / CD (continuous delivery) està relacionada amb la integració contínua i consisteix en l’automatització del procés d’entrega de software, permetent que pugui ser implementat en producció de forma fiable i senzilla. De forma pràctica es pot entendre la CD com l’entrega d’actualitzacions de software als usuaris o clients de forma sòlida i contínua.

L’entrega contínua en DevOps automatitza tot aquest procés, des que s’integra el codi al repositori únic, es realitzen les proves i comproven els canvis, fins a l’entrega a l’usuari.

L’entrega contínua se la coneix com el següent pas o extensió de la integració contínua. Té com a objectiu principal aconseguir que l’entrega dels nous canvis o actualitzacions de software als clients es realitzin de forma àgil i fiable.

Tot i que l’automatització és una de les característiques de l’entrega contínua, aquesta fase del desenvolupament de software té un component d’intervenció humana (les entregues es realitzaran quan s’indiqui de forma explícita). En l’entrega contínua dels desenvolupadors controlen quan i quantes vegades s’efectua l’entrega de software.

L’entrega contínua accelera l’entrega de software als usuaris i pot ser realitzada diverses vegades al dia, a la setmana, o segons les necessitats o característiques de cada projecte de desenvolupament.

Desplegament continu

Una de les majors confusions a l’hora de definir aquests termes relacionats amb el desenvolupament de software, es produeix per la coincidència de les sigles d’entrega contínua i desplegament continu (en les dues s’usa CD).

El desplegament continu o CD (continuous deployment) està relacionat estretament amb l’entrega contínua. Amb el desplegament continu es va un pas més enllà de l’entrega contínua, automatitzant tot el procés d’entrega de software a l’usuari, eliminant l’acció manual o intervenció humana necessària en l’entrega contínua.

El desplegament continu permet complir amb el concepte de producció contínua que persegueix la metodologia DevOps. Tot el procés de desplegament segueix una sèrie de passos que s’han d’executar en ordre i de forma correcta. Si algun d’aquests passos no es conclou de forma satisfactòria, el desplegament no es durà a terme. Per això és fonamental que el disseny de l’automatització de proves es realitzi de forma correcta, com que no produeix cap entrada o acció manual, dependrà en gran manera de com sigui aquest disseny.

El desplegament continu allibera de càrrega als equips d’operacions de processos manuals, que són una de la principal causa de retards en la distribució d’aplicacions.

L’ús d’aquestes pràctiques de millora en els processos de desenvolupament de software aporta una sèrie de beneficis com l’entrega o alliberament immediat de codi, una simplificació de la feina col·laboratiu o d’equip, permet una detecció primerenca d’errors, disminueix costos de desenvolupament (estalvia temps i esforç) i afavoreix la comunicació entre tots els implicats en el procés de desenvolupament.

Les necessitats actuals a l’hora de desenvolupar i entregar software de qualitat als clients de forma periòdica, ha propiciat que metodologies com DevOps hagin estat adoptades en la indústria del desenvolupament de software per a poder automatitzar processos i aplicar tècniques com la integració contínua, l’entrega contínua i el desplegament continu. Aquestes tècniques ajuden al fet que els desenvolupadors puguin lliurar el seu codi de forma periòdica, compartint un repositori comú on pot ser comprovat i corregit, per així poder entregar el software al client de forma ràpida i fiable.

Implementar aquestes tècniques és un procés que pot resultar complex i que requereix un canvi en la filosofia i en la manera de fer les coses de les empreses de desenvolupament de software. Els resultats seran un software de major qualitat lliure d’errors que podrà ser entregat al client de forma més ràpida i periòdica.

Bon profit!

Treballem fins i tot a l'hora de sopar. Posa't en contacte amb nosaltres i t'ajudarem en el que necessitis.
Contáctanos