Fondations et concepts DevOps

Dans cet article, nous couvrirons les fondations, les concepts et les pratiques qui sont essentiels pour quiconque travaille dans un environnement DevOps.

Nous couvrirons les éléments suivants:

  • Culture - La culture de collaboration entre Dev et Ops
  • Les pratiques - Les pratiques qui soutiennent les objectifs de la culture DevOps
  • Outils - Les outils qui aident à mettre en œuvre les pratiques DevOps
  • Nuage - La relation étroite entre DevOps et le cloud


Qu'est-ce que DevOps

DevOps = Dev (développement) + Ops (opérations)


Cette définition de Wikipédia est un bon point de départ:

«DevOps est une culture et une pratique d'ingénierie logicielle qui vise à unifier le développement logiciel (Dev) et l'exploitation logicielle (Ops)… DevOps vise des cycles de développement plus courts, une fréquence de déploiement accrue, des versions plus fiables, en étroite adéquation avec les objectifs commerciaux.


DevOps est

  • DevOps est d'abord une culture de collaboration entre les développeurs et les opérateurs
  • Cette culture a donné lieu à un ensemble de pratiques
  • DevOps est une façon de travailler
  • DevOps est un mouvement, par des praticiens, pour des praticiens

DevOps n'est pas

  • DevOps n'est PAS un ensemble d'outils, mais les outils sont essentiels au succès dans DevOps
  • DevOps n'est PAS un standard
  • DevOps n'est PAS un produit
  • DevOps n'est PAS un titre de poste


Culture DevOps

La culture DevOps concerne collaboration entre Dev et Ops. Traditionnellement, les deux travaillaient séparément et avaient différent et opposé buts.

Dans le cadre de la culture DevOps, Dev et Ops travaillent ensemble et partagent même objectif . C'est-à-dire que les développeurs se soucient autant de la stabilité que de la vitesse, et les ops se soucient de la vitesse ainsi que de la stabilité.

Les rôles traditionnels des développeurs et des ingénieurs opérationnels deviennent flous sous DevOps.

Au lieu de «jeter du code par-dessus le mur», les développeurs et les opérateurs travaillent ensemble pour créer et utiliser des outils et des processus qui prennent en charge à la fois la vitesse et la stabilité.


Avec DevOps:

  • Dev et Ops jouent dans la même équipe

  • Le développement et les opérations partagent les mêmes objectifs



    • Délai de mise sur le marché rapide (TTM)

    • Quelques échecs de production

    • Récupération immédiate des pannes



Silos traditionnels

Quel était le problème avec les silos traditionnels?

Sous les silos traditionnels:


  • Les développeurs écrivent du code
  • «Jetez-le par-dessus le mur» pour le contrôle qualité
  • Le code rebondit entre le développement et le contrôle qualité à mesure que le contrôle qualité découvre les problèmes et que les développeurs les résolvent
  • Enfin, il est prêt pour la production
  • QA / Dev «jette le code par-dessus le mur» aux opérations
  • S'il y a un problème, Ops le renvoie par-dessus le mur à Dev
  • Le domaine de chaque groupe est une 'boîte noire' pour les autres groupes
  • Les Ops diraient: «Nos systèmes fonctionnent bien; c'est votre code! »
  • Dev dirait: 'Mais le code fonctionne sur ma machine!'

Cette façon de travailler conduit à beaucoup de pointer du doigt - les opérations étant une boîte noire, les développeurs ne leur font pas vraiment confiance et les opérateurs ne font pas vraiment confiance aux développeurs.

Le développement et les opérations ont des priorités différentes - Ops considère les développeurs comme une rupture de la stabilité et les développeurs voient les opérations comme un obstacle à la livraison de leur code.

Même s'ils VEULENT travailler ensemble, le développement est mesuré en fournissant des fonctionnalités, ce qui signifie déployer des changements et Ops est mesuré par le temps de disponibilité, mais les changements sont mauvais pour la stabilité.

Inconvénients des silos traditionnels

  • Les «boîtes noires» mènent à pointer du doigt
  • Un processus long signifie un temps de mise sur le marché lent
  • Le manque d'automatisation signifie que des éléments tels que les versions et les déploiements sont incohérents
  • Il faut beaucoup de temps pour identifier et résoudre les problèmes


Fusion du développement et des opérations (DevOps)

Comment DevOps résout-il les problèmes de silos traditionnels?


Sous le modèle DevOps:

  • Les développeurs écrivent du code
  • La validation de code déclenche la construction, l'intégration et les tests automatisés
  • L'assurance qualité peut mettre la main dessus presque immédiatement
  • Une fois qu'il est prêt, lancez un déploiement automatisé en production
  • Puisque tout est automatisé, il est beaucoup plus facile à déployer tout en gardant les choses stables
  • Les déploiements peuvent se produire beaucoup plus fréquemment, mettant les fonctionnalités entre les mains des clients plus rapidement
  • Si le dernier déploiement interrompt quelque chose en production, la surveillance automatisée en informe immédiatement l'équipe
  • L'équipe effectue une restauration en déployant la version de travail précédente, résolvant le problème rapidement
  • Une heure plus tard, l'équipe de développement est en mesure de déployer une version fixe du nouveau code

Le développement et les opérations ont travaillé ensemble pour donner la priorité à la rapidité de livraison et à la stabilité.

L'automatisation a conduit à la cohérence - La construction, les tests et le déploiement se sont déroulés de la même manière à chaque fois, beaucoup plus rapidement et plus souvent

Une bonne surveillance, ainsi que le processus de déploiement rapide, garantissaient que les problèmes pouvaient être résolus avant même que les utilisateurs ne les remarquent. Même si un changement de code a causé un problème, les utilisateurs ont connu peu ou pas de temps d'arrêt.


Avantages de DevOps

  • Les équipes techniques ont tendance à être plus heureuses de faire du DevOps que d'être sous des silos traditionnels
  • Plus de temps pour innover et moins de temps pour éteindre les incendies
  • Les développeurs et les opérations partagent le même objectif, à savoir la rapidité de livraison et la stabilité du système.
  • Le mode de travail DevOps offre aux clients les fonctionnalités qu'ils souhaitent de manière rapide et fiable.