Quelle pourrait être une définition valide de DevOps pour le présenter à un novice?

16

J'ai fait / créé de nombreuses présentations liées à SCM, et maintenant j'essaie de "mettre à niveau" vers un successeur DevOps de celui-ci.

Ce que j'essaie toujours de faire dans mes présentations, c'est de produire une diapositive d'introduction qui comprend en quelque sorte le message que je veux livrer (et que j'élabore ensuite dans le reste de ma présentation). Ce faisant, j'essaie de répondre à ma propre question du type "Quelles seraient les phrases de 1 à 3 que je voudrais utiliser si je disposais de 10 à 20 secondes (seulement!) Pour l'expliquer à quelqu'un de nouveau? * ".

Je pensais que je savais ce que signifie réellement DevOps et de quoi il s'agit. Mais j'ai vu des usages / contextes bizarres de DevOps (même sur DevOps.SE ...). Je me demande si ce que je pense que DevOps est peut-être complètement faux.

Quelle est donc généralement la définition de DevOps?

Pierre.Vriens
la source
L'historique des commentaires a été déplacé vers le chat pour enregistrer comment une question peut être améliorée.
Tensibai
1
La principale chose que j'ai apprise en parlant à de nombreuses personnes est qu'il n'y a pas de définition convenue.
Boycott SE pour Monica Cellio
merci @XiongChiamiov ... il semble que vous connaissiez peut-être une ou plusieurs autres définitions ... Pourquoi ne pas essayer de les publier comme réponse supplémentaire?
Pierre.Vriens

Réponses:

11

DevOps en bref

De Wikipédia :

