Glenn O'Donnell et Kurt Bittner, des analystes de Forrester Research, ont publié un rapport décrivant comment les développeurs et l'exploitation se voient les uns les autres lorsqu'ils travaillent chacun dans leur coin et proposent sept bonnes habitudes de collaboration entre eux. "Les sept habitudes des DevOps efficaces" sont :
- Faire communiquer les deux parties entre elles
- Appliquer partout une approche "outside-in", c'est à dire en premier lieu centrée sur les besoins métier
- Automatiser le build, les tests et le processus de release afin de limiter les erreurs
- Simplifier et standardiser les environnements de développement et de production
- Inculquer une culture de l'ingénierie des systèmes à travers le développement et l'exploitation
- Mettre en place des retours d'expérience
- Mettre les développeurs en première ligne du support
Ils entrent en détail dans chacune de ces habitudes :
Faire communiquer les deux parties entre elles
Parler face à face est un bon moyen d'apprendre sur les défis et difficultés quotidiennes des uns et des autres. Cette connaissance permet aux développeurs et aux exploitants de recentrer les actions des autres dans leur contexte et les aide à mieux se comprendre. Bien que cela semble assez évident, vous ne pouvez pas démarrer avec DevOps sans cette condition préalable.
Adopter une approche "outside-in"
Il est plutôt commun dans les technologies de l'information de regarder ce qui est disponible et d'essayer de faire le maximum avec. DevOps nécessite une approche différente : les développeurs et les exploitants doivent comprendre les besoins métier en premier. En s'appuyant là-dessus, ils doivent définir ce qui est nécessaire pour les satisfaire. Cette approche "outside-in" peut conduire à un changement fondamental dans la manière dont les développeurs et les exploitants priorisent leur travail.
Automatiser le build, les tests et le processus de livraison afin de limiter les erreurs
Il est important que les développeurs et les exploitants travaillent main dans la main pour automatiser les processus de livraison. Les domaines tels que la montée en charge sont dans le domaine d'expertise des exploitants alors que les tests fonctionnels sont dans le domaine des développeurs. En plus des tests automatiques, il doit y avoir des outils pour automatiser l'infrastructure.
Simplifier et standardiser les environnements de développement et de production
Le point important ici est que vous devez simplifier au maximum les nouveaux systèmes, mais le faire de manière raisonnable avec vos systèmes existants. James Governor a récemment réuni un panel d'experts DevOps où il a demandé s'il est nécessaire de simplifier votre infrastructure afin d'être en mesure d'introduire DevOps.
Inculquer une culture de l'ingénierie des systèmes à travers le développement et l'exploitation
Casser les logiciels monolithiques en des modules plus simples à manipuler, peu importe que vous automatisiez votre infrastructure ou écriviez du code.
Mettre en place des retours d'expérience
Pour s'assurer que votre application s'exécute correctement, les développeurs ont besoin de retours d'expérience sur l'état des applications en production. Et les exploitants ont besoin d'information sur les environnements d'exécution le plus tôt possible dans le processus.
Mettre les développeurs en première ligne du support
Même si la fonction de support éloigne le développeur du travail le plus créatif, il est important qu'ils corrigent les problèmes posés par leur code en production. Non seulement ils sont ceux qui peuvent les corriger le plus rapidement, mais en plus ils en apprennent beaucoup sur la façon dont se comportent leurs applications en production.