Introducció a Cloud Run
Cloud Run és un servei de Google Cloud Platform que permet desplegar i gestionar aplicacions contenidoritzades de manera fàcil i escalable. Amb Cloud Run, pots executar aplicacions en contenidors sense necessitat de gestionar la infraestructura subjacent. Això permet als desenvolupadors centrar-se en el codi i la lògica de l'aplicació, mentre Google s'encarrega de l'escalabilitat, la disponibilitat i la gestió de recursos.
Característiques clau de Cloud Run
- Execució de contenidors: Cloud Run permet desplegar qualsevol aplicació que pugui ser empaquetada en un contenidor Docker.
- Escalabilitat automàtica: Les aplicacions desplegades amb Cloud Run escalen automàticament segons la demanda, des de zero fins a milers de instàncies.
- Pagament per ús: Només pagues pels recursos que utilitzes quan la teva aplicació està en execució.
- Integració amb altres serveis de GCP: Cloud Run es pot integrar fàcilment amb altres serveis de Google Cloud, com ara Cloud Pub/Sub, Cloud Storage i Firestore.
Desplegant una aplicació amb Cloud Run
Pas 1: Preparar l'aplicació
Per començar, necessitem una aplicació empaquetada en un contenidor Docker. A continuació, es mostra un exemple d'una aplicació simple en Python utilitzant Flask.
Dockerfile:
# Utilitza una imatge base de Python FROM python:3.8-slim # Estableix el directori de treball WORKDIR /app # Copia els fitxers de requeriments i instal·la les dependències COPY requirements.txt requirements.txt RUN pip install -r requirements.txt # Copia el codi de l'aplicació COPY . . # Exposa el port 8080 EXPOSE 8080 # Defineix el punt d'entrada de l'aplicació CMD ["python", "app.py"]
app.py:
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Hola, món!" if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)
requirements.txt:
Pas 2: Construir i pujar la imatge del contenidor
Primer, hem de construir la imatge Docker i pujar-la a Google Container Registry (GCR).
# Autentica't amb Google Cloud gcloud auth login # Configura el projecte de GCP gcloud config set project [PROJECT_ID] # Construir la imatge Docker docker build -t gcr.io/[PROJECT_ID]/hello-world . # Pujar la imatge a Google Container Registry docker push gcr.io/[PROJECT_ID]/hello-world
Pas 3: Desplegar l'aplicació amb Cloud Run
Ara que la imatge està pujada a GCR, podem desplegar-la amb Cloud Run.
# Desplegar l'aplicació amb Cloud Run gcloud run deploy hello-world \ --image gcr.io/[PROJECT_ID]/hello-world \ --platform managed \ --region us-central1 \ --allow-unauthenticated
Pas 4: Accedir a l'aplicació
Després de desplegar l'aplicació, Cloud Run proporcionarà una URL pública per accedir-hi. Pots visitar aquesta URL al teu navegador per veure l'aplicació en funcionament.
Exercicis pràctics
Exercici 1: Desplegar una aplicació Node.js amb Cloud Run
- Crea una aplicació simple en Node.js que respongui amb "Hola, món!".
- Escriu un
Dockerfile
per empaquetar l'aplicació. - Segueix els passos per construir, pujar i desplegar la imatge amb Cloud Run.
Exercici 2: Integrar Cloud Run amb Cloud Pub/Sub
- Crea una aplicació que processi missatges de Cloud Pub/Sub.
- Desplega l'aplicació amb Cloud Run.
- Configura un tema de Cloud Pub/Sub per enviar missatges a l'aplicació desplegada.
Solucions
Solució a l'Exercici 1
app.js:
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hola, món!'); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`App listening on port ${port}`); });
Dockerfile:
# Utilitza una imatge base de Node.js FROM node:14 # Estableix el directori de treball WORKDIR /app # Copia el package.json i instal·la les dependències COPY package*.json ./ RUN npm install # Copia el codi de l'aplicació COPY . . # Exposa el port 8080 EXPOSE 8080 # Defineix el punt d'entrada de l'aplicació CMD ["node", "app.js"]
Comandes per construir, pujar i desplegar:
# Construir la imatge Docker docker build -t gcr.io/[PROJECT_ID]/hello-world-node . # Pujar la imatge a Google Container Registry docker push gcr.io/[PROJECT_ID]/hello-world-node # Desplegar l'aplicació amb Cloud Run gcloud run deploy hello-world-node \ --image gcr.io/[PROJECT_ID]/hello-world-node \ --platform managed \ --region us-central1 \ --allow-unauthenticated
Conclusió
En aquesta secció, hem après com desplegar aplicacions contenidoritzades amb Cloud Run, aprofitant la seva escalabilitat automàtica i la integració amb altres serveis de Google Cloud. Hem vist un exemple pràctic amb una aplicació en Python i hem proporcionat exercicis per reforçar els conceptes apresos. Amb Cloud Run, els desenvolupadors poden centrar-se en el desenvolupament de les seves aplicacions sense preocupar-se per la gestió de la infraestructura.
Curs de Google Cloud Platform (GCP)
Mòdul 1: Introducció a Google Cloud Platform
- Què és Google Cloud Platform?
- Configurar el teu compte de GCP
- Visió general de la consola de GCP
- Comprendre projectes i facturació
Mòdul 2: Serveis bàsics de GCP
Mòdul 3: Xarxes i seguretat
Mòdul 4: Dades i analítica
Mòdul 5: Aprenentatge automàtic i IA
Mòdul 6: DevOps i monitoratge
- Cloud Build
- Repositoris de codi font al núvol
- Funcions al núvol
- Monitoratge de Stackdriver
- Gestor de desplegament al núvol
Mòdul 7: Temes avançats de GCP
- Híbrid i multi-núvol amb Anthos
- Computació sense servidor amb Cloud Run
- Xarxes avançades
- Millors pràctiques de seguretat
- Gestió i optimització de costos