Pionnier du changement

Ce qu'il faut pour transformer une application.
Notre client, une multinationale américaine, fournit des services de gestion du personnel et des ressources humaines. Il offre une gamme de fonctionnalités pour aider les organisations à gérer leurs employés, ce qui inclut le suivi de leur temps et de leur présence.

Le défi

L'exigence était de construire une application sur une architecture différente pour utiliser des outils, harmonisés avec l'ensemble d'outils standard du client, sans aucune automatisation en place. Comme l'application utilise une architecture microservices, divers services devaient être créés et déployés plusieurs fois par jour pour être testés dans l'environnement de développement avant d'être déployés pour la production.

Un ordinateur portable affichant divers graphiques lors d'une réunion

an icon that depicts limited knowledge of app architecture

Connaissance limitée de l'architecture des applications et des services concernés.

An icon representing adapting to service changesAdaptation aux changements de services, mise en œuvre de la séparation des services et mise en place de mécanismes sécurisés de gestion des secrets.
An icon representing absence of best practicesAbsence de bonnes pratiques et de normalisation.
navigating-iconNaviguer dans le processus complexe d'adaptation de l'architecture tout en travaillant avec des connaissances limitées et des composants au niveau du réseau.
deployment-iconGérer efficacement la création et le déploiement d'applications, en mettant l'accent sur la gestion des images.

La solution

Le parcours de Nagarro pour surmonter avec succès tous ces défis a commencé par un effort de collaboration avec notre client, où nous avons d'abord élaboré une stratégie de migration d'application méticuleusement planifiée. Notre engagement à fournir une qualité de service irréprochable nous a conduit à surmonter tous les défis en adoptant une approche délibérée et progressive.

Nous avons soigneusement élaboré une architecture de projet hôte et de service, en séparant efficacement les ressources de niveau réseau dans le projet hôte et les ressources d'application dans le projet de service. Pour renforcer la sécurité, nous avons mis en place un pare-feu de pointe pour acheminer intelligemment le trafic vers le projet de service.

Un homme et une femme regardant l'écran d'un ordinateur portable

La phase de mise en œuvre

Nous avons exploité la puissance de Terraform pour rationaliser les déploiements d'infrastructure et créé des diagrammes Helm pour les applications afin de garantir leur cohérence et leur évolutivité. Les déploiements multiples vers la production ont été gérés habilement par des tâches Jenkins, car nous avons créé des tâches qui intégraient la numérisation d'images, étiquetaient l'image finalisée et la déployaient dans un environnement différent à l'aide de diagrammes Helm.

Nous avons également créé un job Jenkins de déploiement et de retour en arrière en un seul clic pour gérer plus de 1000 variables d'environnement et secrets. Cette configuration nous a permis de mettre à jour ou d'ajouter de nouveaux microservices avec un minimum d'effort. Nous avons défini une stratégie de mise à jour appropriée pour déployer toutes les nouvelles fonctionnalités. Nous avons également mis en œuvre la fonctionnalité de marquage avec chaque image, qui identifie les correctifs entrant dans la version avec un seul numéro, ce qui nous aide en cas de besoin de retour en arrière.

Pour assurer une journalisation complète et centralisée, nous avons exploité Splunk, en transmettant de manière transparente les journaux d'application de Cloud Logging à l'aide d'un modèle Pub-Sub.

Cette conception méticuleuse nous a permis de mettre en place de nouveaux environnements et services d'application avec facilité. Pour garder un œil sur les performances et résoudre les problèmes de manière proactive, nous avons mis en œuvre Cloud Monitoring avec Grafana et PagerDuty pour résoudre les problèmes de production avant même qu'ils ne s'aggravent. Aujourd'hui, notre système fonctionne dans huit environnements divers à travers plusieurs projets GCP, dont quatre environnements de production robustes, situés dans des régions distinctes. Avec une demande croissante d'environnements supplémentaires, nous sommes prêts à nous développer et à répondre aux besoins évolutifs de nos clients.

Une série de mesures stratégiques ont été prises pour améliorer considérablement nos opérations DevOps. Tout d'abord, nous avons standardisé le processus de provisionnement de l'infrastructure, apportant un nouveau niveau de cohérence et d'efficacité.

En outre, nous avons rationalisé le processus de construction et de déploiement des microservices, réduisant ainsi les complexités qui entravaient auparavant notre agilité. Pour améliorer encore nos capacités opérationnelles, nous avons mis en place un mécanisme de libération robuste et implémenté des systèmes complets de surveillance et d'alerte pour nos applications.

Impact sur l'entreprise

Grâce à tous nos efforts, plusieurs paramètres DevOps clés ont connu des améliorations notables :

An icon for result

Fréquence de déploiement

Notre capacité à déployer des produits auprès des utilisateurs finaux s'est considérablement accrue. Cette fréquence de déploiement accrue reflète l'agilité de notre organisation à répondre aux demandes changeantes du marché et notre volonté d'expérimentation.

An icon for result

Délai de mise en œuvre des changements

Le temps nécessaire à la mise en œuvre des changements s'est considérablement réduit. Cette réactivité à l'évolution des demandes du marché renforce non seulement notre avantage concurrentiel, mais diminue également les risques associés à des déploiements fréquents.

An icon for result

Temps de rétablissement d'un service (MTTR)

Le temps nécessaire à la reprise d'une production défaillante a été minimisé grâce à une combinaison d'automatisation transparente, de surveillance holistique et de collaboration efficace. Cela nous permet d'aborder et de rectifier rapidement tout problème potentiel.

An icon for result

Taux d'échec des changements (CFR)

Nous avons considérablement réduit le nombre de déploiements de logiciels entraînant des défaillances de production qui nécessitent des mesures correctives. Cela reflète une amélioration de nos mesures d'assurance de la qualité et un pipeline de diffusion plus fluide, ce qui se traduit par des versions de logiciels plus fiables.

Cette page utilise une traduction basée sur l'intelligence artificielle. Besoin d'aide humaine ? Contactez-nous