DevOps : qu'est-ce que c'est et pourquoi c'est important
Publié: 2022-03-11Bien qu'il n'y ait pas de méthode infaillible, "solution miracle" pour améliorer l'efficacité informatique, DevOps a donné des résultats difficiles à ignorer. Comme son nom l'indique, DevOps combine les principes de développement de logiciels et d'exploitation de logiciels dans le but d'aider les organisations à développer des produits avec plus de rapidité et d'efficacité. TIAA-CREF, par exemple, a vu son entreprise de 40 milliards de dollars apporter des améliorations significatives grâce à l'utilisation des principes DevOps. Une interview de TechBeacon avec le directeur numérique de TIAA, Scott Blandford, explique comment TIAA est passée de logiciels et de systèmes hérités encombrants à « une approche DevOps agile » qui a quadruplé la productivité du développement. Les mises à jour sont publiées beaucoup plus rapidement, et "l'informatique a retrouvé la confiance qui s'était érodée au fil des ans alors qu'elle commençait à répondre aux attentes des utilisateurs".
Les résultats du rapport 2017 sur l'état du DevOps suggèrent des différences frappantes entre les organisations hautement performantes qui utilisent les principes DevOps et celles qui ne les utilisent pas. Selon le rapport, les organisations à hautes performances ont des fréquences de déploiement de logiciels beaucoup plus élevées (46 fois plus fréquentes), des délais d'exécution des changements beaucoup plus rapides (440 fois plus rapides) et un taux d'échec des changements de logiciels nettement inférieur (cinq fois inférieur) à leurs performances inférieures. homologues.
Malgré ces avantages significatifs, DevOps est un exemple classique d'un concept technique important et relativement nouveau qui a trop souvent été mal utilisé ou mal compris. Pour beaucoup, l'idée reste floue, et même une définition de base de DevOps peut s'avérer insaisissable.
Ce manque de clarté pourrait potentiellement avoir des effets négatifs sur les organisations et les équipes qui tentent de mettre en œuvre les principes DevOps, provoquant une confusion stratégique et entravant la rapidité et l'efficacité que DevOps est censé promouvoir. Comme l'a déclaré un ingénieur DevOps d'IBM dans un article publié par InfoWorld, "Nous devions répondre à quelques questions de base et déterminer les problèmes que nous essayions de résoudre... Si vous ne savez pas comment le travail est réellement effectué, vous ne savez pas quels problèmes valent la peine d'être résolus.
Alors que le développement de logiciels et les opérations deviennent de plus en plus étroitement liés et que les entreprises dépendent de plus en plus de l'infrastructure cloud, les dirigeants et les chefs de projet doivent maîtriser DevOps pour rester compétitifs et s'assurer que leurs équipes fonctionnent à leur plein potentiel.
DevOps ne doit pas être considéré comme un autre vague mot à la mode, mais plutôt comme un concept important avec le potentiel d'améliorer considérablement les produits et les entreprises. Cet article, destiné à un public relativement non technique, vise avant tout à clarifier exactement ce qu'est DevOps. À l'aide d'exemples spécifiques, cet article explorera ensuite à quoi ressemblent les principes DevOps lorsqu'ils sont bien exécutés, et pourquoi DevOps est important pour vous et votre organisation.
DevOps en tant que type d'ingénieur, de culture et de pratique
Qu'est-ce que DevOps ? Dans un article précédent publié par Toptal, Demir Selmanovic écrit que "DevOps est une culture, un état d'esprit, et il fait partie de l'informatique dans son ensemble". Il écrit en outre que DevOps est une pratique qui permet aux organisations d'optimiser la vitesse et l'efficacité de toutes les fonctions informatiques.
Amazon Web Services, qui est le plus grand acteur de l'infrastructure cloud et a donc développé une expertise DevOps significative, utilise une définition similaire, en disant que "DevOps est la combinaison de philosophies culturelles, de pratiques et d'outils qui augmente la capacité d'une organisation à fournir des applications et des services. à grande vitesse : faire évoluer et améliorer les produits à un rythme plus rapide que les organisations utilisant des processus traditionnels de développement de logiciels et de gestion d'infrastructure. »
"Les gens de DevOps sont essentiellement ceux qui ont trouvé de l'intérêt à la fois pour l'administration des systèmes et le développement de logiciels et ont décidé de combiner leurs compétences pour créer une approche unifiée et meilleure pour les deux."
Ce sont deux définitions utiles pour un public déjà bien familiarisé avec des domaines connexes, mais elles peuvent être trop abstraites pour les cadres ayant des antécédents techniques moins étendus. En effet, peut-être qu'une partie de la confusion entourant la définition de DevOps provient du fait qu'il est souvent référencé simultanément comme un type d'ingénieur, un ensemble de pratiques et une culture. Bien que DevOps englobe chacun de ces éléments, il est utile de commencer par les considérer séparément.
Pour commencer par ce à quoi ressemble un ingénieur DevOps, Martin Chikilian, un développeur de logiciels anciennement pour IBM et Hewlett Packard avec plus d'une décennie d'expérience dans l'utilisation des principes DevOps, le résume en termes simples et concrets : « Les gens DevOps sont essentiellement ceux qui ont trouvé de l'intérêt à la fois dans l'administration système et le développement de logiciels et ont décidé de combiner leurs compétences pour créer une approche unifiée et meilleure des deux.
Ils sont capables de maintenir les serveurs, les réseaux et d'autres types de systèmes d'infrastructure dont dispose une entreprise, ainsi que d'itérer et d'améliorer activement ces systèmes grâce au développement de logiciels. Comme Chikilian l'a dit d'une autre manière, "Une personne DevOps est quelqu'un qui peut tirer parti des bases du développement logiciel pour s'aider et aider les entreprises à créer de meilleurs outils pour gérer l'infrastructure."
La «combinaison de philosophies culturelles», comme le dit Amazon, fait référence à la combinaison d'approches utilisées par les développeurs de logiciels et ceux qui ont une expertise en matière d'infrastructure ou d'exploitation de logiciels. En brisant la barrière traditionnelle entre ces pratiques, une culture DevOps cherche à donner aux organisations les moyens de bénéficier des atouts distincts que les développeurs et les experts en infrastructure apportent à la table. La mise en œuvre réussie des principes DevOps "nécessite un changement de culture et d'état d'esprit" pour les entreprises qui cloisonnent ces différents types d'ingénieurs. Comme Emily Dowdle l'a décrit lors du Nordic API Platform Summit 2016, la suppression des barrières contribue également à atténuer les frictions naturelles qui peuvent parfois exister entre les développeurs et les experts en infrastructure et à favoriser un environnement de travail plus convivial et coopératif.
En termes simples, DevOps consiste à traduire des processus manuels complexes impliquant une interaction humaine sujette aux erreurs en une approche instrumentée qui peut être testée, mesurée et facilement mise à l'échelle.
Armé d'une compréhension de ce à quoi ressemblent un praticien et une culture DevOps, ce que DevOps signifie en tant que pratique devient plus évident. En termes simples, DevOps consiste à traduire des processus manuels complexes impliquant une interaction humaine sujette aux erreurs en une approche instrumentée qui peut être testée, mesurée et facilement mise à l'échelle. Par exemple, si un développeur souhaite créer un environnement permettant aux utilisateurs professionnels de fournir des commentaires, il peut lancer un processus automatisé dans lequel le développeur peut émettre une commande créée par l'équipe DevOps (plutôt que de transmettre un morceau de code à l'équipe d'infrastructure), qui exécute la tâche pertinente de manière cohérente et testée, en obtenant rapidement les résultats attendus et en permettant la collaboration.
Une définition complète de DevOps nécessite une compréhension de ce que cela signifie en tant que type d'ingénieur, de culture et de pratique. Après avoir exploré ce que DevOps signifie de ces points de vue, il est maintenant important de se pencher sur ce à quoi ressemble DevOps lorsqu'il est mis en œuvre avec succès.
Votre boîte à outils DevOps
En plus du changement culturel susmentionné - passer d'une entreprise qui cloisonne les développeurs de logiciels et les experts en infrastructure à une entreprise qui embrasse leur collaboration - les entreprises doivent comprendre un certain nombre de pratiques et d'outils spécifiques cruciaux pour DevOps. Vous trouverez ci-dessous trois des plus cruciales (mais certainement pas les seules) de ces pratiques :
Automatisation : L'augmentation de l'efficacité est au cœur de DevOps, et ceci est largement obtenu grâce à l'automatisation d'une gamme de processus relativement lents et onéreux dans le développement de logiciels et la maintenance de l'infrastructure. Un exemple spécifique cité par Amazon est la pratique consistant à envoyer automatiquement des mises à jour logicielles relativement petites mais fréquentes. Cette pratique soulage les administrateurs système, qui pourraient autrement avoir à effectuer ces mises à jour manuellement. Comme le note Amazon, cette pratique a également l'avantage de réduire les risques liés au déploiement de logiciels en permettant aux administrateurs de détecter et de corriger plus facilement les bogues qui peuvent survenir. L'automatisation est la pierre angulaire de DevOps et est cruciale pour les autres pratiques DevOps décrites ci-dessous.

