/data-gcp

Repo pour la team data sur GCP

Primary LanguagePythonMozilla Public License 2.0MPL-2.0

data-gcp

Repo pour la team data sur GCP

Organisation

+-- api
| +-- recommandation
|
+-- orchestration : DAGS Airflow (Cloud Composer)
| +-- airflow
| +-- dags
| +-- tests
|
+-- jobs
| +-- etl_jobs
|   +-- external (spécifier dans le readme du job comment est éxécuté le job (cloudfn ou vm ou airflow))
|     +-- adage
|     +-- addresses
|     +-- appsflyer
|     +-- contentful
|     +-- dms
|     +-- downloads
|     +-- metabase-archiving
|     +-- qualtrics
|     +-- sendinblue
|     +-- siren
|     +-- batch
|
|   +-- internal
|     +-- cold-data
|     +-- human_ids
|     +-- import_api_referentials
|
| +-- ml_jobs
|   +-- algo_training
|   +-- embeddings
|   +-- record_linkage
|   +-- clusterisation

INSTALL

Analytics (BigQuery)

Prérequis :

1. Installation du projet

  • Cloner le projet
    git clone git@github.com: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

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

Recommandation

API pour la brique de recommandation sur l'application.

plus de détails dans recommendation/README.md

CI/CD

CI

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
  • orchestration-tests : tester les différents DAGs d'orchestration

CD

Pour la CD, on utilise deux outils : CircleCI et Cloud Build.

CircleCI

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 dags dans le bucket du Cloud Composer sur Cloud Storage

Ces déploiements sont déclenchés sur les branches master / production.