Déploiement Google Cloud Platform
Guide complet pour déployer Lumyria sur Google Cloud Platform avec Cloud Run et BigQuery.
Architecture recommandée GCP
Ce guide utilise Cloud Run pour le backend, Firebase Hosting pour le frontend, BigQuery pour les données et Secret Manager pour la sécurité.
Prérequis
- Projet Google Cloud Platform actif
- BigQuery API activée avec dataset LumApps
- Cloud Run API activée
- Secret Manager API activée
- Firebase CLI installé localement
- Google Cloud SDK (gcloud) configuré
Configuration initiale
1. Configuration du projet GCP
# Définir le projet GCP
export PROJECT_ID="your-project-id"
gcloud config set project $PROJECT_ID
# Activer les APIs nécessaires
gcloud services enable run.googleapis.com
gcloud services enable bigquery.googleapis.com
gcloud services enable secretmanager.googleapis.com
gcloud services enable cloudbuild.googleapis.com
2. Création du service account
# Créer le service account pour Lumyria
gcloud iam service-accounts create lumyria-service \\
--description="Service account for Lumyria" \\
--display-name="Lumyria Service Account"
# Attribuer les permissions BigQuery
gcloud projects add-iam-policy-binding $PROJECT_ID \\
--member="serviceAccount:lumyria-service@$PROJECT_ID.iam.gserviceaccount.com" \\
--role="roles/bigquery.dataViewer"
# Permissions BigQuery Jobs
gcloud projects add-iam-policy-binding $PROJECT_ID \\
--member="serviceAccount:lumyria-service@$PROJECT_ID.iam.gserviceaccount.com" \\
--role="roles/bigquery.jobUser"
Déploiement du backend
Configuration des secrets
# Créer les secrets dans Secret Manager
echo "your-jwt-secret-256-bits" | gcloud secrets create jwt-secret --data-file=-
echo "hm-prod-ms-data-001" | gcloud secrets create bigquery-project --data-file=-
echo "external" | gcloud secrets create bigquery-dataset --data-file=-
# Donner accès au service account
gcloud secrets add-iam-policy-binding jwt-secret \\
--member="serviceAccount:lumyria-service@$PROJECT_ID.iam.gserviceaccount.com" \\
--role="roles/secretmanager.secretAccessor"
Build et déploiement
# Cloner le projet Lumyria
git clone https://github.com/lumyria/brand-dashboard.git
cd brand-dashboard/backend
# Build et push sur Cloud Run
gcloud run deploy lumyria-backend \\
--source . \\
--platform managed \\
--region europe-west1 \\
--allow-unauthenticated \\
--service-account lumyria-service@$PROJECT_ID.iam.gserviceaccount.com \\
--set-env-vars BIGQUERY_PROJECT_ID=$PROJECT_ID \\
--set-env-vars BIGQUERY_DATASET=external \\
--set-secrets JWT_SECRET=jwt-secret:latest
Déploiement du frontend
Configuration Firebase
# Initialiser Firebase dans le projet
cd ../frontend
firebase init hosting
# Configurer l'URL du backend
echo "VITE_API_URL=https://lumyria-backend-xxx-ew.a.run.app" > .env.production
Build et déploiement
# Installer les dépendances
npm install
# Build de production
npm run build
# Déployer sur Firebase Hosting
firebase deploy --only hosting
Configuration BigQuery
Dataset LumApps requis
Lumyria nécessite un dataset BigQuery avec les tables LumApps configurées. Contactez votre administrateur LumApps pour l'accès.
Tables requises
Tables Fact (8)
- • fact_user_activity
- • fact_content_views
- • fact_engagement
- • fact_billing
- • fact_search_analytics
- • fact_video_analytics
- • fact_notifications
- • fact_video_retention
Tables Dimension (16)
- • dim_users
- • dim_content
- • dim_communities
- • dim_devices
- • dim_groups
- • dim_sites
- • ... et 10 autres
Monitoring et observabilité
Configuration Cloud Monitoring
# Activer Cloud Monitoring
gcloud services enable monitoring.googleapis.com
# Créer des alertes pour Cloud Run
gcloud alpha monitoring policies create \\
--policy-from-file=monitoring/cloud-run-alerts.yaml
Métriques surveillées
- • Latence des requêtes
- • Erreurs HTTP 5xx
- • Utilisation CPU/Mémoire
- • Requêtes BigQuery
Logging
- • Logs applicatifs structurés
- • Logs d'audit BigQuery
- • Logs de sécurité
- • Métriques business
Sécurité
Bonnes pratiques appliquées
- ✓ Service Account avec permissions minimales
- ✓ Secrets stockés dans Secret Manager
- ✓ HTTPS forcé sur Cloud Run et Firebase
- ✓ IAM au niveau des ressources
- ✓ Audit logs activés
- ✓ VPC connector pour isolation réseau (optionnel)
Accès et URLs
Déploiement réussi !
Votre instance Lumyria est maintenant déployée sur GCP :
• Application : https://your-project.web.app
• API Backend : https://lumyria-backend-xxx-ew.a.run.app
• Monitoring : https://console.cloud.google.com/monitoring