Transformation DevOps et Performance Web

Transformation DevOps et Performance Web

D’ici 2018, le Gartner prévoit qu’une entreprise sur deux aura mis en place une solution de Release Automation pour faciliter sa transformation DevOps.

Le concept DevOps

Le concept DevOps consiste à rapprocher les équipes de DEVeloppement et OPérationnelleS, afin de faciliter et d’automatiser les mises à jour logicielles de plus en plus fréquentes sur les environnements de production. L’objectif principal est de réduire significativement les interminables cycles de livraison dans les organisations traditionnelles en silos, et l’objectif sous-jacent mais pas moindre est de maintenir le même niveau de qualité des livraisons.

Le cycle DevOps :

 width=

L’intégration continue

Dans une démarche classique d’intégration continue, les équipes projets développent les solutions, elles passent ensuite la main à leurs confrères de l’exploitation en fin de cycle pour prendre en charge le déploiement en tenant compte des contraintes de production.
Ces métiers sont bien différents et dans la pratique on note souvent des intervenants avec des profils très distincts.

Automatiser le déploiement des applications, c’est d’abord définir des processus dépendant de l’entreprise voire des organisations internes. Il faut ensuite s’assurer qu’opérationnellement tous les acteurs de l’intégration continue suivront bien les règles de base de la gestion de configuration :

  • Définir les packages à livrer,
  • Stocker les livraisons avec la documentation associée,
  • Tester les livraisons sur les différents environnements (intégration, validation, production),
  • Fournir des versions gérées en configuration pour les équipes de tests (techniques ou fonctionnelles).

Revenons maintenant à notre solution de Release Automation, en conclusion elle devra permettre d’automatiser ces processus de livraisons qui jusque-là étaient supportées uniquement par les équipes OPS.

La Performance Web

Dans notre univers de l’analyse des performances applicatives, cela fait déjà bien longtemps que nous avons décidé d’adresser les exigences de performances très tôt dans le cycle projet avec un objectif majeur :  être capable d’évaluer le niveau de performance de façon automatique et factuelle à chaque nouvelle livraison.

La maîtrise de la performance applicative devient un challenge de plus en plus complexe, historiquement c’était toujours de la responsabilité des équipes d’exploitation « si ça ne va pas vite rajoutez donc des serveurs et des gros tuyaux ! ».

Aujourd’hui, la démarche est toute autre, les responsables digitaux, les métiers, les directions commerciales doivent être autant impliqués que les équipes IT car ce sont eux qui définissent les exigences et qui sont ensuite au contact des clients « internautes ».

C’est dans cet esprit-là que nous avons développé notre solution de supervision des performances appYuser, d’abord parce que nous sommes des experts de l’intégration continue et ensuite parce que nous avons compris très tôt que pour permettre à toutes ces populations très hétérogènes qui gravitent autour d’un service web, qu’il était essentiel de leur fournir des indicateurs simples pour prendre les bonnes décisions.

Il existe différentes solutions pour mesurer la performance des applications, les solutions de supervision dites actives (ce sont les solutions qui vont simuler un utilisateur qui se connecte à vos services) qui permettent de mesurer la disponibilité des services, des matériels mais qui ne permettent pas de valider tous les contextes d’usage de nos internautes et en aucun cas de mesurer la satisfaction de l’utilisateur. N’est-ce pas ça l’essentiel et l’objectif initial : la satisfaction de l’utilisateur ?

Nous avons donc développé notre solution sur la base d’une supervision passive, c’est-à-dire que nous mesurons tous les accès quels que soient les contextes d’usage, et nous sommes en mesure d’évaluer le ressenti utilisateur et son niveau de satisfaction.

Pour enfin valider automatiquement chaque nouvelle livraison en fonction du ressenti utilisateur, et valoriser les évolutions applicatives en fonction de ce qu’elles apportent réellement à l’utilisateur final.

En conclusion

Les solutions de supervision traditionnelles des équipements ne suffisent plus dans ces démarches DevOps, ces solutions sont principalement basées sur la disponibilité des matériels, ce qui est insuffisant.
Il est nécessaire de corréler les contextes d’usage de l’utilisateur (smartphone, tablette, navigateurs, régions…) avec les causes réelles du problème, les performances techniques des services sont de plus en plus souvent liées aux contextes d’usage de l’internaute. Des indicateurs de satisfaction utilisateur permettront de s’intégrer naturellement dans une démarche DevOps ou d’intégration continue car il sera très simple de réagir en cas de défauts et de piloter les évolutions et corrections par la valeur qu’elles apportent réellement à l’utilisateur final !