DevOps

Avant de parler des spécificités du DevOps, missions etc. Il convient de revenir à la base même du terme, qui implique beaucoup de choses. Au contraire de certains développeurs, spécialisés par langage, le DevOps est plutôt un mouvement intégrant des processus de production. Quant au nom lui-même, il est la réunion des termes “développeurs” et “opérationnels”.

Découvrez les missions, formations et salaires du DevOps au sein de cette fiche métier.

Le concept

En quelques mots, la mission du DevOps est d’accélérer le “Time to Market”. Cela implique donc de travailler en agilité via les méthodes agiles SCRUM ou KANBAN. On expliquait précédemment que le terme DevOps était inspiré des termes “développeurs” et “opérateurs” mais pourquoi ?

Concrètement, le DevOps est une collaboration entre ces 2 équipes qui avant, travaillaient chacune de leur côté. Elles forment désormais une seule et même équipe capable de prendre en charge les tâches qui initialement, ne les concernaient pas. En gros, il y a mélange : les Ops sont maintenant familiarisés avec le développement (code applicatif, git). Tandis que les Devs peuvent gérer des tâches opérationnelles. 

Partage, culture, automatisation… sont donc les maîtres-mots du DevOps.

Les missions du DevOps

Alors qu’avant, chacun travaillait dans son coin, sur ses propres missions, aujourd’hui les pratiques évoluent.

Il existe plusieurs façons de travailler. Les 2 collaborateurs Dev et Ops, peuvent interagir et prendre en charges les missions de l’autre. Ou alors un seul collaborateur DevOps, gère les 2 aspects. Sinon par équipe projet, pouvant par la suite, voir des profils DevOps émerger.

Finalement, le DevOps étant plus un mouvement qu’un métier, les missions consistent en l’accompagnement et la transformation des équipes vers l’intégration continue.

La première phase (premières étapes jusqu’à la construction du package) est généralement celle du développeur. Tandis que le reste concerne plutôt l’opérateur :

  • Planification du code,  sa structure, organisation (en fonction du besoin),
  • Ecriture du code,
  • Réalisation de tests, détection des failles, risques et exécution,
  • Construction d’un package applicatif : obtention d’un bundle de code exécutable, optimisé pour lancer l’application,
  • Dépôt du package sur un repository manager (gestion des différentes versions du code),
  • Déploiement de l’application, dépôt du package sur les cibles,
  • Celle-ci n’étant pas forcément configurée pour l’environnement, il faut déployer les configurations pour qu’elle puisse fonctionner sur l’environnement où elle a été déployée (phase de configuration).

Mais les missions du DevOps peuvent également être : 

  • D’automatiser le cycle de vie d’une application et l’installation “Infrastructure as a code”,
  • De concevoir puis de mettre en oeuvre des architectures systèmes,
  • De superviser les services et infrastructures.

Cependant, certains concepts comme l’Intégration Continue (Continuous Integration) et la Distribution et/ou Déploiement continu (Continuous Delivery) sont importants à prendre en compte. Ils impliquent des dynamiques et pratiques indispensables à un expert DevOps.

Concepts de CI/CD

L’Intégration continue de CI/CD regroupe des processus visant à publier le code régulièrement et à l’améliorer (via divers tests) sur la branche principale du projet. Tout cela pour éviter des problèmes de compatibilité entre différentes parties, en temps réel. Cette mesure permanente permet de ne pas tout vérifier en un seul bloc à la fin et d’éviter de travailler sur un trop grand nombre d’éléments à la fois.. Ces tâches sont lancées de façon automatisée.

Le CD désigne 2 concepts relativement proches qui concernent l’automatisation des étapes plus avancées du pipeline. En fonction du degré d’automatisation, ces concepts peuvent être dissociés ou non.

La Distribution continue

La Distribution continue simplifie le déploiement de nouveau code. On parle de Distribution continue quand un développeur apporte des modifications à une application, qui sont testées et téléchargées automatiquement dans un référentiel.
Ces modifications sont déployées directement dans l’environnement de production actif. Cela permet de corriger les problèmes potentiels entre les équipes métier et développement. 

