Font size
  • A-
  • A
  • A+
Site color
  • R
  • A
  • A
  • A
Article
UriskTrainer
  • Devenir Coach
  • S’inscrire
  • Connexion
  • Blog
Passer au contenu principal
  • Date: lundi 27 juin 2022, 10:58

    DevOps,
    de A à Z, Définition et comment ça marche ?

    Aujourd’hui, la survie des entreprises est plus que jamais déterminée par la capacité à produire des applications toujours plus innovantes, susceptibles de plaire à des utilisateurs de plus en plus exigeants...

    Quels sont les enjeux de DevOps ?
    D’où vient DevOps ?
    L'évolution de Agile à DevOps
    Quels sont les principes clés de DevOps ?
    Quels sont les avantages de DevOps ?
    Comment fonctionne DevOps ?
    Comment mettre en œuvre DevOps ?
    Quels sont les niveaux de maturité DevOps ?
    Azure DevOps, AWS DevOps, GCP DevOps, qu’es ce que c’est ?
    Quels sont les outils DevOps les plus populaires ?
    Qu’est-ce qu’un ingénieur DevOps ?
    Pourquoi devenir ingénieur DevOps ?
    Comment devenir un bon ingénieur DevOps ?
    Quels sont les enjeux de DevOps pour les managers ?
    Quelques mythes sur DevOps

    Quels sont les enjeux
    de DevOps ?

    Les besoins utilisateur changent de plus en plus vite au gré de l’arrivée fréquente de nouvelles technologies dans le monde informatique. D'une part, la cadence de déploiement des nouvelles versions de logiciels  apporte de nombreuses contraintes de qualité, coût et sécurité dans les chaînes de développement.  D'autre part, les fortes exigences de productivité de l’ère digitale remettent en cause la capacité des équipes à produire vite et bien, à partir des processus traditionnels de création des applications. De plus, la vieille division rigide entre différentes équipes spécialisées (développeurs à part, architectes à part, administrateurs système à part …) ne permet plus de survivre à un besoin de collaboration devenu nécessaire à la performance des équipes.
    DevOps, terme issu de la fusion de « développement » et « opérations », est tout d'abord une culture de travail en équipe, qui supprime les barrières de communication sur toute la chaîne build et run. Ensuite, DevOps accélère les flux de livraison logicielle par l' automatisation massive des étapes de développement, et de contrôle. Enfin, DevOps accroît la qualité ainsi que la sécurité des applications, en renforçant l'expertise des équipes par l'apprentissage continu. Pour résumer, DevOps  apporte aujourd'hui, la meilleure réponse aux nouvelles exigences de  la transformation digitale.Par l’assimilation des pratiques DevOps, les ingénieurs peuvent désormais répondre aux nouveaux défis qui ont trait à la vélocité des livraisons de release, la stabilité des services en production, ainsi qu'à la sécurité des applications.

    D’où vient DevOps ?

    Divers mouvements ont contribué à la création de DevOps. Tout d’abord, le mouvement Lean dont l’origine est le système de production, inventé dans les années 80 par le constructeur Toyota, le Toyota Production System (TPS). Ce système est centré sur l’amélioration continue de la valeur délivrée, par l’élimination des gaspillages. TPS généralise la pratique de la qualité à la source, ainsi que la gestion scientifique des flux de livraison des produits dans les chaînes de production. Lean a apporté à DevOps de nombreuses pratiques intéressantes, comme le Value Stream Mapping (la visualisation des flux de livraison logicielle) ou les tableaux de Kanban.

    Ensuite, il y a le mouvement Agile en 2001, dont l’un des principes fondamentaux est de livrer des logiciels qui marchent, beaucoup plus fréquemment, sur des périodes courtes, les sprints (environ d’un mois). On peut noter deux apports essentiels du mouvement Agile à Devops : premièrement, la fourniture des livraisons logicielles en petits lots, fréquemment, de manière incrémentale, plutôt que des larges livraisons logicielles des cycles projet en V. Les apports du mouvement Agile se sont enrichis dans les années 2008 avec le « Velocity Mouvement » qui a introduit les principes de « Continuous Integration » et « Continuous Delivery », CI/CD. Ces principes ont industrialisé les activités de développement logiciel en faisant reposer les développements sur des infrastructures de livraison logicielle complètement automatisées. Ces innovations ont considérablement augmenté la qualité et les cadences des livraisons en production. Parmi les personnes ayant le plus contribué à la naissance de DevOps, on peut citer Patrick Debois, Gene Kim, John Willis, et Alanna Brown, auteurs de nombreux ouvrages et conférences comme les DevOpsDays.

    Le terme DevOps lui-même a été introduit en 2009 en Belgique par Patrick Debois aux premiers DevOpsDays, pour désigner plus simplement le nouveau mouvement qui venait de naître de l’association de Dev et Ops. Sous-entendu un ensemble des meilleurs pratiques de développement informatique (Dev) et d'exploitation en production (Ops) enveloppés dans nouvelle culture organisationnelle.


    L'évolution de Agile à DevOps

    De nos jours, chaque logiciel d’entreprise doit apporter un maximum de bienfaits pour un minimum de temps et d’effort. Par exemple, vous avez sans doute vu comment l’approche Agile a révolutionné l’informatique. Elle accélère la livraison de chaque nouvelle version d’un logiciel en raccourcissant les cycles de développement.
    Il manquait cependant une synergie entre les activités de développement et celles des opérations. Trop souvent, les deux équipes travaillaient chacune isolée dans son silo. Les logiciels étaient développés sans considération des contraintes opérationnelles. L’équipe des opérations devait se débrouiller seule pour faire fonctionner les applications dans le monde réel. Les surcroîts de travail et la frustration étaient fréquents.

    DevOps résout ce problème en faisant collaborer des développeurs et des ingénieurs des opérations et en étendant les avantages de la méthode Agile à tout le cycle de vie du logiciel. Ainsi, votre logiciel est conçu dès le début pour fonctionner dans la vraie vie. La souplesse et la rapidité du cycle de vie vous permet de réagir facilement à des environnements ou des objectifs changeants. Avec DevOps, votre logiciel apporte beaucoup plus de valeur, plus rapidement, plus sûrement, et plus fréquemment.


    Quels sont les principes clés
    de DevOps ?

    DevOps repose sur trois principes directeurs :

    1. Le principe d’accélération des flux de livraison logicielle, de l'expression des besoins à la mise en production, flux dont la maîtrise permet de multiplier la cadence de livraison des releases logicielles.
    2. Le principe des feedback continus qui rend accroît la sûreté de systèmes informatiques. Ces feedbacks éclairent continuellement chaque étape de construction du logiciel, donnant la possibilité de détecter les problèmes beaucoup plus tôt, et d'intervenir plus rapidement pour les corriger.
    3. Le principe de l'apprentissage continu destiné lui, à renforcer le degré de maîtrise leurs tâches respectives par les parties prenantes aux projets. DevOps donne une grande place à l’expérimentation, ainsi qu'au "droit à l'erreur". D’une part cela replace l’ingénierie logicielle dans une approche scientifique, plus prédictible au niveau de la qualité de ses produits, mais aussi plus stable dans le fonctionnement de ces derniers. D'autre part, apprendre ou expérimenter continuellement est un puissant moyen de développer la confiance des ingénieurs face aux opérations redoutées, en leur procurant la préparation de celui qui les a "déjà répétées".

    A ces principes, se rajoutent un élément fondamental à instaurer dans la culture organisationnelle: l’élimination de toute culture du blâme face aux erreurs que pourraient commettre les personnes dans l’accomplissement de leurs missions : ex. les erreurs conduisant à des incidents en production, ou tout simplement les omissions dans le cycle de développement.

    Mais DevOps dépend surtout de la collaboration profonde entre les développeurs (dev) et les ops, plus largement entre toutes les parties prenantes des projets logiciels, y compris les Business Owner.  

    Cette coopération est soutenue par les bons processus et les bonnes pratiques. Elle est renforcée et facilitée par des outils qui automatisent à outrance les tâches répétitives, ou sujettes aux erreurs humaines fréquentes.

    Il ne faut donc pas s’attendre à ce que les outils fassent seuls le travail. Le succès en DevOps viendra d’abord de l’adoption d’une culture d’entreprise appropriée, celle qui remet la coopération humaine au centre, qui élimine le blâme et promeut l'apprentissage continu .

    Quels sont les avantages
    de DevOps ?

    DevOps apporte rapidité, fiabilité et sécurité dans les productions de releases informatiques. Selon le rapport 2019 State of DevOps, les organisations les plus performantes réalisent :

    • Des déploiements de code 208 fois plus fréquents
    • Des délais 106 fois plus courts entre le « commit » et le déploiement
    • Un rétablissement de service par suite d’incident, 2604 fois plus rapidement
    • Un taux d’échec aux changements de release 7 fois plus faible

    DevOps, en plus d’accroître le rythme des livraisons, améliore la qualité des release logicielles. En outre les services informatiques gagnent nettement en stabilité, et les équipes en coopération.

    Selon le rapport 2020 du State of DevOps, 75% des entreprises ayant un haut niveau de maturité DevOps, arrivent à remédier aux vulnérabilités de sécurité en moins d’une journée. Ce qui montre l’adéquation de cette pratique avec l’autre grand défi de l’économie digitale, la Cybersécurité.


    Comment fonctionne
    DevOps ?

    Le fonctionnement de DevOps repose sur des pratiques à adapter à chaque contexte d’entreprise :

    • La différence essentielle de DevOps avec Agile, c’est l’automatisation généralisée à toutes les infrastructures qui soutiennent les développements logiciels jusqu'à la production. En particulier, un accent est mis par DevOps sur création automatique des environnements de développement, préproduction, et productions traditionnellement non gérées par les développeurs dans Agile. Avec DevOps, ces environnements d'infrastructure sont désormais provisionnés « as a code »  y compris au niveau de leur configuration. L’Infrastructure as a Code (IaaC) transforme la création des infrastructures de manière programmatique en se basant sur des langages adaptés comme Terraform ou Python. En outre, le Configuration as Code (CaaC) apporte la couche de consistance entre les environnements de développement, de préproduction, et de production éliminant l’une des graves causes d’échecs des déploiements: les différences de configuration . Des outils comme Ansible permettent de réaliser cette gestion automatisée des configurations.

    • En DevOps, comme en Agile, la chaîne de livraison logicielle est continue, c’est pipeline Ci/Cd. Cependant au delà delà de création automatisée des environnements d'infrastructure, de l'intégration continue du code, DevOps intègrera des tests de sécurité dans les pipeline, comme critère naturel d'acceptance.

    • Au niveau technique, DevOps sanctuarise les architectures logicielles entièrement découplées (sans spof) dans la conception : les architectures dites en micro-services. Les micro-services assurent une meilleure stabilité des services, ainsi qu'une granularité dont l'absence compromettrait sérieusement la capacité à automatiser les créations d'infrastructures. Les principales technologies implémentant ces architectures sont des applications de conteneurisation comme Docker et Kubernetes ou Openshift.

    • DevOps met systématiquement en œuvre des outils de télémétrie sur chaque composant de la chaîne de livraison logicielle. Il n’est pas rare d’intégrer en production des sondes permettanaussi les équipes sur le bon fonctionnement des logiciels dans les environnements de production.

    • DevOps promeut des équipes de petite taille, "les squads", sorte d’équipes pluridisciplinaires réunissant au même endroit toutes les fonctions nécessaires à la fabrication d’un produit logiciel (Dev, Ops, QA, RTE, PO …). Ce modèle d’organisation renforce l’autonomie, ainsi que la cohésion des équipes. Débarrassé de la culture du blâme, ce type d’organisation conduit à une meilleure qualité des release, et accessoirement à une productivité plus élevée

    • Enfin, la culture de l’apprentissage continu est sanctuarisée dans DevOps. DevOps recommande à l’entreprise de garantir un temps « libre » à chaque collaborateur, réservé à l’apprentissage ou l'expérimentation. Ce temps permet aux équipes de capitaliser sur les retours d'expérience liés aux erreurs ou dysfonctionnements rencontrés. Ce temps permet aussi de perfectionner les équipes ou tout simplement d’élargir leurs connaissances de l'organisation dans laquelle ils évoluent.

    Comment mettre en œuvre DevOps ?

    La mise en œuvre de DevOps dans une entreprise dépend fortement du contexte de l’entreprise. Il n’existe pas de méthode unique s’appliquant à tous. Par exemple dans l’univers Francophone, la culture d'entreprise est encore fortement centralisée. Les marqueurs du Jacobisme restent présents malgré tout, notamment dans les plus grandes entreprises. Cette forte concentration de pouvoir au niveau d’un management centralisé, très en haut de la pyramide représente souvent un obstacle de taille dans l’adoption de DevOps.

    C'est pourquoi, dans ce type de contexte, l'approbation managériale au plus haut niveau hiérarchique de l’entreprise est pré-requis à toute transformation DevOps.

    En effet, DevOps a des conséquences non négligeables pour le management. On,  peut citer par exemple le fait que l’autonomie des squads au niveau de la prise de décisions opérationnelles, implique une modification profonde des attributions du manageur tel qu’il a toujours été. Ensuite, et plus concrètement, l'adoption de DevOps comportera des phases incontournables eu égard à l'expérience de nombreuses entreprises:

    Phase1: La sélection d'un projet pilote suffisamment visible dans l'organisation, mais en même temps, suffisamment découplé de l’existant, de manière qu'il soit plus simple de mieux démontrer les futurs bénéfices de DevOps
    Phase2: La constitution d'une équipe de transformation constituée des collaborateurs les plus motivés par les changements innovants, les « early adopters »
    Phase3: L’accompagnement par un conseil. Ce point est indispensable en particulier dans la mesure ou l'expérience de conseil externe est susceptible de faire éviter de nombreux écueils déjà rencontrés dans des contextes semblables
    Phase4: Ensuite au choix, la construction en propre, de son premier pipeline CI/CD en se basant sur des outils standards répondant à des objectifs opérationnels précis, ou alternativement la sélection d’une plateforme intégrée DevOps en mode SaaS comme GitLab CI, Jenkins, AWS Code Pipeline ou Azure DevOps
    Phase5: La réorganisation des équipes dans des squads autonomes de petite taille, le standard « Two-Pizza Team », autour de 8 personnes maximum dans les squads a ét le plus couramment observé dans des cas d'écoles comme Netflix par exemple.
    Phase6: L’intégration plus vaste d’une télémétrie destinée à remonter automatiquement les KPI démontrant les bénéfices ou les pertes occasionnées par la transformation
    Phase7: L’instauration de canaux de communication continus, par la mise en place d'outils de type ChatOps pour être en mesure de fédérer, partager animer et assurer une collaboration optimale de toutes les parties prenantes

    Dans tous les cas, la mise en œuvre de DevOps dans l’entreprise doit se faire par des étapes contrôlées de manière à rassurer l'ogranisation. Le succès d’un projet pilote est toujours une excellente référence, qui bénéficie de soutiens plus nombreux qui faciliterons une généralisation la pratique au sein de toute l’organisation.

    Quels sont les niveaux
    de maturité DevOps?

    En 2018, le rapport « State of DevOps » de circleci a établi 5 niveaux de maturité, relatifs à l’adoption de DevOps dans les organisations. Il s’agit d’une projection d’étapes cohérentes permettant non seulement de situer son organisation du point de vue DevOps, mais aussi de construire sa trajectoire d’évolution vers la prochaine étape à atteindre.


    Niveaux

    Résultats                                                                                          

    Niveau 1 « Normalisation » 

    • Les équipes déploient sur un ensemble défini de systèmes d'exploitation standardisés
    • Les équipes de développement utilisent des outils de contrôle de version

    Niveau 2 « Standardisation » 

    • Les équipes déploient sur un unique type de système d’exploitation standardisé
    • Les logiciels sont tous construits sur un ensemble limité de technologies de codage

    Niveau 3 « Expansion » 

    • Les collaborateurs peuvent travailler en squads, sans processus manuel d’approbation extérieur à l’équipe
    • Des patterns de construction et déploiement logiciel sont définis et réutilisés
    • Les modifications de l’infrastructure sont systématiquement testées avant mise en production

    Niveau 4 « Infrastructure automatisée » 

    • Les configurations système sont automatisées (CaaC)
    • Le provisioning de l’infrastructure est automatisé (IaaC)
    • Les configurations système reposent sur un contrôle de version centralisé
    • Les équipes ops utilisent des outils de contrôle de versions de l’infrastructure
    • Les configurations d’applications reposent sur un contrôle de version
    • La configuration des politiques de sécurité est automatisée (Policy as Code)

    Niveau 5 « Self-Service» 

    • La réponse à incidents est automatisée
    • Les ressources et outils des pipelines CI/CD sont disponibles en self-service
    • Les applications sont régulièrement ré-architecturées pour s'aligner aux besoins business
    • Les équipes sécurité sont impliquées à la fois dans les phases de design mais aussi de déploiement versions de l’infrastructure
    • Les configurations d’applications reposent sur un contrôle de version automatisé
     

    Azure DevOps, AWS DevOps,
    GCP DevOps, qu’es ce que c’est ?

    Le Cloud est très vite devenu le standard de l’informatique. A peu près tout ce qui se code comme applications, l’est aujourd’hui dans le Cloud. D’ailleurs DevOps est né, et s’est développé chez les GAFAM (Google, Apple, Facebook, Microsoft). Ça a été l’un des facteurs leur ayant permis de construire aussi rapidement, les larges infrastructures informatiques que nous connaissons.

    Microsoft propose un Cloud dénommé Azure, Amazon le Cloud AWS (Amazon Web Services) et Google le GCP (Google Cloud Platform).

    Pour accélérer les souscriptions de services dans leurs Cloud respectifs, ces Cloud Providers ont mis en place des plateformes qui automatisent les créations et l’exploitation de leurs services informatiques. Ainsi, chaque Cloud Provider propose une plateforme taillée sur mesure pour ses environnements, fournissant des outils sur étagère pour la gestion de projet agile, l’intégration continue Ci/Cd, l’Infrastructure As Code (IaaC) et la Configuration as Code (CaC).

    Ces plateformes ne couvrent que les aspects techniques de DevOps, les adopter seuls ne suffit à profiter complètement des bénéfices attendus d'une transformation DevOps. En particulier, la culture de l’organisation, et la pratique de l’apprentissage continue dans les équipes, restent des points déterminants pour réussir DevOps.

    Le tout technologique dans les mains d'un seul Cloud Provider ne couvre pas non plus tous les scénarios de construction d’infrastructures automatisées. Il n’est pas rare de devoir y ajouter des outils externes open source pour palier aux limitations d'un Cloud Provider donné, par exemple au niveau de Configuration as à Code, du monitoring ou de la sécurité.

    De plus, les technologies des Cloud Provider restent propriétaires, ce qui peut devenir un obstacle dans certaines situations, en particulier lorsque les services informatiques consommés sont distribués sur différents Cloud Providers (pas dans un seul), doivent inter-opérer.

    Azure DevOps est la plateforme de Microsoft pour les services du Cloud Azure, elle comprend, les outils suivants :

    • Azure Boards est un outil de management visuel des projets en mode agile, comparable à Jira, Trello ou Kaban
    • Azure Pipelines, qui fournit les infrastructures d’Intégration et de Delivery Continu, les pipeline Ci/Cd 
    • Azure Repos, est le dépôt de code et de gestion de versions
    • Azure Test Plans, permet d’organiser les tests de manière automatisés
    • Azure Artifacts, est le gestionnaire de paquets qui permet d'ouvrir des flux d'approvisionnement avec les grands fournisseurs de paquet comme npm, NuGet etc.
    • Azure Resource Manager, qui gère la construction des Infrastructures as à Code (IaaC)
    • AKS : Azure Kubernetes Services, qui est l’ossature des micro-services Kubernetes dans Azure

    Côté Amazon, AWS DevOps en comparaison offre les services ci-dessous:

    • AWS Code Comit, le gestionnaire de code et de versions
    • AWS Code Build, qui fournit le service de d’intégration continue, CI/CD
    • AWS Code Pipeline, qui assure le Déploiement Continu
    • AWS Cloud Formation, qui permet la création des Infrastructures as à Code (IaaC)
    • EKS : Elastic Kubernetes Services, l’infrastructure de construction des micro-services dans AWS Cloud

    Chez Google Cloud Platform (GCP), des services similaires sont offerts, notamment:

    • GCP code pipeline, pour l’intégration continue en CI/CD
    • GCP code build, limité à la compilation et les tests du code
    • GCP code deploy, qui gère les déploiements automatisés
    • GCP Cloud formation, qui fournit les services d’Infrastructure as à Code en couvrant la partie Configuration
    • ECS : Elastic Container Service, c’est l’infrastructure de micro-services Kubernetes dans GCP

    Quels sont les outils
    DevOps les plus populaires ?

    La culture et les principes de DevOps sont plus durables que des technologies qui elles évoluent sans cesse. Cependant, l’outillage occupe une place centrale dans les pratiques DevOps notamment pour l’automatisation des tâches dans les développements logiciels.

    Avec l’arrivée de DevOps une profusion d’outillages a vu le jour essentiellement dans l’open source. Les exemples d’outils les plus courants, classés par catégorie sont les suivants :

    • Gestion et de code source : GitLab, GitHub, Bitbucket, etc
    • Création et orchestration de micro-services par conteneurisation/containérisation: Docker, Kubernetes, Helm, Swarm, OpenShift ...
    • Pipelines de'Intégration ou Delivery Continue (CI/CD) : Jenkins, Bamboo, Octopus, ...
    • Gestion de l’infrastructure en tant que code (IaaC) : Ansible, Puppet …
    • Télémétrie ou monitoring continu : Grafana, Datadog, Elastic Search Logstash Kibana (ELK)

    Une excellente source de connaissances des outils DevOps initialement construite par la société Française XebiaLabs, depuis devenue digitalai. Elle se nomme « le tableau périodique de classification DevOps" en référence au tableau périodique des éléments chimiques de Mendeleïev pour faire le parallèle avec les sciences. Ce tableau organise chaque outil en fonction de son usage dans DevOps de manière visuelle. L’exploration de ce tableau est consultable ici "Tableau périodique des outils DevOps".

    Le rôle central de l’intégration et la livraison continue  

    L’intégration et la livraison continue sont d’une importance centrale dans DevOps. Ces deux pratiques vous assurent (jusqu’à plusieurs fois par jour) que les différents paquets de code fonctionnent correctement ensemble et peuvent être déployés comme il faut. Avec le pipeline CI/CD :


    • Les changements de code sont plus petits, plus sûrs, et plus faciles à gérer
    • Vous détectez plus rapidement les problèmes éventuels, pour les corriger plus facilement
    • Le taux/la cadence de sortie de nouvelles versions logicielles augmente
    • Vous réagissez plus vite aux incidents de service et jouissez d'une résilience largement plus accrue comparé aux pratiques anciennes

    Qu’est-ce qu’un ingénieur DevOps ?

    Regardons de plus près la dimension humaine de DevOps, sans laquelle les outils et les processus seraient inutiles. Les entreprises informatiques, comme celles d’autres secteurs ont toujours fonctionné sur un modèle organisé en « divisions » ou silos. L’une des conséquences a été l’hyperspécialisation des ingénieurs sur chaque activité ou composant de l’infrastructure informatique sur lequel ils intervenaient. Une séparation claire était opérée entre les fonctions de type "Build", côté développements, et les fonctions de type "Run" consacrées à l'exploitation en production. Il était courant de voir dans les entreprises des profils possédant des expertises exclusives sur un élément de l’infrastructure : Ainsi un développeur en langage, C ou Java, ne savait faire que cela, et pour déployer un logiciel, il devait livrer son code à d’autres ingénieurs, maîtrisant uniquement le système d’accueil du code de l’application, mais n’ayant aucune compétence en codage.

    Il n’était pas rare de faire de longues carrières dans des rôles d’ingénieur spécialisés comme les ingénieurs base de données (PostgreSQL, Oracle, etc.), ou des rôles d'ingénieur réseau spécialisés Cisco, réseau Juniper, ou des rôles d’ingénieur système linux, des rôles d’ingénieur infra VMWARE, des rôles de développeur php ..., la liste des spécialités est longue.

    A la différence de cela, les ingénieurs DevOps arrivent avec des compétences complètement nouvelles. Ils définissent un nouveau standard du rôle d'ingénieur informatique reposant sur l’association de multiples compétences codage et système en un seul et même rôle. Les ingénieurs DevOps doivent disposer dans l’idéal de plusieurs savoir-faire notamment :

    • Développer, programmer, créer, tester, installer et maintenir des solutions informatiques
    • Déployer, exploiter et gérer des applications
    • Intégrer des outils DevOps, scripter et automatiser des étapes du cycle de vie logiciel notamment avec des langages tels que python, Terraform
    • Réduire la complexité et lisser les actions nécessaires à l'amélioration continue de la chaîne de livraison logicielle

    Pour évoluer dans des organisations productives, dont la culture est plutôt transverse,  l’ingénieur DevOps doit disposer d’une forte capacité à collaborer, d'un goût de l’apprentissage, ainsi que d’excellentes qualités de communication.

    Pourquoi devenir ingénieur DevOps ?

    Le paysage informatique des entreprises subit des changements profonds. Le Cloud ("L’infonuagique") prend le dessus sur quasiment toutes les constructions actuelles de productions informatiques. Les postes d’ingénieur système, ingénieur réseau, et autres sont en train de se transformer ou d’être remplacés à terme, par exemple, par des rôles de DevOps.

    Parmi les attraits du « métier » de DevOps on peut retenir :

    • L’étendue des opportunités allant des start-ups aux multinationales
    • Les grands acteurs de la Tech (Google, Amazon, Microsoft, Facebook) très friands de ce nouveau rôle
    • Des possibilités sans limite d’apprentissage et de développement personnel
    • L’impact réel sur le succès d’une organisation à travers la qualité et la disponibilité des logiciels
    • Les salaires sont parmi les meilleurs de l’industrie, en raison de la pénurie de professionnels. en France les salaires d'ingénieurs débutants peuvent atteindre les 80K€, pour des profils ayant un vernis cloud
    • L'écosystème technologique reste dynamique et très riche souvent natif dans le Cloud
    • Les environnements de travail sont stimulants

    Comment devenir un bon ingénieur DevOps ?

    Qu’ils soient à l’origine des développeurs qui s’orientaient vers les opérations ou des administrateurs de système qui s’intéressaient à la programmation, les bons ingénieurs DevOps ont en commun:

    • Un savoir-faire comportemental (« soft skills ») : souplesse, communication, travail en équipe
    • L’esprit analytique et des capacités d’organisation : gestion de développement, de l’intégration, et du déploiement, ainsi que gestion de projet et des échéanciers
    • Des compétences techniques pertinentes : programmation en Python, Scripting PowerShell ou Linux, et d’autres langages populaires propres aux Pipelines CI/CD ou aux technologies d'intégration continue
    • Une compréhension approfondie des éléments clefs de DevOps
    • Un goût de l’apprentissage qui les poussent à sans cesse à se former sur les évolutions du concept et des outils

    Quels sont les enjeux de
    DevOps pour les managers ?

    Les fonctions d'encadrement informatique des entreprises sont en première ligne pour réussir une adoption de DevOps et en tirer les bénéfices attendus. Pour les Responsables Informatiques des PME et ETI, ou les Manageurs IT des grands groupes, le principal enjeu de l'adoption de DevOps, est d'être capables de communiquer avec leurs équipes. En effet, ces derniers parlent de nouveaux langages propres aux innombrables technologies souvent méconnues de leurs manageurs. Il en est de même des professionnels informatiques assurant des rôles de coordination et de pilotage comme les Product Owner, les Chef de Projet ou les Scrum Master, qui assument l'encadrement immédiat des équipes. Si elles manquent de connaissances de base sur les concepts fondamentaux de DevOps, cela devient vite un handicap pénalisant leur capacité à se faire comprendre, à animer et à diriger convenablement leurs équipes.

    En outre, leur légitimité vis-à-vis des personnes dans les éuiqpes DevOps (les squads) peut être rapidement être remise en cause. L'atteinte des objectifs d'amélioration de flux d'activité attendus de l’adoption de DevOps dans une organisation, peuvent s’en trouver compromis en raison des faibles compétences des lignes managériales sur le sujet.

    Avec la pratique de l'intégration continue (pipelines ci/cd), et la généralisation du cloud, il devient impossible d'assurer un pilotage pertinent des activités en se basant sur les méthodes de reporting anciennes. En cause une trop grande multiplicité des sources, et d'informations à analyser.

    DevOps introduit le monitoring continu de la chaîne de développement, des infrastructures de création de service, ainsi que des applications en production.

    Pour l'encadrement cette surveillance passe par la mise en place de nouveaux moyens d'analyse offrant une meilleure visibilité sur les problèmes.

    Le bon vieux reporting PowerPoint sera remplacé par des outils de datavisualisation alimentés continuellement et capable de fournir une analyse managériale pertinente sur trois niveaux  :

    1. Au niveau Business
    2. Au niveau des applications
    3. Au niveau des pipelines de livraison de code ci/cd

    Quelques mythes sur DevOps

    Voici quelques idées préconçues à savoir pour éviter les pièges dans la compréhension DevOps. Certaines sont tirées du livre « The DevOps Handbook » écrit par Gene Kim, Jez Humble, Patrick Debois et John Willis.

    « DevOps ce sont les technologies telles qu’Azure DevOps, Jenkins, AWS DevOps etc »

    Le seul emploi des technologies est insuffisant pour réussir sa transformation DevOps. DevOps c’est l’ensemble interreliés de la culture d’entreprise "Blameless", des principes et des pratiques d'automatisation. Les outils ne sont qu’une composante dont la mise en œuvre vient soutenir cette nouvelle culture. Nombre d’entreprises ne connaissent pas d’améliorations après une transformation consistant uniquement à intégrer de nouveaux outils d'automatisation notamment chez des Cloud Provider. Il en est de même des professionnels se destinant à des carrières dans DevOps, qui ne s’intéressent qu’à l’acquisition de compétences techniques sur des outils. Une maîtrise plus large des concepts DevOps donnera au professionnel des atouts intellectuels nécessaires pour s’adapter durablement dans un univers technologique en perpétuel changement.

     « DevOps c’est le remplaçant de la méthode Agile »

    DevOps ne remplace pas, mais est plutôt la continuation du mouvement Agile, en ce sens qu’il prolonge l’association du Product Owner et du Développeur en y intégrant les Ops.

     « DevOps c’est uniquement pour les startUps »

    De très grandes entreprises comme Google, Netflix emploient massivement DevOps dans leur organisation. Elles ont toutes rencontré à un moment de leur histoire, des limites à leur développement en raison de pratiques anciennes dans leurs informatiques (projets en cycle en V, codes complexes et larges livraisons de releases). DevOps a justement été pour ces grandes entreprises, l’enabler de leur passage à l’échelle de très grandes entreprises planétaires que nous connaissons aujourd’hui.


    RETOUR AUX ARTICLES
    • Accueil
    • Contact: 01.76.36.19.55
    • Se connecter
  • 30, Avenue Carnot 91300 Massy, propriété de la société Cost Solutions @www.cost-solutions.com"