LumyriaDocs

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

Prochaines étapes