Des processus de déploiement efficaces sont essentiels pour garantir la livraison sans heurts des produits logiciels dans le paysage technologique actuel en constante évolution. UniCredit Bulbank, une institution financière de premier plan en Bulgarie, a reconnu la nécessité de rationaliser son pipeline de déploiement afin d'améliorer la productivité et la fiabilité de son cycle de développement logiciel. Elle a collaboré avec notre équipe de développement interne chez DSS afin de concevoir un processus de déploiement complet permettant d'atteindre cet objectif.
Aperçu du processus de déploiement
Notre processus de déploiement interne suit une série d'étapes minutieuses afin de garantir la qualité et la sécurité des versions logicielles. Le processus peut être divisé en plusieurs étapes :
- Audit et test des dépendances : le processus commence au sein de notre infrastructure Kubernetes interne, où nous auditons les dépendances et effectuons des tests afin de garantir le respect des normes de qualité avant le déploiement.
- Analyse statique du code avec SonarQube : une fois les tests réussis, le projet fait l'objet d'une analyse statique approfondie du code à l'aide de SonarQube. Cette étape permet d'identifier et de corriger les problèmes potentiels liés à la qualité du code dès le début du développement.
- Création d'images Docker : après avoir passé tous les tests et analyses, nous procédons à la création d'images Docker qui encapsulent l'application et ses dépendances. Cela garantit la cohérence et la portabilité entre différents environnements.
- Analyse de sécurité avec Trivy : nous utilisons Trivy pour effectuer des analyses de sécurité sur les images Docker, afin d'identifier et de corriger toute vulnérabilité avant le déploiement.
- Déploiement avec Helm Charts : en tirant parti des graphiques Helm, nous orchestrons le déploiement des applications sur notre infrastructure Kubernetes interne. Les graphiques Helm offrent un moyen pratique et reproductible de gérer les applications Kubernetes.
- Intégration avec Jenkins : notre processus de déploiement s'intègre de manière transparente à Jenkins, en utilisant les pods Kubernetes comme agents. Jenkins automatise l'ensemble du pipeline, de l'audit et des tests à la construction et au déploiement, garantissant ainsi cohérence et efficacité.
Extension à l'infrastructure UniCredit
La collaboration avec UniCredit Bulbank étend de manière transparente notre processus de déploiement à leur infrastructure. Lorsque des commits sont effectués sur une branche spécifique, Jenkins déclenche une tâche pour effectuer un commit dans le référentiel UniCredit. Leur instance Jenkins reflète alors notre pipeline, y compris l'audit, les tests, l'analyse SonarQube, la construction d'images Docker, le scan de sécurité Trivy et le push du référentiel d'images.
Cependant, la cible de déploiement diffère, car Jenkins d'UniCredit déploie vers leur infrastructure Openshift. Cela garantit que les versions logicielles sont soumises aux mêmes tests et contrôles rigoureux avant leur déploiement dans les environnements d'UniCredit.
Surveillance et visibilité
Afin de garantir des cycles de déploiement fluides et ininterrompus, tous les journaux sont facilement accessibles dans l'instance Grafana d'UniCredit pour une surveillance et un dépannage en temps réel, ce qui permet de maintenir la transparence et la visibilité tout au long du processus de déploiement.
Cohérence entre les environnements
Il convient de noter que le même processus de déploiement est appliqué à la fois aux environnements de développement et de test internes, ainsi qu'aux environnements de test et de production d'UniCredit. Cette cohérence garantit que les versions logicielles maintiennent le même niveau de qualité et de sécurité à toutes les étapes du cycle de vie du déploiement.
Conclusion
La collaboration entre notre équipe de développement interne et UniCredit Bulbank illustre l'importance de processus de déploiement robustes dans le développement logiciel moderne. Nous avons rationalisé les pipelines de déploiement en tirant parti de technologies avancées telles que Kubernetes, Helm, Jenkins et Trivy, garantissant ainsi une livraison rapide et fiable des produits logiciels. Ce partenariat améliore non seulement la productivité et l'efficacité, mais renforce également notre engagement à fournir des solutions de haute qualité qui répondent aux normes strictes du secteur financier.
