J’ai l’impression qu’il y a un malentendu dans la qualification du « dev » qui est donc très générique. Il peut y avoir des spécialisations dans le dev : dev web, dev php, dev symphonie, dev système, dev java, dev python, dev cobol, dev assembleur, dev embarqué …
Pour définition, un « développeur » c’est un nom de métier qui est venu remplacer le boulot de « analyste programmeur ». Un développeur, c’est donc un gars qui va comprendre une problématique et savoir la résoudre à travers un process programmé/automatisé.
L’« ops » va faire en sorte que les environnements techniques fonctionnent (dev, intégration, preprod, prod, …). Il va mettre des logiciels dans des containers, mettre en place de la supervision, automatiser des déploiements de VM, …
Partant de ces définitions, un « ops » peut très bien être aussi un développeur, je dirais même que c’est indispensable. Un « ops » va prendre une problématique du genre « Je veux surveiller l’état d’un composant », et il saura coder un soft ou un plugin pour répondre à son besoin. Aujourd’hui, on trouve surtout du développement Python pour piloter divers composants cloud. C’est du développement.
Je pense que selon la catégorie de « dev » dont on parle (et c’est cette info que je ne trouve pas), l’ « Ops » ne sera pas en mesure de remplir la mission. J’aurai du mal à imaginer (bien que ce ne soit pas impossible) un même profil faire un développement métier en java/tomcat, puis passer 1H sur le packaging/déploiement et finalement répondre à des alertes de monitoring sur l’état du système.
A priori ce qu’il manque dans la plupart des post et le podcast c’est la tâche précise du « dev ». Je suppose que les « pro ops+dev» ont en tête du développement lié à l’Ops. Les « anti ops+dev » font probablement allusion à du développement d’application métier.
Mon opinion est :
- Une même personne peut savoir fair du « dev » et de l’« ops ».
- Un « ops » peut (doit) être un « dev »
- Un « dev » n’est pas forcément un « ops » (mais devrait au moins avoir des notions)
- Selon le type de développement on peut ou non faire en même temps « dev » et « ops »
Un « développeur système » va développer des applications proches du système, qui vont bien exploiter les appels système et fonctionner sur les OS supportés. Parfois, selon les contraintes, il va faire en sorte que le logiciel soit facilement exploitable (log, debug, …), parfois qu’il soit performant, ou économe en ressources, … Les gens qui développent Docker ou Kubernetes sont des développeur système, cela ne signifie rien sur leur qualité d’ « Ops ».
Généralement ces deux profils travaillent de concert. L’« ops » va remonter une liste de features au « dev système » qui lui serait très pratiques pour effectuer son boulot. Le « dev système » à pour tâche d’écouter les demande de l’ « ops » qui est son utilisateur principal.
Rapprocher deux cœurs de métier, et c’est vraiment une bonne chose de mettre un terme à la guerre « les dev ont livré de la merde » vs « c’est encore l’infra qui est pétée ». La question est « est ce que ce rapprochement passe par une seule personne qui connait tous les métiers et les pratiques en même temps » ?
J’ai l’impression que devops signifie plutôt une équipe multi-compétences qui travaillent ensemble. Cette équipe est composée d’ops qui ont de bonnes notions de dev, sans nécessairement être un bon développeur java/tomcat qui connait « Spring » ou « maven ». Cette équipe est également composée de dev qui ont de bonnes notions d’ops sans nécessairement savoir comment configurer la taille des buffers réseau de ton système ou connaitre strace.
+1