Intégration continue : à un niveau fondamental, DevOps concerne une collaboration étroite entre les ingénieurs et, en outre, des équipes entières. L'intégration continue fait référence à la pratique des ingénieurs partageant et fusionnant du code dans un emplacement central. Comme l'explique Amazon, "Dans le passé, les développeurs d'une équipe pouvaient travailler de manière isolée pendant une longue période et n'essayer de fusionner leurs modifications... qu'une fois leur travail terminé." Grâce à l'intégration continue, les ingénieurs peuvent collaborer plus efficacement et éviter les goulots d'étranglement associés au développement et à l'intégration de leur code de manière plus fragmentaire.
Livraison continue : la livraison continue fait référence à la pratique consistant à livrer et à mettre en œuvre automatiquement les modifications apportées aux produits logiciels au fur et à mesure qu'elles sont apportées. En d'autres termes, la livraison continue est activée par l'intégration continue, étant donné que les modifications apportées au code ne peuvent être efficacement transmises à l'ensemble du système que si le code est déjà hébergé dans un emplacement central. L'automatisation est également cruciale pour la livraison continue. En effet, l'exemple susmentionné d'envoi de petites mises à jour fréquentes des systèmes peut également être considéré comme un exemple de livraison continue. La livraison continue permet aux organisations de mettre en œuvre rapidement des changements et des améliorations, et elle permet aux ingénieurs de concentrer leur temps plus efficacement sur d'autres problèmes complexes.
Embaucher les bonnes personnes
Bien sûr, les entreprises doivent embaucher les bons ingénieurs pour que les pratiques ci-dessus soient mises en œuvre avec succès. Les ingénieurs DevOps doivent avoir un ensemble de compétences qui combinent l'expertise en développement de logiciels et en infrastructure de systèmes, et cette combinaison peut être difficile à trouver.
"Il est important qu'ils soient en mesure de combler le fossé entre le code brut et les défis auxquels l'entreprise doit faire face au quotidien, comme la réduction des frictions entre les idées, la livraison et les consommateurs."
Andrea Villa, ancienne ingénieur DevOps chez Atlassian et architecte système chez CloudReach avec 15 ans d'expérience dans l'administration système, la sécurité de l'information et les réseaux, estime que les ingénieurs DevOps ont besoin d'un large éventail d'expériences et de connaissances pour réussir.
"Pour être efficace, l'ingénieur DevOps d'aujourd'hui doit avoir une formation de développeur et posséder une large connaissance de l'administration système et des connaissances réseau", a déclaré Villa. "Il est important qu'ils soient en mesure de combler le fossé entre le code brut et les défis auxquels l'entreprise doit faire face au quotidien, comme la réduction des frictions entre les idées, la livraison et les consommateurs."
Se qualifier en tant qu'ingénieur DevOps fort est clairement plus facile à dire qu'à faire, et trouver de tels ingénieurs peut être tout aussi difficile. Néanmoins, comprendre les outils sous-jacents aux pratiques DevOps peut permettre à votre organisation d'adapter plus précisément les pratiques d'embauche pour trouver le bon talent et mettre en œuvre ces pratiques avec succès.
Pourquoi DevOps est vraiment important
L'utilisation des pratiques DevOps s'accompagne d'une gamme d'avantages, dont certains - notamment une efficacité, une sécurité et une collaboration organisationnelle accrues - ont déjà été articulés. Le rapport 2017 sur l'état du DevOps quantifie cette augmentation de l'efficacité, signalant que les organisations très performantes qui emploient des pratiques DevOps consacrent 21 % de temps en moins aux travaux non planifiés et aux retouches, et 44 % de temps en plus aux nouveaux travaux.
Plus généralement, cependant, la mise en œuvre réussie des pratiques DevOps peut avoir un impact profond sur votre entreprise en améliorant l'efficacité et l'exécution dans des domaines à la fois essentiels et résolument peu prestigieux.
Fredrik Haard, un ingénieur avec plus de 12 ans d'expérience DevOps qui a travaillé comme architecte cloud senior chez McKinsey et chez Wondersign, articule ce point plus en détail.
"Les bons ingénieurs DevOps doivent être un champion - et assumer la responsabilité de - tous les domaines qui pourraient ne pas être prioritaires pour l'organisation, tels que la sécurité des données, la reprise après sinistre, l'atténuation et les audits", a déclaré Haard. "Les choix que vous faites dans DevOps peuvent avoir des effets durables dans une entreprise."
Microsoft a également constaté ces effets positifs grâce à la mise en œuvre des pratiques DevOps dans son groupe d'ingénierie Cloud + Enterprise. Pour obtenir les meilleurs résultats, explique Microsoft, "nous avions besoin que l'ingénierie et les opérations travaillent en étroite collaboration tout au long du cycle de vie du développement, de la conception au déploiement en production". En passant à une culture DevOps et en utilisant les pratiques DevOps, Microsoft a pu évoluer et fournir des services de haute qualité à ses clients beaucoup plus rapidement qu'auparavant.
Résoudre ces problèmes et améliorer l'efficacité sont formidables en eux-mêmes, mais ils sont en fin de compte un moyen d'atteindre une fin plus fondamentale : produire des produits étonnants et générer plus de profits et de satisfaction client.
Les ingénieurs DevOps peuvent agir efficacement en tant qu'équipe commando interne d'une entreprise, aidant à résoudre un large éventail de problèmes qui, bien que peut-être peu glorieux ou hors de vue, sont absolument cruciaux pour le bon fonctionnement d'une entreprise.
Résoudre ces problèmes et améliorer l'efficacité sont formidables en eux-mêmes, mais ils sont en fin de compte un moyen d'atteindre une fin plus fondamentale : produire des produits étonnants et générer plus de profits et de satisfaction client. La raison la plus importante pour laquelle DevOps est vraiment important est peut-être qu'il peut permettre aux organisations de maximiser chacune de ces métriques.
Faire face au futur avec DevOps
En 2015, Scott Weiss, associé d'Andreessen Horowitz, a déclaré que DevOps est «plus qu'une simple méthodologie. C'est un ensemble de compétences indispensables pour le programmeur moderne - et devient de plus en plus son propre département.
Cela s'est avéré vrai, car une gamme d'entreprises technologiques, dont Amazon, Microsoft et Google, ont constitué des équipes DevOps et consacré des ressources importantes au renforcement de l'expertise dans l'espace. Weiss et d'autres acteurs majeurs de la technologie considèrent DevOps non seulement comme une mode passagère, mais plutôt comme un élément clé de l'avenir du logiciel.
DevOps continuera d'être particulièrement essentiel à mesure que les industries deviennent plus dépendantes de l'infrastructure cloud. Dans un rapport de 2017, Gartner Research prévoyait que le marché des services cloud augmenterait de plus de 15 % par an jusqu'en 2020. Pour mettre cette croissance en termes de dollars, un article récent publié par Forbes indique que le marché du cloud computing passera d'environ 260 milliards de dollars en 2017 à environ 411 milliards de dollars en 2020. DevOps peut faire une énorme différence dans la rapidité avec laquelle votre entreprise migre avec succès des systèmes vers le cloud. Chez Toptal, nous utilisons DevOps depuis le début - et cela fait partie intégrante de notre succès en tant qu'entreprise cloud en hypercroissance.
Tout comme le marché des services cloud se développe à un rythme rapide, l'importance de DevOps est également importante. Que ce soit dans l'énergie, la santé ou l'enseignement supérieur, votre entreprise devra développer une expertise DevOps. Comprendre ce qu'est DevOps, comment il est mis en œuvre et pourquoi il est si important représente une première étape essentielle lorsque vous envisagez d'utiliser cette pratique clé à l'avenir.