Intégration continue - Deploiement continue
CICD WebCapsule
Ce schéma permet de visualiser les flux CICD pour des architectures de développement visuel mêlant des outils Open-Source et des outils propriétaires.
Versioning
Lors de la gestion d'une application complexe de grande envergure, il est crucial de mettre en place un système de contrôle des versions pour assurer le suivi des modifications et résoudre les conflits. Git est l'outil le plus couramment utilisé pour cela, permettant aux développeurs de fusionner les modifications apportées par plusieurs membres de l'équipe dans une base de code unique.
Cependant, Git n'est pas toujours la meilleure option pour gérer les modifications apportées à des actifs autres que le code, tels que les bases de données ou les systèmes de gestion de contenu (CMS).
Notre système peut contribuer à assurer un flux de développement cohérent au niveau de l'ensemble de la stack, facilitant la collaboration avec les membres de l'équipe et maintenant un haut niveau de qualité dans votre application.
Versions
Chaque modification apportée à vos outils peut être enregistrée comme une nouvelle version, vous permettant de revenir à un état antérieur si nécessaire. Cette approche est particulièrement utile lorsque vous travaillez avec plusieurs membres de l'équipe ou que vous effectuez fréquemment des mises à jour de l'application.
Branches (beta)
Le branchement est une pratique courante dans le développement logiciel, consistant à créer une copie distincte de la base de code pour isoler les modifications de la branche principale. Cela permet aux développeurs de travailler sur de nouvelles fonctionnalités ou des corrections de bogues sans perturber la stabilité de la base de code principale. Une fois que les modifications ont été testées et examinées, elles peuvent être fusionnées dans la branche principale. Notre système permet de créer des branches similaires et de fusionner les modifications apportées à des actifs autres que le code, tels que les bases de données ou les systèmes de gestion de contenu (CMS).
Cette fonctionnalité est rendue possible grâce à la mise en place du rds blue-green deployment
Environnements
Notre système propose au moins deux environnements : staging et production.
L'environnement de test est l'endroit où vous pouvez prévisualiser les nouvelles versions de votre application avant de les déployer en production. Cet environnement est conçu pour être aussi proche que possible de l'environnement de production, vous permettant de tester votre application dans des conditions réalistes sans affecter vos utilisateurs.
L'environnement de production est celui où votre application est en service et accessible aux utilisateurs. Il est optimisé en termes de performances, d'évolutivité et de fiabilité, conçu pour gérer des niveaux élevés de trafic et de charge de travail.
L'utilisation d'environnements distincts pour les tests et la production présente plusieurs avantages. Tout d'abord, elle vous permet de tester de nouvelles versions de votre application dans un environnement sûr et contrôlé, sans affecter vos utilisateurs ni risquer des temps d'arrêt. Deuxièmement, elle vous aide à identifier et à corriger les problèmes ou les bogues avant qu'ils n'affectent vos utilisateurs. Enfin, elle vous permet de prévisualiser de nouvelles fonctionnalités ou des changements dans votre application avant de les déployer en production, vous offrant un meilleur contrôle sur l'expérience de l'utilisateur.
Dans l'ensemble, l'utilisation d'environnements de test et de production distincts garantit la qualité et la fiabilité de votre application, tout en réduisant les risques de temps d'arrêt ou de perturbations pour les utilisateurs.
Déploiements
Trigger
Notre système propose deux façons de déployer une nouvelle version de votre application. La première est un déploiement manuel, qui peut être déclenché d'un simple clic. La seconde est un déploiement automatisé, qui peut être déclenché automatiquement lorsqu'une nouvelle version est soumise. Les deux méthodes sont conçues pour rendre le processus de déploiement aussi simple et efficace que possible.
Strategie
Deux stratégies de déploiement sont disponibles : le déploiement continu et le Blue-Green. Les deux stratégies sont conçues pour minimiser le temps d'arrêt.
Le déploiement en continu Le déploiement continu consiste à déployer les mises à jour sur un sous-ensemble de serveurs à la fois, tout en conservant la version précédente sur le reste des serveurs. Cela signifie que si un problème survient avec la mise à jour, il n'affectera qu'une petite partie des utilisateurs. Une fois que la mise à jour est validée, elle est déployée sur l'ensemble des serveurs. Ce processus est répété jusqu'à ce que tous les serveurs utilisent la nouvelle version.
Le déploiement bleu-vert Le déploiement Blue-Green consiste à déployer des mises à jour dans un environnement complètement distinct, appelé environnement "Blue," tout en maintenant l'environnement actuel, appelé environnement "Green," en fonctionnement. Une fois que le bon fonctionnement de l'environnement Blue est confirmé, le trafic est progressivement redirigé de l'environnement Green vers l'environnement Blue, jusqu'à ce que tout le trafic soit dirigé vers le nouvel environnement. Cette méthode permet de revenir instantanément en arrière en cas de problème avec le nouvel environnement.
Ces deux stratégies garantissent un temps d'arrêt minimal pendant le déploiement.
Mises à jour automatiques (beta)
Notre système a mis en place des processus pour gérer les mises à jour mineures et majeures. Pour les mises à jour mineures, notre équipe s'assure que les mises à jour sont compatibles avec vos outils et packages existants, et les teste minutieusement avant de les implémenter. Cela garantit que vos applications continuent de fonctionner sans problème.
Pour les mises à jour majeures, nous privilégions une communication transparente. Nous envoyons une notification par courrier électronique à tous nos clients, expliquant les changements et fournissant un tutoriel sur la manière de mettre à jour vos outils tout en assurant la compatibilité. Nous comprenons que les mises à jour majeures peuvent être intimidantes, mais nous sommes là pour vous accompagner à chaque étape.
En maintenant vos outils et packages à jour, vous avez accès aux dernières fonctionnalités tout en garantissant la stabilité et le bon fonctionnement de votre application.
Rollback
Notre système vous permet de revenir facilement à une version antérieure de votre application si nécessaire. Chaque modification apportée à vos outils peut être enregistrée comme une nouvelle version, vous offrant la possibilité de revenir à un état antérieur en cas de besoin. Cette approche se révèle particulièrement utile lorsque vous travaillez avec plusieurs membres de l'équipe ou que vous effectuez fréquemment des mises à jour de l'application. 🔄🛠️🚀✨