managing-astro-deployments

Gérez les déploiements de production Astronomer avec Astro CLI. À utiliser lorsque l'utilisateur souhaite s'authentifier, changer de workspace, créer/mettre à jour/supprimer des déploiements, ou déployer du code en production.

npx skills add https://github.com/astronomer/agents --skill managing-astro-deployments

Gestion des déploiements Astro

Cette skill vous aide à gérer les déploiements Astronomer en production en utilisant l'Astro CLI.

Pour le développement local, consultez la skill managing-astro-local-env. Pour le dépannage en production, consultez la skill troubleshooting-astro-deployments.


Authentification

Toutes les opérations de déploiement nécessitent une authentification :

# Se connecter à Astronomer (ouvre le navigateur pour OAuth)
astro login

Les tokens d'authentification sont stockés localement pour les commandes suivantes. Exécutez ceci avant toute opération de déploiement.


Gestion des workspaces

Les déploiements sont organisés en workspaces :

# Lister tous les workspaces accessibles
astro workspace list

# Basculer vers un workspace spécifique
astro workspace switch <WORKSPACE_ID>

Le contexte du workspace est maintenu entre les sessions. La plupart des commandes de déploiement fonctionnent dans le contexte du workspace actuel.


Lister et inspecter les déploiements

# Lister les déploiements du workspace actuel
astro deployment list

# Lister les déploiements de tous les workspaces
astro deployment list --all

# Inspecter un déploiement spécifique (infos détaillées)
astro deployment inspect <DEPLOYMENT_ID>

# Inspecter par nom (alternative à l'ID)
astro deployment inspect --deployment-name data-service-stg

Ce que montre inspect

  • État du déploiement (HEALTHY, UNHEALTHY)
  • Version du runtime et version d'Airflow
  • Type d'executor (CELERY, KUBERNETES, LOCAL)
  • Configuration du scheduler (taille, nombre)
  • Paramètres des files de workers (min/max workers, concurrence, type de worker)
  • Quotas de ressources (CPU, mémoire)
  • Variables d'environnement
  • Timestamp du dernier déploiement et tag actuel
  • URLs du webserver et de l'API
  • État de la haute disponibilité

Créer des déploiements

# Créer avec les paramètres par défaut
astro deployment create

# Créer avec un executor spécifique
astro deployment create --label production --executor celery
astro deployment create --label staging --executor kubernetes

# Options d'executor :
#   - celery: Meilleur pour la plupart des charges de production
#   - kubernetes: Meilleur pour la mise à l'échelle dynamique, les tâches isolées
#   - local: Meilleur pour le développement uniquement

Mettre à jour les déploiements

# Activer les déploiements DAG uniquement (itération plus rapide)
astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled

# Mettre à jour d'autres paramètres (utilisez --help pour les options complètes)
astro deployment update <DEPLOYMENT_ID> --help

Supprimer des déploiements

# Supprimer un déploiement (demande une confirmation)
astro deployment delete <DEPLOYMENT_ID>

Destructif : Ceci ne peut pas être annulé. Tous les DAGs, l'historique des tâches et les métadonnées seront perdus.


Déployer le code en production

Déploiement complet

Déployer à la fois les DAGs et l'image Docker (requis quand les dépendances changent) :

astro deploy <DEPLOYMENT_ID>

À utiliser quand :

  • Les dépendances ont changé (requirements.txt, packages.txt, Dockerfile)
  • Premier déploiement d'un nouveau projet
  • Changements d'infrastructure importants

Déploiement DAG uniquement (recommandé pour l'itération)

Déployer uniquement les fichiers DAG, ignorer la reconstruction de l'image Docker :

astro deploy <DEPLOYMENT_ID> --dags

À utiliser quand :

  • Seuls les fichiers DAG ont changé (fichiers Python dans le répertoire dags/)
  • Itération rapide pendant le développement
  • Beaucoup plus rapide qu'un déploiement complet (secondes vs minutes)

Requiert : Flag --dag-deploy-enabled activé sur le déploiement (voir Mettre à jour les déploiements)

Déploiement image uniquement

Déployer uniquement l'image Docker, ignorer la synchronisation des DAGs :

astro deploy <DEPLOYMENT_ID> --image-only

À utiliser quand :

  • Seules les dépendances ont changé
  • Dockerfile ou requirements mis à jour
  • Pas de modifications de DAGs

Forcer le déploiement

Contourner les vérifications de sécurité et déployer :

astro deploy <DEPLOYMENT_ID> --force

Attention : Ignore la validation qui pourrait prévenir des déploiements défaillants.


Tokens API de déploiement

Gérer les tokens API pour l'accès programmatique aux déploiements :

# Lister les tokens d'un déploiement
astro deployment token list --deployment-id <DEPLOYMENT_ID>

# Créer un nouveau token
astro deployment token create \
  --deployment-id <DEPLOYMENT_ID> \
  --name "CI/CD Pipeline" \
  --role DEPLOYMENT_ADMIN

# Créer un token avec expiration
astro deployment token create \
  --deployment-id <DEPLOYMENT_ID> \
  --name "Temporary Access" \
  --role DEPLOYMENT_ADMIN \
  --expiry 30  # Jours avant expiration (0 = n'expire jamais)

Rôles :

  • DEPLOYMENT_ADMIN: Accès complet au déploiement

Note : La valeur du token n'est affichée qu'à la création. Stockez-la en sécurité.


Workflows courants

Premier déploiement en production

# 1. Se connecter
astro login

# 2. Basculer vers le workspace de production
astro workspace list
astro workspace switch <PROD_WORKSPACE_ID>

# 3. Créer un déploiement
astro deployment create --label production --executor celery

# 4. Noter l'ID du déploiement, puis déployer
astro deploy <DEPLOYMENT_ID>

Développement itératif de DAGs

# 1. Activer les déploiements rapides (configuration unique)
astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled

# 2. Faire des modifications de DAG localement

# 3. Déployer rapidement
astro deploy <DEPLOYMENT_ID> --dags

Promouvoir le code de staging vers production

# 1. Déployer d'abord en staging
astro workspace switch <STAGING_WORKSPACE_ID>
astro deploy <STAGING_DEPLOYMENT_ID>

# 2. Tester en staging

# 3. Déployer le même code en production
astro workspace switch <PROD_WORKSPACE_ID>
astro deploy <PROD_DEPLOYMENT_ID>

Gestion de la configuration

# Afficher la configuration de la CLI
astro config get

# Définir une valeur de configuration
astro config set <KEY> <VALUE>

# Vérifier la version de la CLI
astro version

# Mettre à niveau la CLI vers la dernière version
astro upgrade

Conseils

  • Utilisez le flag --dags pour une itération rapide (secondes vs minutes)
  • Testez toujours dans le workspace de staging avant la production
  • Utilisez deployment inspect pour vérifier l'état du déploiement avant de déployer
  • Les IDs de déploiement sont permanents, les noms peuvent changer
  • La plupart des commandes fonctionnent avec l'ID de déploiement ; inspect accepte aussi --deployment-name
  • Définissez --dag-deploy-enabled une fois par déploiement pour les déploiements rapides
  • Gardez le contexte du workspace visible avec astro workspace list (affiche un astérisque pour le contexte actuel)

Skills associées

  • troubleshooting-astro-deployments: Investiguer les problèmes de déploiement, consulter les logs, gérer les variables d'environnement
  • managing-astro-local-env: Gérer l'environnement de développement Airflow local
  • setting-up-astro-project: Initialiser et configurer les projets Astro

Skills similaires