Introducció a Cloud Build

Cloud Build és un servei de Google Cloud Platform que permet compilar, provar i desplegar aplicacions en una infraestructura escalable. És una eina essencial per a DevOps, ja que facilita la integració contínua (CI) i el desplegament continu (CD).

Conceptes Clau

  • Integració Contínua (CI): Procés d'integrar canvis de codi de manera freqüent i automàtica, amb proves automàtiques per detectar errors ràpidament.
  • Desplegament Continu (CD): Procés de desplegar automàticament les aplicacions a entorns de producció després de passar les proves.

Configuració de Cloud Build

Pas 1: Crear un Projecte a GCP

  1. Accedeix a la Consola de Google Cloud.
  2. Crea un nou projecte o selecciona un projecte existent.

Pas 2: Activar l'API de Cloud Build

  1. A la consola de GCP, ves a API & Services > Library.
  2. Cerca "Cloud Build" i fes clic a Enable.

Pas 3: Configurar permisos

  1. Assegura't que el compte de servei de Cloud Build tingui els permisos necessaris per accedir als recursos del teu projecte.
  2. Afegeix el rol Cloud Build Service Account al compte de servei.

Crear un Fitxer de Configuració de Cloud Build

El fitxer de configuració de Cloud Build (cloudbuild.yaml o cloudbuild.json) defineix els passos que Cloud Build ha de seguir per compilar, provar i desplegar la teva aplicació.

Exemple de Fitxer cloudbuild.yaml

steps:
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/my-app', '.']
  - name: 'gcr.io/cloud-builders/docker'
    args: ['push', 'gcr.io/$PROJECT_ID/my-app']
images:
  - 'gcr.io/$PROJECT_ID/my-app'

Explicació del Fitxer

  • steps: Defineix els passos que Cloud Build ha de seguir.
    • name: Imatge Docker que s'utilitzarà per executar el pas.
    • args: Arguments que es passaran a l'ordre Docker.
  • images: Llista d'imatges Docker que es generaran i es pujaran al registre de contenidors de Google (GCR).

Executar una Compilació

Pas 1: Desar el Fitxer de Configuració

Desa el fitxer cloudbuild.yaml a l'arrel del teu projecte.

Pas 2: Executar la Compilació

Utilitza l'ordre següent per iniciar una compilació:

gcloud builds submit --config cloudbuild.yaml .

Explicació de l'Ordre

  • gcloud builds submit: Inicia una compilació amb Cloud Build.
  • --config cloudbuild.yaml: Especifica el fitxer de configuració.
  • .: Indica que s'ha d'utilitzar el directori actual com a context de compilació.

Exercici Pràctic

Objectiu

Crear una imatge Docker per a una aplicació simple i pujar-la al registre de contenidors de Google.

Passos

  1. Crear un fitxer Dockerfile:
FROM node:14
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "app.js"]
  1. Crear un fitxer app.js:
const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.listen(port, () => {
  console.log(`App listening at http://localhost:${port}`);
});
  1. Crear un fitxer package.json:
{
  "name": "my-app",
  "version": "1.0.0",
  "main": "app.js",
  "dependencies": {
    "express": "^4.17.1"
  }
}
  1. Crear un fitxer cloudbuild.yaml:
steps:
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/my-app', '.']
  - name: 'gcr.io/cloud-builders/docker'
    args: ['push', 'gcr.io/$PROJECT_ID/my-app']
images:
  - 'gcr.io/$PROJECT_ID/my-app'
  1. Executar la compilació:
gcloud builds submit --config cloudbuild.yaml .

Solució

Després d'executar els passos anteriors, hauràs creat i pujat una imatge Docker de la teva aplicació al registre de contenidors de Google.

Errors Comuns i Consells

  • Error: "Permission denied": Assegura't que el compte de servei de Cloud Build té els permisos necessaris.
  • Error: "Image not found": Verifica que el nom de la imatge Docker és correcte i que el fitxer cloudbuild.yaml està ben configurat.

Resum

En aquesta secció, hem après a configurar i utilitzar Cloud Build per compilar, provar i desplegar aplicacions. Hem creat un fitxer de configuració cloudbuild.yaml i hem executat una compilació per crear i pujar una imatge Docker. Amb aquests coneixements, estàs preparat per integrar Cloud Build en el teu flux de treball de DevOps.

© Copyright 2024. Tots els drets reservats