Aperçu
Ce guide vous accompagne dans le déploiement de CaseBender sur Google Cloud Run en utilisant nos images Docker préconstruites.
Prérequis
- Compte Google Cloud
- Google Cloud CLI installé
- Docker installé
Étape 1 : Configuration Initiale
Installer Google Cloud CLI
Initialiser le Projet
# Définir l'ID de votre projet
gcloud config set project VOTRE_ID_PROJET
# Activer les API requises
gcloud services enable \
cloudbuild.googleapis.com \
run.googleapis.com \
secretmanager.googleapis.com \
cloudresourcemanager.googleapis.com \
artifactregistry.googleapis.com
Créer un Bucket Cloud Storage
# Créer un bucket de stockage
gsutil mb -l us-central1 gs://casebender-storage
# Créer un compte de service pour le stockage
gcloud iam service-accounts create casebender-storage \
--display-name "Compte de Service pour Stockage CaseBender"
# Obtenir l'email du compte de service
STORAGE_SA_EMAIL=$(gcloud iam service-accounts list \
--filter="displayName:Compte de Service pour Stockage CaseBender" \
--format="value(email)")
# Accorder les permissions
gsutil iam ch \
serviceAccount:$STORAGE_SA_EMAIL:objectViewer,objectCreator \
gs://casebender-storage
# Créer et télécharger la clé du compte de service
gcloud iam service-accounts keys create storage-key.json \
--iam-account=$STORAGE_SA_EMAIL
# Créer un secret pour les identifiants de stockage
gcloud secrets create casebender-storage-key \
--replication-policy="automatic"
# Importer la clé du compte de service comme secret
gcloud secrets versions add casebender-storage-key \
--data-file=storage-key.json
Configurer Cloud SQL (PostgreSQL)
# Créer une instance PostgreSQL
gcloud sql instances create casebender-db \
--database-version=POSTGRES_14 \
--cpu=2 \
--memory=4GB \
--region=us-central1 \
--root-password="VOTRE_MOT_DE_PASSE_SECURISE"
# Créer une base de données
gcloud sql databases create casebender \
--instance=casebender-db
# Créer un utilisateur
gcloud sql users create casebender \
--instance=casebender-db \
--password="VOTRE_MOT_DE_PASSE_SECURISE"
# Créer une instance Redis
gcloud redis instances create casebender-redis \
--size=2 \
--region=us-central1 \
--redis-version=redis_6_x
# Créer et stocker les variables d'environnement
cat << EOF | gcloud secrets create casebender-env --data-file=-
AUTH_SECRET=votre-secret-auth
AUTH_SALT=votre-sel-auth
POSTGRES_PRISMA_URL="postgresql://casebender:VOTRE_MOT_DE_PASSE_SECURISE@/casebender?host=/cloudsql/VOTRE_ID_PROJET:us-central1:casebender-db"
REDIS_URL="redis://ADRESSE_IP_REDIS:6379"
GOOGLE_STORAGE_BUCKET=casebender-storage
EOF
Étape 3 : Récupérer et Pousser les Images Docker
# Créer un dépôt Artifact Registry
gcloud artifacts repositories create casebender \
--repository-format=docker \
--location=us-central1
# Configurer Docker pour Artifact Registry
gcloud auth configure-docker us-central1-docker.pkg.dev
# Récupérer les images CaseBender
docker pull casebender/casebender:latest
docker pull casebender/workflow-processor:latest
docker pull casebender/misp-processor:latest
# Taguer les images pour Google Artifact Registry
docker tag casebender/casebender:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest
docker tag casebender/workflow-processor:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest
docker tag casebender/misp-processor:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest
# Pousser les images
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest
Étape 4 : Déployer les Services
Déployer l’Application Principale
# Déployer sur Cloud Run
gcloud run deploy casebender \
--image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars GOOGLE_STORAGE_BUCKET=casebender-storage \
--set-secrets "/secrets/storage-key=casebender-storage-key:latest" \
--service-account=$STORAGE_SA_EMAIL \
--add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
--set-secrets "/app/.env=casebender-env:latest"
Déployer le Processeur de Workflow
# Déployer le processeur de workflow
gcloud run deploy workflow-processor \
--image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest \
--platform managed \
--region us-central1 \
--no-allow-unauthenticated \
--service-account=$STORAGE_SA_EMAIL \
--add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
--set-secrets "/app/.env=casebender-env:latest"
Déployer le Processeur MISP
# Déployer le processeur MISP
gcloud run deploy misp-processor \
--image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest \
--platform managed \
--region us-central1 \
--no-allow-unauthenticated \
--service-account=$STORAGE_SA_EMAIL \
--add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
--set-secrets "/app/.env=casebender-env:latest"
Étape 5 : Configurer le Domaine et SSL
Mapper un Domaine Personnalisé
# Ajouter un mapping de domaine
gcloud run domain-mappings create \
--service casebender \
--domain votre-domaine.com \
--region us-central1
Suivez les étapes de vérification DNS dans la Console Google Cloud pour compléter le mapping de domaine.
Surveillance et Maintenance
- Naviguez vers Cloud Monitoring dans la Console Google Cloud
- Créez une vérification d’activité pour votre service
- Configurez des alertes pour :
- Taux d’erreurs
- Latence
- Nombre d’instances
- Utilisation de la mémoire
Consulter les Journaux
# Voir les journaux de service
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=casebender" --limit 50
# Diffuser les journaux en continu
gcloud logging tail "resource.type=cloud_run_revision AND resource.labels.service_name=casebender"
Mettre à Jour l’Application
Pour déployer des mises à jour :
# Construire et déployer une nouvelle version
gcloud builds submit --config cloudbuild.yaml
# Revenir en arrière si nécessaire
gcloud run services rollback casebender \
--to-revision=ID_REVISION \
--region=us-central1
Optimisation des Coûts
-
Configuration de l’Auto-Scaling
gcloud run services update casebender \
--min-instances=1 \
--max-instances=10 \
--region=us-central1
-
Allocation des Ressources
gcloud run services update casebender \
--memory=1Gi \
--cpu=1 \
--region=us-central1
Dépannage
Problèmes Courants
-
Problèmes de Connexion
- Vérifier la connexion Cloud SQL
- Vérifier la connectivité Redis
- Valider les variables d’environnement
-
Problèmes de Performance
- Examiner les métriques d’instance
- Vérifier l’allocation des ressources
- Analyser les modèles de requêtes
-
Échecs de Déploiement
- Vérifier les journaux de construction
- Vérifier les permissions du compte de service
- Examiner la configuration de déploiement
Prochaines Étapes
- Configurer des pipelines CI/CD
- Configurer des stratégies de sauvegarde
- Implémenter la surveillance et les alertes
- Revoir les meilleures pratiques de sécurité