DevOps (un de composé clipsé de « logiciel DEV eloppement » et « technologies de l' information OP ration S ») est un terme utilisé pour désigner un ensemble de pratiques qui mettent l' accent sur la collaboration et la communication des deux développeurs de logiciels et technologies de l' information (TI) tout en automatisant le processus de livraison de logiciels et les changements d'infrastructure.

Il vise à établir une culture et un environnement où la création , le test et la publication de logiciels peuvent se produire rapidement, fréquemment et de manière plus fiable.

De l' aperçu :

entrez la description de l'image ici

Diagramme de Venn montrant DevOps comme l'intersection du développement (génie logiciel), des opérations et de l'assurance qualité (AQ)

Bien qu'il n'y ait pas un seul "outil" pour DevOps, mais plutôt un ensemble d'outils, également connu sous le nom de chaîne d'outils DevOps :

entrez la description de l'image ici

Illustration montrant les étapes d'une chaîne d'outils DevOps

Illustrations de DevOps

Voici quelques citations de certaines des questions sur DevOps.SE , qui semblent toutes en quelque sorte correspondre / confirmer une partie de la description de DevOps ci-dessus:

DevOps n'est PAS un rôle

Voici quelques citations de certaines des questions sur DevOps.SE , qui semblent toutes illustrer que DevOps n'est PAS un rôle:

Pierre.Vriens
la source
10

Je pratique et conseille DevOps en tant que consultant auprès de différents clients depuis près de cinq ans maintenant, avant mon poste actuel, j'ai occupé des postes dans le développement de logiciels, les opérations Web et l'administration de systèmes. D'après mon expérience personnelle , DevOps se décline en plusieurs versions.

Modèles d'organisation

DevOps Antipatterns:

  • NoOps et NoDevs - pas strictement DevOps au sens le plus strict, cependant, ces équipes construisent et exploitent des logiciels sans séparation entre le développement et les opérations. Les défis avec ces équipes sont à maturité, les équipes de développement peuvent être des développeurs de logiciels experts mais des opérateurs novices et vice versa.

  • Le pont DevOps - c'est là un ou plusieurs équipes chargée de reprendre le travail des équipes de développement et « Productionizing » pour le rendre utilisable. Le défi se résume à présent à deux transferts, à savoir Développement → DevOps et DevOps → Opérations.

  • L'équipe DevOps - cela peut sans doute fonctionner si l'équipe a la responsabilité de créer des outils qui prennent en charge le modèle d'exploitation compatible DevOps, cependant, cela devrait probablement être appelé une "équipe d'outils" ou une "équipe de plate-forme".

Modèles DevOps:

  • DevOps intégrés - plus communément appelé Platform Engineering, selon lequel un membre de l'équipe est responsable mais non responsable de la fourniture de l'automatisation, des outils et de l'infrastructure pour l'approvisionnement et le déploiement de la solution, y compris parfois l'exploitation du logiciel - dans mon esprit , c'est ce dernier qui est en fait représentatif de DevOps.

  • DevOps institutionnalisés - où une équipe de projet est conjointement responsable à la fois du développement et de l'exploitation d'un progiciel de création de propriété partagée et de boucles de rétroaction positive.

Les pratiques

La pratique actuelle de DevOps s'appuie sur plusieurs autres pratiques, à savoir:

Chacune des pratiques ci-dessus s'appuie sur l'autre, il est possible de ne pas suivre une pratique, cependant, cela signifie qu'un cycle de rétroaction important est manquant, ce qui peut indiquer une "opportunité manquée". Le principal facteur de différenciation entre le suivi de l'une des autres pratiques et DevOps est le fonctionnement du logiciel en production .

Pratiques DevOps

Les trois voies

Dans The Phoenix Project, Gene Kim et ses co-auteurs décrivent les trois méthodes de DevOps :

Pensée systémique

Pensée systémique

La première façon met l'accent sur la performance de l'ensemble du système, par opposition à la performance d'un silo spécifique de travail ou de service - cela peut être aussi important qu'une division (par exemple, développement ou opérations informatiques) ou aussi petit qu'un contributeur individuel (par exemple , développeur, administrateur système).

D'après mon expérience, commencer à amener les développeurs à prendre en compte les préoccupations opérationnelles et les exigences non fonctionnelles atteint cet objectif. Cela fait partie intégrante des aspects culturels de DevOps.

Amplification des boucles de rétroaction

Amplification des boucles de rétroaction

La deuxième façon consiste à créer des boucles de rétroaction de droite à gauche. Le but de presque toutes les initiatives d'amélioration des processus est de raccourcir et d'amplifier les boucles de rétroaction afin que les corrections nécessaires puissent être apportées en permanence.

J'y parviens généralement grâce à l'intégration / la livraison / le déploiement continus et à la surveillance et aux alertes partagées, ce qui correspond parfaitement au composant outils de DevOps.

Culture d'expérimentation continue et d'apprentissage

Culture d'expérimentation continue et d'apprentissage

La troisième voie consiste à créer une culture qui favorise deux choses: l'expérimentation continue, la prise de risques et l'apprentissage de l'échec; et comprendre que la répétition et la pratique sont la condition préalable à la maîtrise.

Cela s'intègre très bien dans l' espace culturel , même si cela dépend fortement des outils et des processus permettant à la culture de se développer.

Richard Slater
la source
Excellente réponse! bien que je suis tombé sur ce graphique comparaisons de différentes pratiques ... en particulier en ce qui concerne l'agile. Je pense que c'est un terme beaucoup trop large pour y appartenir. Les tests sont exclus bien que certaines méthodologies agiles placent les tests au cœur de leurs pratiques. On pourrait dire que DevOps est (ou peut dépendre de la façon dont il est mis en œuvre) très agile. Le manifeste agile représente plus une philosophie que des règles de pratique bien liées. Nitpicking plus que de vous plaindre, c'est une très belle réponse!
Newtopian
Je ne peux pas prendre tout le crédit pour ce diagramme, il a été dessiné par de nombreux consultants avant moi sur de nombreux tableaux blancs à travers le monde. Je suppose que cela décrit la pratique de l'agilité où les équipes se sont concentrées sur la création de produits potentiellement utilisables en courtes itérations, CI a suivi comme une pratique qui a automatisé une partie de ce travail, C.La livraison a été automatisée jusqu'à la préparation d'une build pour le déploiement, C.Le déploiement en fait déployé cette construction et DevOps exploite le logiciel en production.
Richard Slater
4

J'ai entendu beaucoup, beaucoup de définitions différentes de DevOps. Ils incluent:

  • Développeurs gérant des tâches opérationnelles
  • Une personne faisant deux fois plus de travail (dans le même temps)
  • Développeurs et équipes opérationnelles travaillant ensemble
  • Fonctionnement des opérations pour les outils de développement (dans la veine des "Web Ops")
  • Un titre de poste pour quelqu'un qui crée et maintient des outils de développement
  • L'utilisation de l'automatisation dans les opérations
  • L'utilisation des clouds publics dans les opérations
  • Un travail qui combine les aspects des opérations, du développement et de l'assurance qualité
  • Un métier qui consiste à aider les équipes de développement et d'exploitation à travailler ensemble
  • Une philosophie pour abattre les barrières entre les équipes
  • Traiter l'infrastructure comme du code
  • Ce que vous obtenez lorsque d'anciens ingénieurs logiciels entrent en exploitation
  • Un mot à la mode complètement vide de sens

Il n'y a pas de consensus public sur ce fait Devops est . Il y a quelques années, nous avions des problèmes similaires avec "Agile", et cela a une définition écrite .

Lors de la présentation de vos concepts à un nouveau venu, je me concentrerais sur l'introduction des concepts, plutôt que sur l'application d'une étiquette, sinon ils finiront par entendre des définitions contradictoires et seront confus. Par exemple, si vous essayez de parler d' infrastructure en tant que code , dites-leur que vous parlez d'infrastructure en tant que code. Plus vous pouvez être précis, mieux c'est, car même avec des définitions convenues, la plupart des entreprises se concentrent davantage sur certaines parties d'une philosophie.

Boycott SE pour Monica Cellio
la source
2

La définition que j'utilise toujours dans cette situation est la suivante:

«Une culture de création de logiciels qui met l'accent sur la communication et la collaboration entre les équipes de développement logiciel et d'exploitation tout en automatisant le processus de livraison de logiciels et les changements d'infrastructure. L'objectif de DevOps est de rendre le processus de création, de test et de déploiement de logiciels aussi fréquent, rapide et possible. »

Cependant, avec la définition, il est également important qu'ils comprennent POURQUOI nous avons besoin de DevOps. Assurez-vous de leur dire que DevOps atténue les défauts logiciels plus rapidement, permet une meilleure gestion des ressources, moins d'erreurs humaines, un meilleur contrôle des versions, un environnement d'exploitation stable, etc.

DevOps Jedi
la source
1

Par le document de recherche scientifique suivant pour explorer exactement cette question, «Qu'est-ce que DevOps», la définition dérivée proposée de DevOps est:

DevOps est une méthodologie de développement visant à combler l'écart entre le développement (Dev) et les opérations (Ops), mettant l'accent sur la communication et la collaboration, l'intégration continue, l'assurance qualité et la livraison avec un déploiement automatisé utilisant un ensemble de pratiques de développement.

[Jabbari et al.] "Qu'est-ce que DevOps?: Une étude de cartographie systématique des définitions et des pratiques" (2016)

Peter Muryshkin
la source
-2

Devops est la pratique de développement de l'écriture d'applications dont le domaine d' activité est les opérations. Lorsque la plupart des développements d'applications se concentrent sur la création d'applications qui financent ou les soins de santé ou la logistique ou les vidéos de chat, devops se concentre sur les applications qui permettent les générations, les déploiements, la surveillance et la collecte de métriques.

L'objectif primordial doit toujours être de permettre aux décideurs de devenir des décideurs . Imaginez l'application mobile de votre banque. Lorsque vous demandez un transfert, cela se produit lorsque vous appuyez sur le bouton. Vous avez pris une décision, puis vous avez pris la décision. Même chose pour vos opérations. Lorsque la personne appropriée décide qu'un travail est prêt à être déployé en production, elle devrait être en mesure d'appuyer sur un bouton et sur "Right Things Happen". De même, ils devraient disposer de toutes les informations nécessaires pour prendre les bonnes décisions commerciales.

Il ne s'agit pas de donner aux gens d'affaires un accès shell aux serveurs - c'est un objectif confondant avec la mise en œuvre. Il s'agit de fournir aux bons boutons et leviers les bonnes informations et les bons garde-corps aux bonnes personnes afin que les décideurs soient des décideurs.

Rob Kinyon
la source
1
whose business domain is operations: Possible de développer cela ou de donner quelques exemples?
Dawny33
Je ne suis pas d'accord, devops est un modèle d'organisation pour soutenir les développements logiciels et non une pratique de développement en soi, vous pouvez faire une programmation extrême dans un modèle devops (mixin dev, ops, clients et testers par exemple) (le reste de la réponse a de bons points btw )
Tensibai
La définition de base de "Devops est la pratique de développement de l'écriture d'applications dont le domaine d'activité est les opérations" n'est pas celle à laquelle j'ai jamais vu quelqu'un d'autre s'abonner. L'écriture d'applications, quel que soit le domaine ou l'objectif, est du développement et non du DevOps.
Adrian