Le gestionnaire d'actifs Vanguard et la banque mondiale Morgan Stanley tentent d'équilibrer soigneusement leurs fonctions de développement et d'exploitation de logiciels dans le cadre d'une transition à grande échelle vers le cloud. Vanguard a connu ce qu'elle appelle une transformation itérative, passant de la gestion de 2 000 de ses propres serveurs en 2015 à une exploitation principalement sur Amazon Web Services (AWS). En conséquence, ses 7 000 développeurs sont passés de la mise à jour d'applications monolithiques sur un cycle trimestriel à un ensemble de microservices construits et gérés par des équipes distinctes. Ces dernières sont désormais soutenues par une équipe de plateforme centralisée qui fournit des pipelines CI/CD standardisés et une infrastructure pour le référentiel de leur code, avec une supervision de l'ingénierie de fiabilité des sites (SRE) à la fois centralisée et intégrée dans ces équipes.

Morgan Stanley a commencé sa transformation agile et cloud en 2018, et s'est alignée plus étroitement sur Azure. L'initiative a commencé par un effort de formation de trois ans pour établir des pratiques devops et SRE modernes au sein des équipes techniques de la banque, soit 15 000 personnes. Ce programme s'articulait autour de ce que Gus Paul, directeur exécutif de l'infrastructure applicative chez Morgan Stanley, a identifié comme trois domaines clés : « Accélérer le développement et la livraison des logiciels ; augmenter la prévisibilité, la fréquence et la qualité des changements ; et révolutionner la façon dont nous exploitons la technologie », a-t-il déclaré lors d'une présentation au Devops Enterprise Summit.

Une transformation réussie

Aujourd'hui, Morgan Stanley dispose « d'équipes agiles avec un responsable de produit, d'ingénieurs ayant une expertise en matière de développement et d'exploitation, et ils peuvent cibler une infrastructure sur site ou dans le cloud », a déclaré Trevor Brosnan, responsable de l'architecture Devops et de la technologie d'entreprise chez Morgan Stanley. « Ma philosophie est que tout le monde a des spécialisations ; nous avons tous un super pouvoir dans la technologie ».

Changer des comportements de construction et d'exécution bien établis sera toujours un défi pour des organisations aussi grandes, complexes et prudentes que Vanguard et Morgan Stanley. Cela ne les a pas empêchées d'essayer de trouver le moyen de donner aux développeurs la possibilité d'aller plus vite, tout en maintenant le niveau de contrôle attendu par ces entreprises qui gèrent des milliards, voire des milliers de milliards de dollars. Ce sont des entreprises et des cultures qui ne tolèrent pas le risque ou les temps morts.

Flexibilité et gestion des risques

Christina Yakomin est ingénieure en fiabilité de site chez Vanguard, où elle fait partie d'une équipe qui soutient les équipes de développeurs alignées sur les besoins métiers. Son équipe définit et applique certains contrôles de déploiement en exécutant ce qu'elle appelle des « plateformes de services partagés », comme des pipelines CI/CD standardisés et des plateformes d'infrastructure cloud. Cela permet à la société de services financiers, peu encline à prendre des risques, d'avoir la certitude que certains contrôles sont appliqués au stade du déploiement, tout en réduisant les tâches répétitives entre les différentes équipes de développement, « afin que chaque équipe n'ait pas à réinventer la roue », a-t-elle expliqué.

S'inspirant du livre de jeu golden path du géant du streaming Spotify, Christina Yakomin a clairement été influencée par le concept cloud-native consistant à fournir des chemins dorés aux développeurs. « Nous avons constaté qu'en raison de la complexité des contrôles nécessaires pour créer des applications dans ce secteur, nous nous efforçons de paver le chemin standard avec de l'or, tout en veillant à ce qu'il soit ouvert à la déviation », a-t-elle déclaré. Toutefois, en raison du niveau de contrôle strict requis, Mme Yakomin affirme que la plupart des développeurs ont tendance à s'en tenir au chemin fixé. Si les équipes parviennent à dévier vers une autre technologie ou technique, elles en deviennent instantanément responsables.

Morgan Stanley modernise son approche

Malgré une structure similaire, Morgan Stanley adopte une approche différente de la gestion des risques lors du déploiement en production. Auparavant, un développeur devait basculer entre trois instances Jira distinctes, déposer un ticket de modification et suivre 81 étapes pour obtenir l'approbation d'une seule ligne de code. Désormais, la banque a commencé à adopter des pratiques modernes d'infrastructure as a code et de CI/CD pour rationaliser ce processus auprès de ses diverses équipes de développeurs, avec une équipe centrale chargée d'encourager et d'inciter les autres à suivre le mouvement.

