Le métier de DevOps est de plus en plus demandé. Véritable facilitateur entre les développeurs et les administrateurs systèmes, ce “couteau suisse” est aujourd’hui au coeur des nouveaux métiers dans le digital.

Souhail Khalfallah, ingénieur DevOps à GoMyCode explique en quoi consiste son métier et quelles sont les compétences clés à avoir pour l’exercer.

GoMyCode: Qu’est-ce qu’un DevOps?

Souhail Khalfallah: Il faut d’abord savoir que le terme DevOps est un mix entre deux notions: Dev, c’est pour “Développeur” et Ops pour “Opérations”.

Il faut comprendre qu’avant il y avait d’un côté les Développeurs qui créaient les applications en local, y intégraient le système d’exploitation, le framework, les librairies etc…Une application n’est pas publiée de façon anarchique. Il faut initialement tester sa qualité, son code, sa sécurité…et elle doit ensuite être continuellement testée. Avant cela se faisait manuellement par l’équipe de Développeurs.

Une fois tout cela fait, elle livre le code à l’équipe “Opérations” pour l’exploitation.

C’était donc deux équipes séparées et il existait souvent des problèmes entre eux de compatibilité puisque l’application passe d’un environnement à un autre, et chacun refusait de prendre la responsabilité en cas de problème.

Il arrivait souvent que l’équipe chargée du développement créé un code sans être au courant des différents obstacles que pouvait rencontrer l’équipe d’administrateurs système par exemple.

Le DevOps est donc celui qui fusionne les deux tâches. Il s’appuie sur l’automatisation des tâches d’exploitation et une forme de standardisation des environnements grâce aux conteneurs.

Conteneur: On utilise un conteneur pour obtenir un espace d’exécution dédié à une application logicielle. Il permet de tester des applications en développement dans un environnement avant le déploiement. Il va faciliter le ciblage de dysfonctionnement potentiels, de failles de sécurité ou de problèmes de stabilité.

Quels étaient les objectifs derrière la création de ce poste?

L’idée pour les entreprises est de rendre plus rapide le process de développement parce que ces problèmes représentaient une perte de temps et donc d’argent. Cela permet une plus grande agilité, efficacité et rapidité pour l’entreprise et le minimum possible d’intervention humaine grâce à l’automatisation.

Aujourd’hui, le développeur écrit le code. Sa tâche s’arrête là. Tout le reste, à savoir, les tests, le lancement de l’application…devient automatisé grâce à des outils et des langages utilisés par ces mêmes développeurs.

Le DevOps répond à ce qu’on appelle une chaine d’outils: planifier, créer, vérifier, empaqueter, livrer, configurer, surveiller

De plus, aujourd’hui grâce au DevOps, les problèmes sont aplanis à la base et le risque de tensions entre les développeurs et les administrateurs systèmes disparait.

Quels logiciels utilise un DevOps?

Il me faudrait des heures pour vous faire un listing non-exhaustif.

En réalité, face au problème initial, des développeurs ont créé Docker, un logiciel en Open Source permettant de lancer des applications dans des conteneurs logiciels, et ce que quelque soit l’environnement. Il est venu résoudre un des premiers problèmes à savoir celui de transposer une application d’un environnement à un autre.

Mais de façon générale, un DevOps doit savoir maîtriser des outils de gestion de configuration comme Puppet, un référentiel de stockage comme GitHub, des outils d’indexation comme Splunk, des outils de surveillance système et réseau comme Nagios et bien sûr les langages de script comme Python. C’est donc une gamme de connaissances et de compétences larges qu’il doit savoir maîtriser.

Quelles sont les qualités que doit avoir un DevOps?

Il doit être autonome. Un DevOps doit savoir faire un grand travail de documentation, parce que les outils changent et évoluent rapidement notamment avec l’Open Source. Il doit donc être curieux et aimer apprendre tous les jours.

Quel background faut-il avoir pour devenir DevOps?

Il faut maîtriser parfaitement l’administration système et un peu le développement. Il n’est pas nécessaire de maîtriser tous les langages de développement. Il faut juste comprendre la logique à travers laquelle fonctionne un algorithme. C’est le plus important.