Déploiement à chaud

Vue d'ensemble

  • Assurez-vous de comprendre la différence entre le déploiement à chaud et le déploiement statique.
  • Gardez à l'esprit que la configuration et les services qui sont déployés à chaud deviennent persistants, c'est-à-dire qu'une fois déployés, ils seront disponibles après le redémarrage d'un serveur et il n'est pas nécessaire de les déployer après chaque redémarrage.
  • Si nécessaire, il est possible de passer du déploiement à chaud au déploiement statique ou de mélanger les deux.

Déploiement de la configuration

  • La configuration est toujours déployée en utilisant zato enmasse.
  • Se référer à un chapitre dédié qui explique en détail comment enmasse peut être utilisé pour l'automatisation.

Services - configuration par défaut

  • Chaque serveur est livré avec un répertoire de déploiement à chaud par défaut dont le serveur surveille les changements.
  • Tout module Python avec services ou modèles de données placé dans le répertoire sera automatiquement récupéré par le serveur et déployé sur tous les serveurs du cluster, y compris le serveur qui a récupéré le code.
  • Le chemin par défaut du répertoire de récupération est /path/to/server/pickup/incoming/services/
  • Pour déployer le code, il suffit de le copier dans ce répertoire et le serveur déclenchera le processus de déploiement à chaud dans tout le cluster.
$ cp /path/to/code/*.py /path/to/server/pickup/incoming/services/

Services - répertoires de récupération personnalisés

  • Il est possible d'ajouter des répertoires de récupération définis par l'utilisateur qui agiront exactement comme le répertoire par défaut décrit ci-dessus.
  • Pour ajouter un répertoire de récupération, ouvrez le fichier /path/to/server/config/repo/pickup.conf et ajoutez une entrée telle que l'entrée suivante (un redémarrage est nécessaire après l'ajout) :

    [hot-deploy.user.my.python.code]
    pickup_from=/my/custom/directory/
    
  • Notez que le nom de l'entrée doit commencer par hot-deploy.user. - ce qui suit ce préfixe agit comme une description et c'est à vous de décider ce qu'est cette description mais ce préfixe spécifique est requis.

$ cp /path/to/code/*.py /my/custom/directory/

Ou, si le code Python a déjà été déployé auparavant :

$ touch /my/custom/directory/*.py

Services - Déploiement à partir d'un clone git

  • Cette technique est une extension de celles ci-dessus
  • D'abord, créez un clone git du dépôt avec votre code
  • Ensuite, configurez un répertoire de récupération défini par l'utilisateur en utilisant pickup.conf comme dans l'exemple précédent et faites-le pointer vers un répertoire dans le clone qui contient le code
  • Ensuite, il suffit d'utiliser git pull dans le répertoire pickup à chaque fois qu'il y a un besoin de déployer du code
  • L'effet final sera qu'un serveur récupérera et déploiera tous les changements que git pull a apporté au dépôt.
$ cd /my/git/clone/src/services
$ git pull

Services - IDE

  • Les services et autres codes peuvent être déployés à chaud directement depuis votre IDE chaque fois que vous appuyez sur Ctrl-S / Cmd-S.
  • Consultez les détails pour votre IDE: Visual Studio Code and PyCharm

Services - Déploiement à partir de Dashboard

  • Les services et autres codes peuvent être déployés à chaud directement à partir de Dashboard (par exemple, à l'adresse http://localhost:8183)
  • Dans Dashboard, allez dans Services -> List services -> Cliquez sur "Upload services" -> Choisissez un ou plusieurs fichiers à télécharger -> Cliquez sur OK
  • Cette méthode permet de déployer à chaud exactement comme toutes les autres méthodes décrites ci-dessus.