Vous avez entendu parler du DevOps sans savoir exactement ce que recouvre cet acronyme ?
Vous êtes au bon endroit pour en savoir un peu plus sur le sujet. Cet article vous propose un panorama du DevOps, de sa définition à ses applications concrètes. Notre objectif est qu’au terme de votre lecture, vous sachiez quels sont les enjeux de la démarche DevOps et que vous ayez une idée de la manière dont la mettre en place dans votre propre entreprise.
Définition du terme "DevOps"
Qu'est-ce que le DevOps ?
Le DevOps est une culture qui vise à favoriser une collaboration entre deux métiers complémentaires mais qui travaillaient séparément : le développeur logiciel (Dev) et l’administrateur en charge des infrastructures informatiques (Ops).
En effet, traditionnellement, l’équipe de développement crée et améliore des applications avec des contraintes de temps et de coût. Puis elle livre son code à l’équipe de production qui est alors chargée de le déployer en production en garantissant la stabilité de l’application avec une forte contrainte de qualité.
C’est là qu’apparaît le mur de confusion (“Wall of confusion”) entre les deux équipes : le code qui fonctionnait bien sur l’environnement du développeur pose problème en production. Et donc, à qui la faute ? La communication entre les équipes Dev et les équipes Ops se complique et cela se répercute sur la livraison de l’application. L’expérience n’est pas positive pour les équipes Dev et Ops, ni pour les équipes business ou les product owners, sans oublier, au bout de la chaîne, le client qui décidera si l’application lui convient ou pas.
C’est là qu’intervient le DevOps, une nouvelle approche qui permet de casser ce mur de confusion pour faire en sorte que les équipes travaillent ensemble avec tous les acteurs autour du projet. L’objectif commun est alors de satisfaire le client en lui livrant un produit de qualité, au faible coût et qui soit développé rapidement.
Ebook gratuit
Comme je l’ai expliqué dans une interview destinée à présenter notre département Cloud & DevOps Solutions, les logiciels deviennent de plus en plus complexes avec le temps, les équipes ont dû s’adapter et grossir pour répondre aux demandes utilisateurs, construisant un mur entre ces deux métiers. Les pratiques et outils englobés dans le DevOps permettent de détruire le mur pour ainsi être plus réactif au marché et répondre aux besoins des clients.
Ainsi, la culture DevOps introduit un nouveau paradigme qui consiste à décloisonner les métiers, les méthodes et les outils de travail dans le but de mieux répondre aux besoins des clients. Cela permet également de gagner du temps et donc d’améliorer le time-to-market.
Maintenant que la définition du DevOs est posée, voyons ce qui le constitue.
De quoi est composé le DevOps ?
Quels sont les composants clés de DevOps ? Le DevOps repose avant tout sur un ensemble de principes que l’on peut résumer à travers l’acronyme “CALMS” : Culture, Automation, Lean, Measurement, Sharing (culture, automatisation, sans superflu, mesure, partage).
- Culture : le DevOps est bien une culture, un état d’esprit avant toute chose. L’idée est de permettre une collaboration des équipes par une communication constante pour répondre aux enjeux actuels et aux besoins des clients qui se complexifient avec un time to market toujours plus rapide. Les ops et les devs doivent partager les outils mais aussi une estime réciproque et une confiance totale dans les échanges qu’ils peuvent avoir avec leurs interlocuteurs. Il est essentiel que toutes les équipes aient une même vision globale du système d’information. La communication entre tous est donc facilitée, puisque tout le monde sait tout ce qu’il se passe, chez les développeurs comme chez les administrateurs en charge des structures informatiques. De même, le « failed fast » est important : il faut savoir tester et remettre en cause rapidement la fonctionnalité d’un applicatif ;
- Automation : un maximum de tâches sont standardisées et automatisées dès que cela est possible afin de diminuer le temps de travail consacré aux tâches répétitives et ainsi de gagner en productivité et en efficacité ;
- Lean : les équipes sont invitées à identifier les tâches qui créent de la valeur durant le cycle et à éliminer les autres en les automatisant. Leur travail est donc de meilleure qualité tout en nécessitant moins de temps.
- Measurement : des mesures et des tests sont réalisés tout au long du processus pour ajuster en permanence et assurer la qualité du produit ;
- Sharing : les équipes partagent leurs retours, leurs compétences et connaissances en quête d’une transparence totale, d’une forte collaboration entre les différentes équipes. Les forces des uns et des autres sont unies et la complémentarité devient un maître-mot. Cette valeur du partage s’applique également à des éléments de la vie quotidienne : partager les problèmes, les savoirs, les retours d’expérience permet de faire émerger un sentiment d’entraide et d’empathie dans les équipes. Plus soudées, elles travaillent mieux ensemble. C’est d’ailleurs en partant de ce postulat que Qim info a lancé les DevOps First Friday qui permettent à nos collaborateurs d’échanger de manière conviviale et informelle.
Tout est bien clair ! Il est à présent temps de se demander comment fonctionne le DevOps.
Le fonctionnement du DevOps en détail
Quelles sont les origines de la culture DevOps ?
Qui a inventé le DevOps ? Les équipes Dev et Ops étaient traditionnellement cloisonnées, ne se préoccupaient que de leur propre champ d’action, faisaient des heures supplémentaires, bâclaient les livraisons, ce qui entraînait à terme le mécontentement du client.
Il devait y avoir un procédé plus efficace. Les deux communautés se sont donc réunies et ont commencé à échanger. Parmi ces pionniers, on retrouve l’informaticien belge Patrick Debois, qui occupait la fonction d’administrateur système pour le gouvernement belge et était fortement impacté par le manque de cohérence et de communication entre les développeurs et les administrateurs.
Celui-ci découvre les méthodes agiles : en ingénierie logicielle, il s’agit de favoriser la collaboration entre des équipes pluridisciplinaires et les clients. Il crée ensuite des groupes de discussions. L’aventure du DevOps a commencé par des forums en ligne et des réunions locales avant de devenir incontournable dans le monde du développement.
Lors d’une conférence à Toronto en 2008 intitulée « Agile Infrastructure & Operations », Patrick Debois et Andrew Schafer utilisent le terme DevOps qui a eu le succès que l’on connaît.
Ainsi, le DevOps est une approche agile qui met l’accent sur le décloisonnement des équipes et le rapprochement des métiers. Comme pour toute approche agile, le client est fortement impliqué.
Par la suite, des conférences mondiales appelées les DevOpsDays se sont multipliées. La culture DevOps implique des changements importants dans une entreprise en termes de manière de travailler. L’état d’esprit est primordial dans l’approche agile.
Malgré cette nécessité de changement profond, le DevOps convainc, ce que nous allons voir à présent.
Pourquoi tant d'entreprises adoptent l’approche DevOps ?
Ebook gratuit
Le succès d’une démarche DevOps repose d’abord sur la culture, l’organisation et la méthodologie. Le DevOps ne se limite pas seulement à l’automatisation. Les méthodes issues de la culture Agile, inspirée du courant Lean, sont régulièrement utilisées pour mettre en œuvre une approche DevOps.
Voyons ici le fonctionnement du DevOps en détail. Les chemins d’itération (ou cycles) sont également appelés sprints.
L’itération consiste à tester et valider chaque étape pour s’assurer qu’elle fonctionne, avant de passer à la suivante. Cette phase est répétée autant de fois que nécessaire. Quant au sprint, c’est un terme lié aux méthodes agiles qui désigne un temps donné au cours duquel une tâche doit être menée à bien avant de faire l’objet d’une révision.
Qu’est-ce qu’un sprint ? Un sprint est une itération qui dure de quelques jours à quelques semaines pendant laquelle l’équipe réalise une tâche donnée et livre un incrément. Ce travail en cycle court permet de s’adapter et de réagir aux besoins des clients. Le sprint permet de découper le produit à développer en “morceaux” utilisables immédiatement, appelés les incréments. L’idée maîtresse des sprints est qu’il est inutile de planifier une production dans ses moindres détails à l’avance, puisque des imprévus et de nouvelles idées surgissent nécessairement en cours de route. D’un point de vue organisationnel, le sprint est dirigé par un coach qui suggère les tâches, suit la progression et s’assure que les membres de l’équipe ne sont pas bloqués. Généralement, mais ce n’est pas une vérité absolue, l’organisation des équipes en binôme est privilégiée. De même, la configuration de l’espace la plus fréquente est l’aménagement en open space dans l’objectif de faciliter la communication dans l’équipe.
Les cycles de mise en production plus courts facilitent la planification et la gestion des risques car la progression est incrémentielle, ce qui réduit également l’impact sur la stabilité du système. De plus, ce raccourcissement du cycle de mise en production permet aux équipes de s’adapter et de réagir aux besoins évolutifs des clients.
Qu’est ce qu’une production incrémentielle ou incrémentale ? Pour expliquer cette notion simplement, revenons à des fondements informatiques. Il existe deux méthodes principales pour mettre à jour des données : l’une consiste à supprimer les données précédentes et les remplacer (supprimer-remplacer) tandis que l’autre consiste à mettre à jour uniquement à partir des nouvelles données (mise à jour).
La production incrémentielle consiste à identifier les différences entre l’état N de la base décisionnelle et l’état N+1 de la base de production. Ces dernières peuvent être des données supprimées, modifiées ou ajoutées. Lorsqu’elles sont identifiées, il n’est pas nécessaire de réécrire tout le code, mais plutôt de mettre à jour la base de données.
On représente le DevOps comme un cycle de vie où l’on passe d’une phase à une autre et lorsque la dernière phase s’achève, un nouveau cycle démarre. Le cycle de vie DevOps se compose de divers processus de développement itératifs et automatisés que l’on appelle les flux.
Le nombre de flux et leur appellation peuvent légèrement différer selon les formulations utilisées par l’expert DevOps à qui vous vous adressez, mais un tronc commun composé de ce flux est aisément identifiable par tous :
- La planification continue correspond au plan de production. L’ensemble du projet est divisé en de multiples tâches. Les équipes DevOps conçoivent les fonctionnalités des applications et des systèmes qu’elles créent. Elles suivent leur progression à différents niveaux de granularité, soit plus faibles soit plus élevés. Il est nécessaire de créer des backlogs regroupant l’ensemble des fonctionnalités.
- Le développement continu : les versions logicielles sont publiées fréquemment. Tous les aspects du codage (écriture, test, révision et intégration du code), ainsi que la génération de ce code entrent dans le développement continu.
- L’intégration continue et le déploiement continu : chaque problème détecté est résolu avant que d’autres problèmes ou une faille de sécurité ne surviennent. Les modifications sont déployées de façon systématique et contrôlées afin de réduire les risques de modification de la configuration système.
- Les tests continus : des tests automatisés sont lancés à différentes phases du cycle DevOps pour vérifier que le code est intact.
- Le retour continu : il est essentiel de collecter et traiter les retours du client même après le déploiement du produit afin de l’améliorer.
- Les opérations continues : le lancement du logiciel et ses futures mises à jour sont automatisés.
Les avantages de travailler selon l’approche DevOps
L’approche DevOps offre de nombreux avantages dont nous listerons les principaux ici :
La vitesse
Vitesse de production, de résolution des problèmes… Les tests continus et l’automatisation d’un maximum de tâches réduisent le temps de surveillance. Bref, avec le DevOps, tout va plus vite. Plus le temps d’élaboration d’une application se réduit, plus l’entreprise profite rapidement de la valeur commerciale de son produit. C’est pourquoi le second avantage est :
La rentabilité
En effet, le TTM (Time-to-market) est devenu un objectif marketing phare pour de nombreuses entreprises. Ce TTM correspond dans le cas présent à la durée de développement d’un produit, autrement dit le temps entre l’idée et la mise sur le marché. Or, plus ce délai est raccourci, plus une entreprise est considérée comme agile et plus elle devance ses concurrents. C’est ainsi que l’on arrive au troisième avantage :
L’agilité de l’entreprise
C’est sa capacité à s’adapter rapidement aux changements, aux tendances et à faire preuve de flexibilité. Cette compétence est essentielle pour une ESN (Entreprise de Services Numériques) qui doit perpétuellement rester à la pointe.
La satisfaction du client
Comme nous l’avons vu plus haut, l’une des principales caractéristiques du DevOps est l’amélioration continue de l’expérience client en l’impliquant au maximum, au moyen du flux « retour continu ». Ainsi, la livraison est assurée plus rapidement grâce à la régularité des feedbacks, les applications correspondent au mieux aux attentes du client. C’est grâce à un travail itératif et des retours clients accrus et réguliers que le DevOps est en mesure de répondre au mieux aux attentes de ces clients.
La montée en compétences de l'équipe
Puisque le cycle de vie du DevOps repose sur le principe d’itération et des sprints, la qualité du code est constamment améliorée, chaque dysfonctionnement est corrigé au plus vite. À titre d’exemple, selon le rapport State of DevOps de 2019, les organisations les plus performantes réalisent des déploiements de code 208 fois plus fréquents ou encore un rétablissement de service par suite d’incident 2604 fois plus rapidement.
Il est maintenant temps de se demander qui utilise DevOps.
Pour qui l'adoption du DevOps serait-elle bénéfique ?
Qui utilise DevOps ? Ou devrions-nous dire, qui ne l’utilise pas ?
Actuellement, on considère que n’importe quelle entreprise devient une “software company”. Effectivement, avec le tournant des années 2000, tout acteur économique quel que soit son secteur d’activité doit prendre en compte l’impératif de transformation numérique. Un exemple particulièrement connu est celui de Nike, qui a su prendre le virage du numérique avec une grande efficacité.
Nike : « We are a Tech Company »
Cette phrase choc a été prononcée par John Donahoe, devenu PDG de Nike en 2019. Pour la toute première fois dans l’histoire de la marque, il n’est pas issu du monde de la mode ou du design, mais de celui de l’IT puisqu’il était auparavant PDG d’Ebay. Il est vrai que Nike possède aussi une majorité des caractéristiques des GAFAM… alors même qu’il a coupé les relations avec Amazon :
L’intimité : Nike propose à ses clients des produits et des services personnalisés par le biais de ses applications, d’une relation continue à travers le smartphone, et une approche du retail.
La gratuité : Les applications Nike Training Club et Nike Running Club sont gratuites.
La création de valeur inversée : Nike ne propose pas des services en essayant de les vendre ensuite, mais part des besoins de chaque client pour y répondre par une offre la plus personnalisée possible
Le temps réel : avec l’outil de suivi des ventes Splunk, Nike est en mesure d’ajuster ses stocks et d’optimiser ses ventes en temps quasiment réel.
La proximité avec le monde de l’IT : Nike organise des TEDtalks, des hackathons et a créé des incubateurs tech. Nike est donc passé d’une entreprise industrielle à une tech company.
Pour exister, il faut proposer des outils numériques innovants et de plus en plus rapidement. Le business s’accélère, la concurrence devient rude. Sur certains marchés, des start-up peuvent arriver et disrupter un secteur avec un service innovant. Lorsque ces services sont bien gérés, en collaboration avec les équipes techniques et produits, les utilisateurs vont se diriger vers ces solutions car leur expérience en est facilitée, avec des mises à jour fréquentes et de nouvelles fonctionnalités. Puisqu’ils sont conscients de l’évolution rapide de ces services, ils seront même plus enclins à pardonner des petits bugs temporaires.
Ainsi, le DevOps permet de délivrer une application en continu et de fournir constamment de nouvelles fonctionnalités. L’erreur n’est pas un problème dans la culture DevOps : si l’on se trompe et que la bonne fonctionnalité n’a pas été ciblée, les équipes DevOps sont capables de réagir, éventuellement de changer le business plan initialement prévu.
Pour cela, quatre domaines sont essentiels à prendre en compte :
- Modernisation des plateformes : votre entreprise doit être prête à fournir la flexibilité et l’évolutivité de la plateforme pour gérer la demande des clients ;
- Modernisation des applications : modernisez votre développement et faites les meilleurs choix pour un déploiement futur.
- Automatisation de l’environnement informatique : intégrez autant que possible l’automatisation dans votre organisation.
- Transformation : innovez continuellement pour préserver la longévité de votre entreprise.
Notre guide pour mettre en place le DevOps en interne
Comme pour tout changement de paradigme dans la manière de gérer un projet, la mise en œuvre du DevOps est délicate et ne se fera correctement que sous certaines conditions. Voilà pourquoi nous vous conseillons de faire appel à des experts en la matière. Nos offres de services DevOps peuvent vous intéresser. Nous vous présentons ici un guide pour cette mise en place, qui s’appuie sur les trois piliers du DevOps : la culture, le process, les outils.
Adopter une nouvelle culture
On parle ici de mener une conduite du changement dans l’organisation, tout démarre par les humains et leur adhésion à un projet. Le premier enjeu n’est pas donc technologique mais humain et votre capacité à mettre en place une culture d’agilité dans l’entreprise fera la différence.
De même, ne sous-estimez pas l’implication nécessaire à cette conduite de changement. Que ce soit dans les équipes ou au niveau de la direction de l’entreprise, le soutien de tous est primordial dans la mise en place d’une démarche DevOps. L’ensemble de l’équipe doit être fédérée et motivée autour du changement à venir.
C’est la raison pour laquelle il est préférable d’avancer progressivement. Vos objectifs de départ doivent être modestes et accessibles sans difficulté notable, ce qui permettra aux équipes d’accepter plus facilement le changement : quand celui-ci se fait en douceur et apporte de la satisfaction, les équipes sont plus enclines à poursuivre le travail dans ce sens.
Adopter un nouveau process
Ainsi, il apparaît indispensable de se familiariser avec les méthodes agiles. Si elles ont fait preuve de leur efficacité, elles représentent néanmoins un changement notable qui peut potentiellement être difficile à vivre pour vos équipes. Bien comprendre et expliquer ces méthodes est un préalable crucial. Pour cela, vous pouvez organiser des formations mais aussi faire appel à un coach en agilité qui guide les projets en apportant sa méthode lors de Workshops, d’interviews, de séminaires d’entreprise autour de l’agilité par exemple.
Enfin, nous vous conseillons de prendre le temps d’évaluer vos pratiques actuelles. Le modèle CALMS que nous avons précédemment évoqué sert de cadre de référence pour analyser la démarche DevOps. L’objectif est de comprendre ce qui dans vos pratiques peut relever du DevOps et ce qui s’en écarte. Vous savez ensuite sur quels éléments faire porter le changement.
Adopter de nouveaux outils
Enfin, réfléchissez aux outils dont vous avez besoin pour favoriser votre démarche DevOps. Le DevOps est bien une culture avant d’être un ensemble d’outils, c’est la raison pour laquelle nous avons choisi, dans ce guide, de ne pas mettre l’accent sur la composante technique. Elle existe cependant et s’avère bien entendu indispensable.
Nous allons à présent passer en revue les outils dont vous avez besoin pour vous engager avec succès dans une démarche DevOps.
Voici les meilleurs outils DevOps
Quels sont les outils DevOps ? Il va en falloir plusieurs qui correspondent à une étape du cycle de vie DevOps. Heureusement, certains outils combinent plusieurs fonctions. Vous avez le choix entre différentes chaînes d’outils, qui sont des ensembles de ressources :
- des chaînes d’outils tout-en-un : ce sont des suites d’outils intégrés qui permettent aux équipes de développement et d’exploitation de travailler ensemble de manière efficace et cohérente tout au long du cycle de vie du développement logiciel. Ces outils fournissent une plateforme unique ou interconnectée, de l’idée à la mise en production. Par exemple la suite Microsoft Azure DevOps, Atlassian (Jira, Confluence, Bitbucket, Bamboo…), Gitlab…
- des chaînes d’outils personnalisés : cette option permet d’apporter et de combiner les outils que les équipes connaissent et utilisent déjà. L’intégration est cruciale afin d’éviter de perdre du temps à se connecter à plusieurs endroits et de rencontrer des difficultés à partager des informations entre les outils. Il faut les choisir avec soin pour s’assurer qu’ils répondent aux besoins de l’entreprise et des équipes.
Voyons quelques-uns de ces outils personnalisés :
Les outils de gestion du code source
Par exemple, vous avez Git, le système de gestion de versions indispensable de nos jours. Il peut être utilisé via le biais de software factory comme GitLab, GitHub, Subversion, GitLab ou Bitbucket. Ces outils peuvent être connectés à des solutions. Nous vous conseillons de choisir des outils qui proposent à la fois l’examen du code, de la gestion des différentes versions et la gestion des changements ou de déploiement automatisé.
Les outils de gestion de la configuration
La gestion de la configuration informatique implique l’automatisation de tâches importantes et fréquentes dans un environnement informatique. Cette pratique s’applique à une grande quantité de machines, parfois plusieurs centaines ou milliers, et englobe diverses tâches nécessaires à la configuration et à la maintenance de ces machines.
De nos jours, Ansible est un incontournable dans la gestion de la configuration, il peut être couplé à un outil d’infrastructure-as-code comme Terraform. Chef et Puppet, un peu plus anciens, peuvent aussi vous aider à accomplir cette tâche.
Les outils CI/CD
Les outils de CI/CD sont nombreux sur le marché et peuvent aider à automatiser les processus de construction, de test et de déploiement de logiciels. Parmi les outils populaires, on peut citer Jenkins, GitLab CI/CD, Travis CI, CircleCI, Bamboo, Microsoft Azure DevOps et AWS CodePipeline. Ces outils peuvent permettre aux équipes de développement de travailler plus efficacement et de fournir des applications de haute qualité plus rapidement.
Les outils de test
Il existe également de nombreux outils de test disponibles sur le marché pour aider les équipes de développement à assurer la qualité de leur code, tels que Selenium (frontend), JUnit (Java), TestNG (.NET), Appium (app mobiles)… L’utilisation de ces outils de test peut aider à économiser du temps et des ressources en automatisant les tests et en fournissant des résultats plus rapidement, tout en vérifiant la qualité et la performance du code.
Les outils de monitoring et d’alerte
Les outils de monitoring permettent de surveiller la performance et la disponibilité des applications et des infrastructures informatiques. Parmi les outils populaires, on peut citer Prometheus, Grafana, Elastic Stack, Datadog et New Relic. L’utilisation de ces outils peut aider les équipes à détecter les problèmes rapidement, à améliorer la fiabilité et à optimiser les performances de l’application. Il est aussi possible d’instrumenter son code avec OpenTelemetry afin d’être plus fin dans l’analyse de son exécution.
Les outils de gestion de projet
Les outils de gestion de projet les plus populaires sont Jira, Trello, Asana, GitLab, GitHub et Microsoft Azure DevOps, ils proposent une version gratuite et une payante en fonction de vos besoins.
Les Cloud providers
Nous les avons cités plus haut, les plus populaires sont Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform. D’autres comme Scaleway ou Exoscale peuvent s’avérer utiles notamment dans un cadre de souveraineté.
Liste des métiers utiles au DevOps
Quels sont les métiers qui interviennent dans le processus DevOps ? Nous ne les listerons pas ici dans leur intégralité mais nous ferons un focus sur le métier de DevOps avant de voir les grandes familles de métiers.
- L’ingénieur DevOps (et sa variante l’ingénieur DevSecOps) : il fait partie des profils IT les plus recherchés. Et pourtant il n’existe pas … tout comme il n’existe pas d’ingénieur Agile !
L’ingénieur DevOps est toutefois très utilisé dans le cadre du recrutement et regroupe des compétences à la fois en développement logiciel et en administration système, afin de mettre en place et d’améliorer les pratiques DevOps au sein d’une organisation.
Le DevOps est une philosophie et non pas un rôle, qui a pour objectif de faire le lien entre les développeurs et les administrateurs IT, ce qui implique une bonne capacité relationnelle et des compétences en management et pilotage.
Voici quelques profils qui sont amenés à travailler autour du DevOps :
- L’ingénieur Système est expert du matériel et des logiciels. Il analyse et optimise l’outil informatique de l’entreprise afin que tous les utilisateurs disposent d’une installation adaptée et performante. Il assure une veille technologique permanente afin d’anticiper les évolutions des systèmes.
- L’ingénieur Sécurité a un rôle essentiel dans un contexte où la cybercriminalité ne cesse d’augmenter. Il conçoit le logiciel en anticipant et réparant les failles de sécurité. Il s’assure aussi que le système soit résilient et fiable.
- L’ingénieur Réseau contrôle et maintient le fonctionnement des réseaux d’une entreprise.
- L’Architecte conçoit et supervise l’architecture globale d’un système logiciel pour garantir sa cohérence, sa stabilité et sa scalabilité.
- L’Intégrateur met en place la solution IT dans l’environnement de production et en assure le déploiement. Il peut mettre en place des pipelines avec les développeurs pour automatiser les livraisons.
- Le Développeur Front-End/Back-End/Fullstack s’occupe du design de la solution IT et assure l’ergonomie de l’interface utilisateur.
- Le Chef de projet est chargé de mener un projet à bien et s’assure que tous les membres de l’équipe avancent ensemble.
- Le Coach Agile + Scrum Master participe au changement de management de l’entreprise, en accompagnant et formant les équipes.Il est appuyé par la direction de l’entreprise.
Quel est l'état du marché de l'emploi autour de ce principe ?
Avec le mot-clé « DevOps », en mars 2023, on obtient plus de 16 000 offres en France sur LinkedIn et plus de 2 500 offres sur Welcome to the Jungle. En affinant avec les deux mots « ingénieur DevOps », l’on obtient plus de 3 300 offres sur LinkedIn.
C’est dire si les offres d’emploi sont nombreuses autour du DevOps en général et plus spécifiquement concernant le métier d’ingénieur DevOps. Cependant, les offres sont plus nombreuses que les postulants : il y a une pénurie. Sacha Kalusevic, directeur de Michael Page Tech, est interrogé par BDM et présente un état des lieux du marché de l’emploi dans l’IT pour 2023. Selon lui,
“De nombreux secteurs de la tech rencontrent une telle pénurie de main d’œuvre et de compétences que nous ne devrions pas connaître la crise de l’emploi en 2023.”
Si le marché de l’emploi IT se porte plutôt bien, des tensions sont à venir. En effet, la Dares (Direction de l’Animation de la recherche, des Études et des Statistiques) a publié un panorama des métiers en 2030, un rapport dont l’objectif est d’anticiper les besoins de recrutement des employeurs entre 2019 et 2030 dans différents métiers.
Ce rapport pointe notamment le métier d’ingénieur informatique dont les difficultés de recrutement pourraient s’accentuer d’ici 2030, alors même que la tension est déjà présente sur ce secteur où des pénuries existent comme pour la cybersécurité ou le développement.
« Cybersécurité », « développement » et « DevOps » : des notions qui renvoient à des métiers indispensables au DevOps et dont les entreprises ont fortement besoin. Le secteur est donc en plein boom et ne demande qu’à embaucher.
Chez Qim info, nous l’avons bien compris en créant notre département Cloud & DevOps Solutions qui permet de proposer aux clients des services spécifiques à cette problématique.
Ebook gratuit
Quelle relation entre DevOps et le Cloud ?
Il est certain que le Cloud a profondément transformé la manière dont les équipes vont créer, déployer et exploiter des applications.
Le Cloud apparaît comme un outil accélérateur d’une transformation DevOps.
Quel est donc le rapport entre le Cloud et le DevOps ? C’est simple, le premier vient améliorer le second. Le DevOps peut techniquement fonctionner sans le Cloud, mais ses avantages sont nombreux. En effet, le Cloud se caractérise par :
- l’évolutivité : les services Cloud sont très évolutifs, ce qui permet aux équipes DevOps de provisionner rapidement des ressources pour répondre à la demande, sans avoir à attendre les approbations budgétaires et l’installation de nouveaux matériels.
- la flexibilité : ils offrent une grande flexibilité en permettant aux équipes DevOps de déployer des infrastructures de test et de développement rapidement et facilement, sans investissement important dans l’infrastructure et les licences logicielles.
- l’automatisation : ils peuvent être intégrés aux outils d’automatisation pour permettre la mise en place de pipelines de développement et de déploiement continue, ce qui facilite l’adoption de pratiques DevOps.
- la collaboration : ils peuvent être partagés entre les équipes de développement et d’opérations, ce qui facilite la collaboration et l’adoption d’une approche DevOps.
- la sécurité : les fournisseurs de services Cloud offrent des niveaux de sécurité élevés et des fonctionnalités de conformité réglementaire, ce qui peut aider les équipes DevOps à assurer la sécurité et la conformité de leurs applications et de leurs données.
Les grands de l’IT ne s’y sont pas trompés puisqu’ils proposent désormais des services spécifiques orientés DevOps, les « Cloud DevOps ». Il existe par exemple Amazon Web Service DevOps (AWS DevOps), Google Cloud DevOps ou encore Azure DevOps développé par Microsoft.
Abordons maintenant une autre confusion que l’on retrouve fréquemment, entre le DevOps et le CI/CD.
Quel est le lien entre DevOps et CI/CD ?
Le CI/CD signifie « continuous integration / continuous delivery » et désigne des flux que nous avons précédemment vus dans le Cycle de vie de DevOps. Sans entrer dans les détails, retenons qu’il s’agit d’introduire une part conséquente d’automatisation continue et de surveillance continue dans l’ensemble du processus de déploiement des applications. Ainsi, les dysfonctionnements liés au code sont mieux résolus et le déploiement de l’application est plus rapide.
Vous retrouvez là quelques-unes des notions constitutives du DevOps : rapidité, automatisation. C’est pourquoi l’approche CI/CD est l’une des composantes du DevOps. Alors que le DevOps se concentre sur les problématiques de culture de l’entreprise et les processus de développement agile (donc sur une organisation du travail), le CI/CD se concentre uniquement sur le processus de déploiement (donc sur un processus informatique).
Finalement, le CI/CD et le Cloud sont des composantes techniques du DevOps, qui reste, lui, une culture.
Quelle est la différence entre DevOps et Scrum ?
La confusion entre Scrum et DevOps est relativement fréquente. Pourtant, leur différence fondamentale tient à leur nature même : Scrum est un framework alors que DevOps est une philosophie, une approche ou encore une mouvance. Autrement dit, le premier fournit une structure pour l’organisation de l’équipe et la gestion de projet tandis que le second a pour objectif de fluidifier les processus de livraison.
Scrum comme DevOps sont fondés sur les méthodes agiles et permettent de gérer efficacement des projets informatiques.
La méthode Scrum est plus ancienne que le DevOps. Elle tire son nom de l’univers du rugby (scrum = mêlée) puisqu’elle présente une approche dynamique et participative de la gestion de projet. De même qu’en rugby la mêlée est une phase primordiale, la réunion dans la méthode Scrum est cruciale pour avancer sur un projet.
Scrum s’appuie sur le découpage d’un projet en sprints (tout comme le DevOps) qui se terminent par une démonstration de ce qui a été accompli. Avant de démarrer un nouveau sprint, l’équipe analyse le déroulement du sprint achevé afin d’améliorer ses pratiques.
Quelle est la différence entre DevOps et DevSecOps ?
Commençons par définir le DevSecOps, acronyme de Development, Security, and Operations. C’est un concept informatique d’automatisation et de conception dérivé du concept DevOps original, qui va s’intéresser tout particulièrement aux questions de sécurité, ce qui s’avère crucial dans un contexte de hausse de la cybercriminalité.
En effet, nous avons vu pour définir le DevOps que la vitesse était une caractéristique essentielle de ce mouvement : la performance du logiciel et sa rapidité de livraison sont les objectifs à atteindre par le DevOps. Mais ces objectifs peuvent laisser de côté l’aspect de la sécurité et ainsi laisser le code vulnérable.
C’est là qu’intervient le DevSecOps qui finalement complète le DevOps avec cette dimension sécuritaire qui lui manquait. Les risques sont intégrés dans le processus de développement et de déploiement des logiciels et sont envisagés dès le début du processus. Ils font partie intégrante du cycle et sont évalués à chaque niveau. Nous pouvons donc compléter notre schéma du cycle de vie du DevOps avec cette dimension sécurité comme vous le verrez ci-dessous :
D’ailleurs, selon le rapport 2020 du State of DevOps, 75% des entreprises qui ont un haut niveau de maturité DevOps arrivent à remédier aux vulnérabilités de sécurité en moins d’une journée.
Conclusion
Pour conclure, nous pouvons faire un point sur les trois piliers de DevOps, interdépendants et donc nécessaires :
- Le changement culturel et organisationnel : le DevOps permet d’introduire de nouvelles méthodes de travail et de rapprocher tous les acteurs qui participent à un même projet dans une perspective de décloisonnement et de collaboration accrue. Comme nous l’avons déjà évoqué, ce changement d’état d’esprit est essentiel et au cœur même de la culture DevOps. Sans cela, rien n’est possible.
- De nouveaux outils et technologies : des outils spécifiques, liés à la culture DevOps, permettent aux équipes de travailler de la manière la plus optimale possible en réduisant le time-to-market.
- Des processus améliorant l’expérience développeur et opérationnelle : le cycle de vie du DevOps représente une architecture stable et qualitative, qui a fait ses preuves.
Qu’attendez-vous pour vous lancer ? Échangeons sur vos besoins.
Clément Raussin
Responsable du département Cloud & DevOps Solutions chez Qim info