Déploiements
Les déploiements hébergent votre serveur Odoo avec les dernières modifications de code de votre dépôt. Apprenez à créer, mettre à jour et gérer les déploiements sur Skysize.
Qu'est-ce qu'un déploiement ?
Un déploiement est une instance en cours d'exécution de votre application Odoo. Chaque déploiement :
- Exécute votre dernier code à partir d'une branche spécifique
- Possède sa propre base de données
- Fonctionne dans un environnement isolé
- Peut être configuré et géré indépendamment
Actions de déploiement
Chaque branche dispose d'un paramètre Action lors de la mise à jour du code (dans les Paramètres principaux de la branche) qui contrôle ce que fait Skysize lorsque vous poussez du code. Il existe trois options :
Nouveau build
Crée un déploiement complètement nouveau avec sa propre base de données.
Quand l'utiliser :
- Premier déploiement d'une nouvelle branche
- Démarrage d'un nouvel environnement à partir de zéro
- Création d'une instance fraîche pour les tests
Ce qui se passe :
- Une nouvelle base de données est créée
- L'application est déployée avec le dernier code
- Seul le module
baseest installé (pas d'installation automatique de modules personnalisés) - L'environnement est configuré
- Une nouvelle URL est attribuée
Note : Les nouveaux déploiements nécessitent que vous installiez manuellement les modules personnalisés dont vous avez besoin. Cela vous donne un contrôle total sur les modules actifs dans votre nouvel environnement.
Mettre à jour le build
Met à jour le déploiement existant avec vos nouvelles modifications de code.
Quand l'utiliser :
- Déploiement de modifications de code vers un environnement existant
- Application de corrections de bugs
- Déploiement de nouvelles fonctionnalités
- Mise à jour des dépendances
Ce qui se passe :
- La base de données existante est préservée
- Le code est mis à jour vers la dernière version
- Tous les modules Odoo actuellement installés sont mis à jour automatiquement
- L'application redémarre avec le nouveau code
Note : Les déploiements de mise à jour ne mettent à jour que les modules déjà installés dans votre base de données. Les nouveaux modules ajoutés à votre code ne seront pas installés automatiquement, vous devez les installer manuellement via l'interface Odoo ou la base de données.
Ne rien faire
Aucun déploiement n'a lieu, Skysize ne crée ni ne met à jour quoi que ce soit.
Quand l'utiliser :
- Modifications qui ne nécessitent pas de déploiement
- Mises à jour de documentation
- Modifications de configuration uniquement
- Lorsque vous voulez contrôler manuellement les déploiements
Gestion des déploiements par type de branche
Production et staging
- Ne sont jamais supprimés automatiquement
- Les déploiements restent en cours d'exécution en continu
- Les mises à jour sont appliquées au déploiement existant
Development
- Automatiquement nettoyés après 24 heures
- Rentable pour les tests temporaires
- Redéployez si vous avez à nouveau besoin de l'environnement
- Aide à gérer l'utilisation des ressources
Cycle de vie du déploiement
1. Déclenchement
Les déploiements peuvent être déclenchés par :
- Pousser du code vers votre dépôt
- Déploiement manuel via le tableau de bord Skysize
- Création ou mises à jour de branche
2. Construction
Skysize construit votre application :
- Tire le dernier code du dépôt
- Initialise et met à jour automatiquement les sous-modules Git (s'ils sont présents)
- Installe les dépendances
- Prépare l'environnement Odoo
- Configure les workers et les ressources
3. Déploiement
Votre application est mise en ligne :
- La base de données est créée ou mise à jour
- Le serveur Odoo démarre
- Les vérifications de santé confirment le succès du déploiement
- L'URL devient accessible
4. Surveillance
Suivez la santé de votre déploiement :
- Affichez le statut du déploiement dans le tableau de bord
- Surveillez les logs de l'application
- Vérifiez l'utilisation des ressources
- Recevez des notifications en cas de problèmes
Consultation des logs
Pour consulter les logs de déploiement :
- Accédez à votre déploiement dans le tableau de bord Skysize
- Cliquez sur Voir les logs sur le déploiement (ou ouvrez sa page de détail et sélectionnez l'onglet Logs)
- Utilisez le sélecteur Fichier de log et les filtres de date pour voir la sortie et les erreurs de l'application
Rétention des logs : Les logs de build et de déploiement sont conservés de manière durable, ils restent donc disponibles même après la suppression d'un conteneur ou l'abandon d'un déploiement. Ils sont conservés pendant 30 jours par défaut (configurable par projet), puis supprimés automatiquement. Les données de déploiement en direct, telles que les métriques, sont conservées pendant 30 jours.
Gestion des déploiements
Création d'un nouveau déploiement
- Poussez le code vers une nouvelle branche dans votre dépôt
- Skysize détecte la nouvelle branche
- Réglez l'Action lors de la mise à jour du code de la branche sur Nouveau build
- Attendez que la construction et le déploiement soient terminés
- Accédez à votre application à l'URL attribuée
Mise à jour d'un déploiement existant
- Poussez les modifications vers une branche existante
- Skysize détecte les modifications
- Réglez l'Action lors de la mise à jour du code de la branche sur Mettre à jour le build
- Le déploiement existant se met à jour avec le nouveau code
- L'application redémarre avec les modifications
Reconstruire un déploiement
Reconstruire crée un déploiement complètement nouveau pour une branche, remplaçant le précédent.
Ce qui se passe :
- Un nouveau déploiement est toujours créé avec une base de données fraîche
- Pour les branches de staging : crée un nouvel instantané de la base de données de production
- Pour les branches de development : crée une nouvelle base de données avec des données de démonstration
- Les builds précédents de cette branche deviennent éligibles au nettoyage automatique
- L'ancien déploiement est marqué pour le nettoyage et ses ressources seront libérées
Quand l'utiliser :
- Lorsque vous avez besoin d'un nouvel instantané de base de données issu de la production (staging)
- Lorsque vous voulez recommencer avec des données de démonstration propres (development)
- Après des changements importants du schéma de base de données
- Lors du dépannage de problèmes persistants de base de données
- Pour forcer une actualisation complète de votre environnement
Notes importantes :
- Les reconstructions de production sont restreintes : pour les déploiements de production en cours d'exécution, l'action de reconstruction est désactivée afin d'éviter toute perte accidentelle de données
- Les déploiements de production ne peuvent être reconstruits que s'ils ne sont pas actuellement en cours d'exécution
- La reconstruction est une opération destructive, la base de données du déploiement précédent sera perdue
- Toute donnée ou modification non commitée dans l'ancien déploiement sera définitivement supprimée
Comment reconstruire :
- Accédez à votre déploiement dans le tableau de bord Skysize
- Cliquez sur le menu "Manage deployment"
- Sélectionnez l'option "Retry Deployment" ou "Rebuild"
- Attendez que le nouveau déploiement soit terminé
- L'ancien déploiement sera automatiquement nettoyé
Suppression d'un déploiement
Les admins peuvent supprimer les déploiements qui ne sont plus nécessaires :
- Supprime définitivement l'instance de déploiement
- Toutes les données de déploiement sont supprimées
- Les ressources sont libérées
- L'URL devient inactive
Notes importantes :
- Confirmation requise : une fenêtre de confirmation apparaîtra avant la suppression
- Avertissement de production : pour les déploiements de production, vous verrez un avertissement bien visible indiquant que cette action ne peut pas être annulée
- Action irréversible : les déploiements supprimés et leurs bases de données ne peuvent pas être récupérés
- Admins uniquement : seuls les utilisateurs disposant d'un accès admin peuvent supprimer des déploiements
Comment supprimer :
- Accédez à votre déploiement dans le tableau de bord Skysize
- Cliquez sur le menu "Manage deployment" (trois points)
- Sélectionnez "Delete Deployment"
- Examinez la boîte de dialogue de confirmation (les déploiements de production affichent des avertissements supplémentaires)
- Confirmez la suppression pour retirer définitivement le déploiement
Bonnes pratiques
Pour la production
- Testez avant de déployer : testez toujours les modifications en staging d'abord
- Déployez pendant les périodes de faible trafic : planifiez les mises à jour de production pendant les heures creuses
- Surveillez après le déploiement : surveillez les erreurs ou problèmes après les mises à jour
- Ayez un plan de retour en arrière : sachez comment revenir en arrière si quelque chose ne va pas
- Évitez de reconstruire une production en cours d'exécution : la reconstruction est désactivée pour les déploiements de production en cours d'exécution afin d'éviter la perte de données
- Soyez prudent avec la suppression : les suppressions de production affichent des avertissements supplémentaires, cette action est permanente et ne peut pas être annulée
Pour le staging
- Maintenez le staging à jour : mettez régulièrement à jour le staging pour qu'il corresponde à la production
- Utilisez des instantanés de données de production : testez avec des données réalistes en reconstruisant le staging pour obtenir de nouveaux instantanés de la base de données de production
- Reconstruisez régulièrement : reconstruisez périodiquement les déploiements de staging pour vous assurer de tester avec les données de production actuelles
- Testez minutieusement : exécutez des suites de tests complètes avant de promouvoir en production
Pour le development
- Nettoyez régulièrement : supprimez les branches de development inutilisées
- Utilisez des branches de courte durée : profitez du nettoyage automatique après 24 heures
- Testez tôt, testez souvent : déployez fréquemment pour détecter les problèmes tôt
- Reconstruisez pour repartir à neuf : utilisez la reconstruction pour obtenir une base de données propre avec des données de démonstration lors de tests à partir de zéro
Dépannage
Échec du déploiement
Si un déploiement échoue :
- Vérifiez les logs de déploiement dans le tableau de bord Skysize
- Vérifiez que votre code se compile correctement en local
- Assurez-vous que toutes les dépendances sont spécifiées correctement
- Vérifiez les erreurs de module Odoo
- Contactez le support si les problèmes persistent
Application non accessible
Si vous ne pouvez pas accéder à votre application déployée :
- Vérifiez que le statut du déploiement est "Running"
- Vérifiez que l'URL est correcte
- Assurez-vous que le DNS s'est propagé (pour les domaines personnalisés)
- Vérifiez les paramètres du pare-feu
- Examinez les logs d'application pour les erreurs
Prise en charge des sous-modules Git
Skysize prend automatiquement en charge les sous-modules Git publics dans votre dépôt. Cela vous permet de :
- Inclure des modules Odoo tiers en tant que sous-modules
- Référencer des bibliothèques et dépendances externes
- Garder votre code modulaire et organisé
Comment ça fonctionne
Lorsque vous déployez votre code :
- Skysize clone votre dépôt avec le flag
--recurse-submodules - Tous les sous-modules Git publics sont automatiquement initialisés et mis à jour
- Le code des sous-modules est disponible dans votre déploiement aux côtés de votre code principal
Exigences
- Dépôts publics uniquement : les sous-modules doivent être accessibles publiquement
- Sous-modules Git standard : utilisez un fichier
.gitmodulesà la racine de votre dépôt - Aucune authentification requise : les sous-modules privés ne sont actuellement pas pris en charge
Exemple d'utilisation
Ajouter un module Odoo externe en tant que sous-module :
git submodule add https://github.com/OCA/web.git addons/web
git commit -m "Add web module as submodule"
git push
Au prochain déploiement, Skysize récupérera automatiquement le code du sous-module.
Configuration du déploiement
Comment vos modules sont détectés
Votre dépôt est monté dans le déploiement, et Skysize détecte automatiquement chaque module Odoo qu'il contient, c'est-à-dire tout répertoire contenant un fichier __manifest__.py. Vous n'avez rien à configurer pour que les modules situés à la racine de votre dépôt soient trouvés.
Les modules détectés sont rendus disponibles dans votre instance Odoo. Ils ne sont pas installés automatiquement, vous installez ceux dont vous avez besoin depuis le menu Apps d'Odoo (voir types de branches et les actions de déploiement ci-dessus pour savoir en quoi l'installation diffère entre les déploiements neufs et de mise à jour).
Chemin des addons personnalisés
Si votre dépôt organise les modules dans des sous-répertoires (plutôt qu'à la racine), vous pouvez définir un chemin d'addons personnalisé par branche pour indiquer à Odoo exactement où chercher.
Comment configurer :
- Définissez le chemin des addons dans les paramètres de déploiement de la branche.
- Spécifiez un ou plusieurs répertoires, séparés par des virgules.
- Pointez vers les sous-répertoires de votre dépôt qui contiennent vos modules.
Notes importantes :
- Un chemin d'addons personnalisé rend les modules disponibles mais ne les installe pas, installez-les depuis l'interface Apps d'Odoo.
- Les déploiements de mise à jour ne mettent à niveau que les modules déjà installés ; les modules nouvellement ajoutés doivent être installés manuellement.
Exemples d'utilisation :
- Séparer les modules OCA (Odoo Community Association) de vos propres modules personnalisés.
- Organiser les modules par fonctionnalité ou par équipe.
- Inclure des modules récupérés via des sous-modules Git qui résident dans leurs propres répertoires.
Les addons Odoo Enterprise sont fournis par la plateforme lorsque votre projet est un projet Enterprise, vous n'avez pas besoin de les ajouter à votre chemin d'addons ni de les committer dans votre dépôt.
Configuration des workers
Les admins peuvent configurer le nombre de workers Odoo :
- Plus de workers : de meilleures performances pour une forte concurrence
- Moins de workers : une utilisation des ressources et des coûts réduits
- Ajustez en fonction de vos modèles de trafic
Allocation des ressources
Les ressources sont allouées en fonction de :
- Type de branche (production, staging, development)
- Nombre de workers configurés
- Votre plan de facturation
- Niveau de remise sur engagement