Repo pour la team data sur GCP
+-- recommendation: API Recommandation (Cloud Run)
|
+-- orchestration : DAGS Airflow (Cloud Composer)
|
+-- additional_data_sources
| +-- cloud_fn : Cloud Functions gérés via les dags Airflow
| +-- jobs : Jobs ML ou Scripts python gérés via les dags Airflow
Prérequis :
- pyenv
- ⚠ Don't forget to install the prerequisites
- pyenv virtualenv
- accès aux comptes de services GCP
- Gcloud CLI
1. Installation du projet
- Cloner le projet
git clone [email protected]:pass-culture/data-gcp.git cd data-gcp - [LINUX] Installation de quelques librairies nécessaires à l'install du projet
make install_ubuntu_libs - Installation du projet
make install
2. Config .env.local
Dans le fichier .env.local, renseigne les valeurs des variables manquantes en utilisant cette page
Orchestration des jobs dags analytics & data science.
plus de détails dans dags/README.md
Les dags sont déployés automatiquement lors d'un merge sur master / production
API pour la brique de recommandation sur l'application.
plus de détails dans recommendation/README.md
On utilise CircleCI pour lancer des tests sur les différentes parties du repo. Les tests sont lancés sur toutes les branches git et sont répartis entre les jobs suivants :
- linter : tester le bon formattage du code de tout le repo en utilisant
Black - recommendation-db-tests : tester l'ingestion des données dans le CloudSQL pour l'algorithme de recommendation
- recommendation-api-tests : tester l'API de recommendation
- orchestration-tests : tester les différents DAGs d'orchestration
Pour la CD, on utilise deux outils : CircleCI et Cloud Build.
Voici les jobs créés pour le déploiement :
- vertex-ai-deploy : déployer les modèles de ML via MLFlow dans Cloud Storage puis l'utiliser pour mettre à jour la version du modèle sur VertexAI
- composer-deploy : déployer le dossier
dagsdans le bucket du Cloud Composer sur Cloud Storage
Ces déploiements sont déclenchés sur les branches master / production.
Cloud build est utilisé pour le déploiement de l'API sur Cloud Run.
Ces déploiements sont déclenchés sur les branches master / production.