Apprendre du DevOps en tant que développeur : back to basics !
Vous êtes un développeur et avez l’envie de faire du DevOps ? Comment bien s’y prendre et entamer cette démarche ? Je vous propose de suivre quelques conseils pratiques !
Les b.a-ba du DevOps
Les « Dev », c’est vous, ainsi que toutes les personnes de votre équipe de développement, tous rôles confondus. Les « Ops » sont toutes les personnes qui utiliseraient l’application que vous êtes en train de développer. Nous pouvons citer :
- Les équipes qui hébergent votre application en production : elles s’occupent de la mise en place de son infrastructure, de l’installation des nouvelles versions, les configurations, le réseaux…
- Les équipes de support qui, une fois que votre application tourne en production, sont à l’écoute des incidents qui pourrait subvenir, et sont toujours en état d’alerte pour rétablir le service le cas échéant ;
- Dans certains cas, des webmasters ou utilisateurs en backoffice qui administrent votre système ;
- Les DBA (database administrators) qui gèrent la fameuse base de données ;
- Et bien sûr, n’oublions pas la raison d’être de l’application elle-même : les utilisateurs finaux qui utilisent au quotidien les fonctionnalités que vous développez.
Les relations entre Dev et Ops
Ce qui est capital de saisir sont les liens qui existent entre les Devs et les Ops. De votre point de vue, il faudra être conscient que votre quotidien de développeur a un impact sur celui des Ops : en mettant en place des architectures, des conceptions, ou juste en écrivant du code… vous êtes amené à trancher entre plusieurs options qui semblent équivalentes et en même temps changera considérablement la façon dont les Ops aborderont l’application. Ainsi, mettre en place une procédure d’installation complexe incluant trop d’étapes manuelles augmente le risque d’erreurs pendant l’installation des mises à jour, ce qui augmente le temps de coupure des services pendant ces opérations. Aussi, les événements que vous loggez dans votre application et les informations que vous mettez dans les messages de logs détermineront l’efficacité des équipes de support à comprendre un problème sur la production, ainsi que leur capacité à fournir tout de suite des solutions ou couronnements. Pour une application e-commerce par exemple, vous placerez le bouton "Confirmer la commande" dans l’interface graphique. Ce bouton déterminera le nombre de clics, impactant ainsi les ventes.
Faire le premier pas vers les Ops
Maintenant que vous avez bien compris qui sont ces Ops et comment vos travaux respectifs sont liés, que devez-vous maintenant faire concrètement pour vous familiariser avec eux ? Pour commencer :
- Cherchez et apprenez à connaître les Ops de l’application que vous êtes en train de développer : quel est leur nom ? Où sont-ils situés ?
- Rapprochez-vous de leur métier pour comprendre leurs activités au quotidien et les outils qu’ils utilisent. Cette approche conditionnera le code que vous allez écrire.
- Point le plus important : demandez-leur quels sont les points de blocage qu’ils rencontrent spécifiquement avec votre application. Voyez ensuite ensemble les solutions que vous pouvez apporter et comment vous pouvez vous-même aider.
- Impliquez systématiquement les Ops dans vos prises de décisions.
- Créez une boucle d’amélioration continue en organisant des échanges réguliers avec les Ops pendant lesquels vous pouvez les sonder sur d’autres problèmes qu’ils auront pu rencontrer entre temps. Cette boucle ne pourra qu’améliorer le quotidien des Ops, en plus de donner encore plus de sens au vôtre.
Vous vous attendiez sûrement à ce que l’article évoque Docker, Kubernetes, Cloud, CI/CD, Puppet… ou tout autre outil lié au buzz généré par DevOps. Ce que nous venons de parcourir ensemble est l’essence même de DevOps et les bases auxquelles doivent revenir toute équipe en quête d’acquérir ses vertus. En instaurant la boucle d’amélioration continue visant à faire collaborer les Dev et les Ops, vous finirez probablement par utiliser tous ces outils à la mode, mais à la grande différence que maintenant vous savez exactement pourquoi vous les utilisez, et quel est exactement le problème à résoudre à chaque fois ! Parfois, ce n’est peut-être pas à vous seul que revient l’instauration de ce changement, mais rien ne vous empêchera de prendre l’initiative de pousser votre équipe dans ce sens, ainsi que de créer des liens dans le seul but d’améliorer tout un dispositif. Pour info, vous n’êtes pas le seul à faire le premier pas… Les Ops de leur côté ont également beaucoup à apprendre de vous !