Le Déploiement continu

Le Déploiement continu repose sur la Distribution continue ainsi que l’automatisation de l’étape suivante du pipeline. Il correspond au transfert automatique des dites modifications, du référentiel à l’environnement de production. Grâce à cela, les équipes d’exploitation en surcharge de travail à cause des tâches manuelles sont soulagées. 

Pour résumer

Concrètement, le terme “CI/CD” désigne donc différentes pratiques au nombre de 2 ou 3. Soit elles désignent les pratiques liées à l’intégration continue et distribution continue, soit elles intègrent également celle du déploiement continu. 

Mais le plus important est de retenir que cette approche consiste en l’introduction d’automatisation et de surveillance en continu dans le développement. Généralement ce processus se présente sous forme de pipeline.

Le CD permet donc la mise à disposition de l’appli à tout moment de la production. À la suite des tests fonctionnels et de leur validation sur l’environnement test, il faut déployer l’application. Tout cela sur l’environnement final de production. 
Puis, si tout est valide, il faut la déployer comme elle l’a été sur l’environnement test. Avant de partir en production, il faut une validation humaine lors de la Distribution continue, au contraire du Déploiement continue (système de rollback automatique).

Tout cela est au maximum automatisé.

En bref, le DevOps fait évoluer les architectures systèmes. Il gère la mise en place de services et outils à destination des développeurs. Il est en quelque sorte un chef d’orchestre. D’ailleurs, ces outils étant relativement nouveaux, il y a de nombreux besoins concernant les profils spécialisés en industrialisation du code applicatif.

Ses outils

Jenkins – Intégration continue

  • Intégration & déploiement d’applications en continu.

Cloud – AWS Amazon Web Services, Azure, GCP (Google, Cloud platform), OVH

Ansible – Gestion des configurations

  • Référencement des applications et ressources informatiques de l’entreprise,
  • Optimisation des mises en prod de code.

Terraform – Infrastructure as a code

  • Au sein d’une infrastructure IT, automatisation des tâches reproductives,
  • Provisionnement, déploiements, configuration.

GitLab – Développement et CI/CD 

  • Gestion des dépôts de code et versions d’appli,
  • Pilotage des mises en prod.

Docker – Conteneurisation

  • Ce terme à lui seul fait référence à un projet, des outils et à une entreprise. En quelques mots, la technologie en elle-même sert à utiliser ou créer des conteneurs Linux. Elle permet entre autres de traiter les conteneurs comme des machines virtuelles légères et modulaires. Il devient possible de les créer, déployer, copier etc. d’un environnement à un autre.

Kubernetes – Orchestration de conteneur

  • Le projet Kubernetes est une « plate-forme » rendu open-source pas Google en 2014. Elle sert à la bonne gestion des charges de travail (workloads) et des services conteneurisés. Large écosystème qui appuie l’écriture de configuration déclarative, l’automatisation des déploiements ainsi que la montée en charge et la mise en oeuvre de conteneurs d’application sur des clusters de serveurs.

Grafana, Kibana et Prometheus – Monitoring 

  • Obtention d’enseignements des développements et architectures déployés.

Formation

Il n’existe pas de formation d’expert DevOps à proprement parlé. Généralement il faut suivre une formation universitaire ou en école, dans l’informatique :  SI et réseaux, télécommunications, systèmes…
Si vous le pouvez, allez jusqu’au bout pour être diplômé d’un Bac +5.

Ensuite ce sera votre expérience qui vous mènera à devenir un expert DevOps.

N’oublions pas que ce sont les processus, les façons de travailler, de collaborer et gérer les projets qui vous font évoluer en tant qu’expert DevOps.

Salaire du DevOps

Pour ce qui est de la rémunération du DevOps, il faut savoir que ce type de profil s’est vu très popularisé ces dernières années. Le nombre d’opportunités a donc considérablement augmenté en peu de temps.

Avec quelques années d’expérience, le salaire DevOps peut varier de 40k€ à 60k€, et pourra dépasser les 65k€ en tant que senior.