DevOps : les 6 concepts indispensables pour débloquer le dialogue avec vos équipes IT

Vous entendez parler de « pipeline », « CI/CD », « k8s », « observabilité » et autres joyeusetés ? Pas de doute, vous êtes bien dans le monde du DevOps – ce mouvement né pour rapprocher le développement (Dev) des opérations (Ops). L’objectif : livrer des applications plus rapidement, plus souvent, en automatisant tout ce qui peut l’être.

Pour les professionnels de l’IT, techniques ou non, il est essentiel de comprendre comment tout cela s’articule, quels sont les problèmes résolus par DevOps et les solutions apportées par chaque catégorie d’outils. Dans cet article, Sparks vous propose des exemples concrets et des analogies pour faciliter la compréhension. Pas besoin d’avaler des kilomètres de documentation : tout tient en six grandes briques. Suivez le guide, ou plutôt le chef cuistot, car aujourd’hui on vous concocte de délicieuses applications !

1. Gestion de configuration : écrire la recette

Imaginez que vous ouvrez un restaurant. Gastronomique, bistrot de pays, fast-food ou baraque à frites, choisissez selon vos envies du moment. Dans tous les cas, vous allez avoir besoin de recettes, pour que les plats soient réussis à chaque fois, avec les mêmes ingrédients, cuits à la même température, pendant la même durée, etc. Ces recettes seront ensuite distribuées à tous vos chefs, afin de vous assurer que la qualité de vos plats soit constante.

Maintenant, disons que ces plats ce sont vos applications, et que votre restaurant est en fait un Système d’Information. Les recettes sont écrites grâce à des outils comme Ansible, Chef, Puppet et Salt, qui documentent précisément chaque étape de la configuration d’un serveur (paquets installés, fichiers de config, services actifs…).

Une fois la recette créée, elle peut être appliquée de manière identique à autant de serveurs que nécessaire. Et vos applications tourneront sans accroc. Que vous vouliez en installer 2 ou 200, c’est pareil. Grâce à la gestion des configuration, la création de nouveaux plats est très facile et très rapide !

ProblèmeConfigurer manuellement les serveurs mène tôt ou tard à des erreurs et des écarts.
SolutionDécrire la configuration idéale dans des scripts versionnés et l’appliquer automatiquement sur chaque machine.
Outils pharesAnsible, Chef, Puppet, Salt.

2. Conteneurs : livrer directement le plat fini

Créer une recette, c’est pratique. Mais pour être encore plus certain que le plat sera satisfaisant, pourquoi ne pas le livrer directement préparé ? C’est l’idée derrière des outils comme Docker ou Podman.

On met dans un conteneur, non seulement l’application, mais tout son environnement : librairies, dépendances et système d’exploitation. L’environnement devient alors portable et reproductible. Comme si on emballait vos plats, pour proposer un service à emporter !

Ainsi, que ce soit sur le laptop du développeur ou sur un serveur de production, le conteneur (et l’application) se comporte exactement pareil. Fini le problème classique « ça marche sur ma machine », grâce à la conteneurisation, « ça marche partout ! ».

ProblèmeLe code d’une application, testé sur l’ordinateur du développeur, peut rencontrer des bugs en production à cause de différences dans l’OS, les dépendances ou les versions des librairies.
SolutionUtiliser des conteneurs pour regrouper à la fois l’application et son environnement.
Outils pharesDocker, Podman, LXC.

3. CI/CD : cuisiner à la chaîne

Maintenant, on peut se demander : comment produire efficacement tous ces plats préparés (nos applications, empaquetées dans des conteneurs) ? La réponse s’appelle la CI/CD, pour Continuous Integration (intégration continue) et Continuous Deployment (déploiement continu). En industrialisant la préparation des plats, comme sur une chaîne de production : un commis lave les légumes, un autre découpe, un autre s’occupe de la cuisson, et le dernier dresse l’assiette.

En IT, les chaînes CI/CD sont créées grâce à des outils comme GitLab CI, Jenkins, GitHub Actions ou, plus récemment, ArgoCD.

Chaque fois qu’un développeur souhaite faire une modification sur une application existante, ou en créer une nouvelle, un pipeline s’enclenche automatiquement :

  • Compilation du code
  • Tests
  • Assemblage du conteneur
  • Déploiement sur les serveurs de production

Tu s’occupes de rien, la CI/CD s’occupe de tout !

ProblèmeTransformer le code source écrit par un développeur en une application prête à être déployée prend du temps, c’est source d’erreurs, et les plats refroidissent !
SolutionÀ chaque commit (= modification par un développeur), un processus de transformation est déclenché automatiquement pour construire, tester et empaqueter l’application, sans intervention humaine.
Outils pharesGitLab CI/CD, Jenkins, GitHub Actions, Argo CD.

4. Orchestration : placer les clients dans la salle

Dans votre beau restaurant, si les personnes qui viennent se régaler choisissent eux-mêmes leur table, cela va vite devenir compliqué à gérer. Il vous faut donc une personne à l’accueil, chargée de placer chaque convive efficacement en fonction de ses besoins (terrasse, banquette, espace enfants, etc.).