En outre, la banque a mis au point un calculateur de risque automatisé, qui évalue chaque changement et lui attribue un score de risque. Les changements qui se situent en dessous d'un certain seuil peuvent être déployés à l'aide d'un pipeline automatisé ; ceux qui dépassent ce seuil sont soumis à un processus d'approbation plus manuel.

La couverture de sécurité SRE

La mise en place d'un dispositif de sécurité SRE, tant au niveau des opérations centrales qu'au sein des équipes de développeurs, a permis à Vanguard et Morgan Stanley d'acquérir la confiance nécessaire pour trouver le juste équilibre entre la rapidité des développeurs et la stabilité opérationnelle. Cependant, cette fonction ouvre la possibilité de séparer les préoccupations et de créer une fois de plus une coupure entre le développement et les opérations. « C'est un problème nuancé à résoudre », a déclaré Christina Yakomin. « L'introduction de SRE donne l'impression aux gens que nous isolons à nouveau les ops dans ce rôle ».

De même, chez Morgan Stanley, l'établissement de principes SRE est « parfois mal compris comme un rebranding de l'équipe ops », a déclaré Trevor Brosnan. Plutôt que de séparer le développement et les opérations, Christina Yakomin veut encourager les développeurs et les spécialistes des opérations de Vanguard à partager la responsabilité de la sécurité et à s'assurer que les équipes qui partagent des plates-formes en assument l'entière responsabilité opérationnelle.

La centralisation profite aux ingénieurs

Robbie Daitzman, responsable de la plateforme technologique des intermédiaires chez Vanguard, a déclaré qu'ils ont pu surmonter ce problème en « créant un cri de ralliement pour centraliser autour de certaines plateformes ». La centralisation profite aux ingénieurs « en équilibrant la charge cognitive et en mettant en œuvre le modèle de responsabilité partagée », a-t-il ajouté.

De même, chez Morgan Stanley, Trevor Brosnan considère que « le SRE concerne à la fois le développement et les opérations, ainsi que l'ensemble du cycle de développement ». Par exemple, la pratique fondamentale du SRE, qui consiste à éliminer le travail répétitif, sera généralement ressentie plus vivement par les spécialistes des opérations, mais les développeurs sont bien placés pour automatiser ces tâches fastidieuses. La fiabilité, qui est une préoccupation essentielle de la SRE, est également du ressort des développeurs, qui ont la responsabilité de concevoir leurs applications « pour qu'elles soient résilientes à la base », a déclaré M. Brosnan.

Construire des systèmes résilients et surveillés

L'équipe SRE centrale de Vanguard est également chargée de veiller à ce que ses différents systèmes soient résilients et monitorés. Christina Yakomin et Robbie Daitzman ont tous deux travaillé auparavant dans l'équipe d'ingénierie du chaos de Vanguard. Les tests en mode chaos étaient déjà essentiels pour valider la résilience des systèmes de l'entreprise. Vanguard est également passé de la visibilité de ses systèmes centraux par le biais d'alertes à l'adoption d'Amazon CloudWatch, de la surveillance cloud native de Honeycomb et du standard open source OpenTelemetry pour la collecte de métriques, de journaux et de traces.

« L'observabilité dans SRE a été une chose de qualité pour les ingénieurs, pour aider à comprendre si nous sommes dans un bon état ou si nous avons un impact négatif sur les clients », a déclaré Robbie Daitzman. En plus de ces mesures de surveillance partagées, Vanguard a construit elle-même un ensemble de tableaux de bord, qui peuvent être modifiés par chaque équipe de développeurs pour répondre à leurs besoins. Toutefois, cela n'a pas empêché les équipes de réclamer la toute dernière et la meilleure plateforme d'observabilité à superposer à cette infrastructure. « Chaque équipe veut des choses différentes et si nous avions tout cela, ce serait très coûteux », a déclaré Mme Yakomin.

À la recherche du bon équilibre

Malgré tous ces progrès, Mme Yakomin admet que son équipe à Vanguard tente toujours de trouver le juste équilibre entre efficacité et flexibilité pour ses développeurs. Son plan est de veiller à ce que chacun reçoive la formation dont il a besoin pour passer au prochain modèle de responsabilité partagée, tout en ayant la capacité de travailler sur la livraison, avec des examens post-incident précis et sans défaut. Enfin, elle souhaite que les équipes de développeurs puissent plus facilement expérimenter en toute sécurité et s'écarter du chemin d'or lorsque cela est jugé utile.

Pour Trevor Brosnan, de Morgan Stanley, « on n'a jamais vraiment fini ». Il promet de continuer à « se concentrer sur le maintien de l'élan des équipes, pour aider à en faire un élément permanent de la culture ».