Développeur, ta prod tu respecteras : Les secrets d'une mise en production réussie | Épisode #3

Précédemment, dans l’aventure du réseau social Hamstergram : l'application dédiée aux hamsters du monde entier et développée par notre trio de rongeurs d’élite est désormais mise en production ! 

Conçue dans les règles de l’art et optimisée à la perfection pour garantir un fonctionnement sans accroc, l’application réunit toutes les bonnes pratiques de développement, de prévention et d’entretien ! Mais nos trois experts ne comptent pas se reposer sur leurs lauriers. Ils débordent d’ingéniosité pour perfectionner leur mise en production et guider leur application vers son sommet.

Vous avez manqué les premiers épisodes ? Retrouvez les péripéties de notre équipe hors-pair et découvrez les secrets d'un développement irréprochable : Episode 1, Episode 2.

Une équipe d’experts pour une mise en production réussie

equipe-mise-en-production

Épisode 3 : Cinq astuces pour perfectionner son projet après la mise en production

Élaborer une stratégie de log

En l’absence de logs, notre équipe projet avance à l’aveuglette... lorsqu'une erreur apparaît au cours de la production. Pour se retourner, elle élabore dès lors une stratégie de log (journalisation).

Cheriff se demande où les placer et à quel niveau les insérer. Caroline et Jean-Cloud proposent de les placer manuellement pour indiquer avec précision les informations métier pertinentes. Ils envisagent d’utiliser de l'AOP (Aspect-Oriented Programming) afin d’instaurer une première couche de logs techniques. Une bonne pratique consiste à relier tous les logs relatifs à une même action par un identifiant de corrélation.

Les logs liés à l’application sont par ailleurs très souvent négligés. Ils demeurent pourtant essentiels pour comprendre les actions réalisées par l'utilisateur. Pour les récupérer, nos experts imaginent un système doté d’un service côté front qui enverrait les logs via un point de terminaison (endpoint) jusqu’au serveur, quiet les agrègerait.

Surveiller sa production à partir de métriques


L’utilisation de métriques offre à l’équipe, notamment à Jean-Cloud, une surveillance efficace de sa production. Ces métriques peuvent être axées sur les aspects métier pour comprendre des aspects spécifiques de l'utilisation de l'application, ainsi que sur des aspects techniques, tels que les temps de réponse des points d'accès (endpoints), par exemple. La dépendance de notre équipe sur Spring-actuator donne accès à un premier niveau de surveillance de l'application.

Nos experts disposent d’autres outils de monitoring, incluant des APM (Application Performance Manager) :

 

·        Glowroot

·        Skywalking

·        Blackfire

·        NewRelic

·        Prometheus

·        Etc.


Adopter l’observabilité

Une fois les métriques en place, l’équipe s’interroge quant à leur utilisation, celle des logs, et aux personnes qui en bénéficieront. Ils adoptent ainsi une approche appelée « observabilité », qui consiste à connaître l'état du système à tout moment, simplement grâce à la télémétrie.

Apporter des changements sans trop de mise en production

Pour aller encore plus loin, nos experts s’attèlent aux techniques permettant d’apporter des changements, sans déployer massivement en production. Il existe plusieurs solutions telles que le "Feature Flipping" qui propose d’activer et de désactiver des fonctionnalités en production, sans nécessairement les déployer. Ainsi, l’équipe peut tester une fonctionnalité de manière temporaire ou uniquement sur un groupe d'utilisateurs restreint. Le versionning d'API offre la possibilité d'avoir plusieurs itérations de l'application en production, bien que cette pratique puisse être complexe lorsqu'une base de données relationnelle est utilisée.

Ajouter des tests

Enfin, il est toujours possible d'ajouter davantage de tests, tels que des tests de sécurité (Jean-Cloud apprécie la sécurité), des tests de performance, de l'ingénierie du chaos, du "monkey testing" ou d'autres.


En conclusion de cette saga palpitante, préserver sa production s’opère à chaque phase d’un projet et implique l’engagement de chaque membre de l’équipe. À long terme, respecter un ensemble de bonnes pratiques simplifie le quotidien. L’amélioration est possible à tout moment et constitue un travail continu.

Longue vie à Hamstergram !