Introducció

En aquest tema, explorarem els conceptes d'integració contínua (CI) i desplegament continu (CD), que són fonamentals per a la creació i manteniment d'APIs RESTful robustes i fiables. Aquests processos automatitzats ajuden a garantir que el codi es provi i es desplegui de manera eficient i segura.

Conceptes Clau

Integració Contínua (CI)

  • Definició: La integració contínua és una pràctica de desenvolupament de programari on els desenvolupadors integren el seu codi en un repositori compartit diverses vegades al dia.
  • Objectiu: Detectar errors el més aviat possible, facilitant la identificació i correcció de problemes.
  • Eines Populars: Jenkins, Travis CI, CircleCI, GitLab CI.

Desplegament Continu (CD)

  • Definició: El desplegament continu és una extensió de la integració contínua que permet que els canvis en el codi es despleguin automàticament en entorns de producció després de passar per una sèrie de proves.
  • Objectiu: Assegurar que el codi sempre estigui en un estat desplegable, permetent un desplegament ràpid i fiable.
  • Eines Populars: Jenkins, GitLab CI/CD, AWS CodePipeline, Azure DevOps.

Procés d'Integració Contínua

  1. Commit i Push: Els desenvolupadors fan commit dels canvis en el codi i els pugen al repositori central.
  2. Construcció Automàtica: Un servidor CI detecta els nous canvis i inicia una construcció automàtica del projecte.
  3. Execució de Proves: Es realitzen proves automàtiques per assegurar que els canvis no han introduït errors.
  4. Informe de Resultats: El servidor CI genera un informe amb els resultats de la construcció i les proves, notificant als desenvolupadors si hi ha problemes.

Exemple de Configuració de Jenkins per a CI

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                sh 'npm install'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                sh 'npm test'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                sh 'npm run deploy'
            }
        }
    }
}

Procés de Desplegament Continu

  1. Desplegament en Entorn de Prova: Després de passar les proves, el codi es desplega automàticament en un entorn de prova.
  2. Proves Addicionals: Es realitzen proves addicionals en l'entorn de prova per assegurar que el codi funciona correctament en un entorn similar al de producció.
  3. Desplegament en Producció: Si totes les proves són satisfactòries, el codi es desplega automàticament en l'entorn de producció.

Exemple de Configuració de GitLab CI/CD per a CD

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install

test:
  stage: test
  script:
    - npm test

deploy:
  stage: deploy
  script:
    - npm run deploy
  environment:
    name: production
    url: http://your-production-url.com
  only:
    - master

Eines i Serveis per a CI/CD

Eina/Servei Descripció Enllaç
Jenkins Plataforma d'automatització de codi obert per a CI/CD. Jenkins
Travis CI Servei de CI/CD integrat amb GitHub. Travis CI
CircleCI Plataforma de CI/CD que ofereix integració amb diversos serveis de núvol. CircleCI
GitLab CI/CD Solució de CI/CD integrada amb GitLab. GitLab CI/CD
AWS CodePipeline Servei de CI/CD d'Amazon Web Services. AWS CodePipeline
Azure DevOps Plataforma de CI/CD de Microsoft Azure. Azure DevOps

Exercici Pràctic

Objectiu

Configurar un pipeline de CI/CD bàsic utilitzant GitLab CI/CD per a una API RESTful.

Passos

  1. Crear un Repositori en GitLab: Crear un nou projecte en GitLab.
  2. Afegir un Fitxer .gitlab-ci.yml: Crear un fitxer .gitlab-ci.yml a l'arrel del projecte amb el següent contingut:
stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install

test:
  stage: test
  script:
    - npm test

deploy:
  stage: deploy
  script:
    - npm run deploy
  environment:
    name: production
    url: http://your-production-url.com
  only:
    - master
  1. Commit i Push: Fer commit i push del fitxer al repositori.
  2. Verificar el Pipeline: Anar a la secció de CI/CD del projecte en GitLab i verificar que el pipeline s'executa correctament.

Solució

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install

test:
  stage: test
  script:
    - npm test

deploy:
  stage: deploy
  script:
    - npm run deploy
  environment:
    name: production
    url: http://your-production-url.com
  only:
    - master

Conclusió

La integració contínua i el desplegament continu són pràctiques essencials per al desenvolupament d'APIs RESTful eficients i fiables. Mitjançant l'automatització de la construcció, les proves i el desplegament, es poden detectar i corregir errors de manera ràpida, assegurant que el codi estigui sempre en un estat desplegable. Utilitzar eines com Jenkins, GitLab CI/CD, i altres serveis de CI/CD pot simplificar significativament aquests processos, permetent als desenvolupadors centrar-se en la creació de funcionalitats de valor afegit.

© Copyright 2024. Tots els drets reservats