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-worldPas 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-unauthenticatedPas 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
Dockerfileper 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-unauthenticatedConclusió
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