C’est là qu’entrent en jeu les orchestrateurs : Kubernetes, Docker Swarm, ou Nomad d’HashiCorp.

Aujourd’hui, les applications sont souvent découpées en petits bouts, les fameux microservices. Cela signifie qu’on prépare séparément la viande, la purée, les asperges, les petits pois, la sauce… une grande application peut être composée de centaines de microservices. Les orchestrateurs sont alors très utiles. Ils connaissent les besoins de chaque mini-application (CPU, RAM, disque rapide, GPU…), et décident automatiquement où les placer parmi tous les serveurs disponibles.

Un orchestrateur s’adapte aisément en cas de panne ou d’ajout de nouveaux serveurs. L’infrastructure est ainsi optimisée et auto-ajustée en permanence.

ProblèmeLa gestion du placement et de l’exécution de nombreuses applications sur un grand nombre de serveurs devient de plus en plus complexe au fur et à mesure que le projet grandit.
SolutionLes orchestrateurs prennent en compte les besoins en ressources de chaque application et trouvent l’emplacement idéal selon les serveurs disponibles. Ils gèrent cela en continu, déplaçant automatiquement les applications si des serveurs sont ajoutés ou retirés.
Outils pharesKubenetes (la référence), Docker Swarm, HashiCorp Nomad.

5. Cloud : embaucher des extras en période d’affluence

On ne l’a pas précisé, mais votre restaurant est sur la Côte d’Azur. Vous êtes donc dépendants des saisons. Des saisons et du jour de la semaine : calme en semaine, bondé le week-end. Au lieu d’avoir 10 personnes toute la semaine pour rien, vous employez des extras uniquement lorsque c’est nécessaire.

Le Cloud permet la même chose : avec AWS, Google Cloud, Azure, Scaleway ou OVHCloud, il est possible d’adapter dynamiquement votre infrastructure au nombre d’utilisateurs réels. Plus besoin d’acheter des serveurs pour le pic d’activité annuel (le week-end du 15 août) :

  • Journée calme = peu de serveurs
  • Aux heures de pointe = plein de serveurs !

On économise ainsi en hébergement, tout en gagnant en flexibilité.

ProblèmeLes infrastructures auto-hébergées, c’est-à-dire sur site (on dit aussi on-premise), doivent être dimensionnées pour gérer les pics de trafic les plus élevés, et ce toute l’année. Du matériel est donc inutilisé pendant les jours creux.
SolutionLouer des environnements, ressources ou espaces de stockage à la minute chez un fournisseur Cloud. On agrandit ou rétrécit notre brigade en temps réel.
Outils pharesAWS, Microsoft Azure, Google Cloud.

6. Monitoring : inspecter la cuisine

Finalement, pour garantir que tout fonctionne bien, que tout le monde mange à sa faim, il faut surveiller. Pensez à un critique culinaire qui vérifierait la température du four, la fraîcheur des ingrédients ou l’efficacité du service en salle.

En DevOps, c’est le rôle de l’observabilité (un mot un peu étrange pour dire monitoring, ou surveillance), avec des outils comme Prometheus et Grafana, Elastic Stack ou Datadog. Grâce à eux, on surveille :

  • La santé des applications (temps de réponse, nombre de connexions…)
  • Les ressources système (CPU, RAM, disque, réseau)

Et lorsqu’un problème est détecté, on intervient rapidement.

ProblèmeDans une grande infrastructure, complexe et automatisée, il devient difficile de vérifier manuellement que tout fonctionne correctement.
SolutionLes outils d’observabilité ou de monitoring permettent de surveiller constamment différents indicateurs, comme les métriques applicatives.
Outils pharesPrometheus + Grafana, Elastic Stack (Kibana), Datadog.

CONCLUSION – DevOps : un mouvement et des pratiques et des outils et un métier

Avec ces 6 grands concepts – gestion de configuration, conteneurs, CI/CD, orchestration, cloud et observabilité – vous pouvez construire une infrastructure IT solide, évolutive et fiable. Ou un restaurant étoilé, au choix ! Vous l’aurez compris, le maître mot est « automatisation« .

Et s’il faut retenir une chose, c’est que DevOps ne se résume pas à l’utilisation d’un ou plusieurs outils (même si c’est l’angle que nous avons choisi pour expliquer la démarche ici) : c’est d’abord une culture de collaboration à laquelle des pratiques, une toolchain et éventuellement un métier se greffent pour accélérer la livraison de valeur.

  • Culture : “DevOps, c’est décider que développeurs et ops sont co-responsables de la qualité en production”.
  • Pratiques : “Voilà comment on s’y prend” (tests automatiques, déploiements continus, infra as code…)
  • Outils : “Avec quoi on le fait” (GitLab CI/CD, Docker, Kubernetes, etc)
  • Métier : “Qui orchestre et outille ce mouvement dans l’entreprise” (DevOps/SRE/Platform engineers)

Chez Sparks, nous formons des équipes techniques déjà avancées à franchir le cap de la standardisation des pratiques et d’industrialisation. Maîtriser un outil c’est bien, orchestrer toute la chaîne et c’est la régalade !

Contactez-nous, on vous concocte un plan de formation aux petits oignons 😋🧅