GNU/Linux >> Tutoriels Linux >  >> Linux

Repenser DevOps :de quoi s'agit-il ?

Depuis que j'ai commencé à travailler avec diverses applications Web chez Linux Handbook et High On Cloud, le terme DevOps a attiré mon attention à plusieurs reprises, car c'est quelque chose que nous couvrons spécifiquement dans Linux Handbook.

Nous avons couvert des didacticiels sur de nombreux outils liés à DevOps, mais nous n'avons jamais vraiment essayé d'explorer le concept réel en profondeur. Étant donné que le manuel Linux est dédié aux serveurs Linux , nous devons également explorer leur rôle important dans le domaine DevOps.

Mais avant cela, il est essentiel de comprendre ce qu'est vraiment DevOps. DevOps est un mot à la mode extrêmement populaire et vous en trouverez plusieurs définitions sur le Web. Mais sur la base de mes propres expériences, je suis arrivé à la définition et aux réflexions concluantes suivantes désormais. C'est une tentative de revisiter les normes DevOps existantes et de les repenser sous la forme d'un nouveau modèle que je propose ici.

Qu'est-ce que DevOps ?

DevOps est un processus de simplification continu consistant à maintenir un équilibre délicat entre la fonctionnalité, la convivialité et la sécurité d'une application à la fois en termes de Dev mariage et Op rations .

Comment s'en assurer ?

S'assurer qu'une application évolue efficacement tout en étant opérationnelle est un défi permanent pour les ingénieurs DevOps. Pour ce faire, les composants les plus fondamentaux de DevOps doivent être surveillés en permanence.

Cycle de vie du développement d'applications (ADLC)

Créer une nouvelle application ? Vous commencez ici !

Le cycle de vie du développement d'applications est la motivation fondamentale derrière le développement de toute application. À moins que le processus de développement ne soit pas soigneusement et systématiquement surveillé, vous ne pouvez pas être absolument sûr de son développement sans faille. Une application sera toujours sous ADLC jusqu'à ce qu'elle soit prête pour la production.

L'ADLC est un principe d'ingénierie logicielle essentiel qui se compose de six étapes essentielles. Le développement d'une application implique les étapes suivantes :

  1. Plan conceptuel  :Façonner l'idée de base derrière l'application.
  2. Programmation :C'est à ce moment que l'application est créée et développée.
  3. Documents  :Une excellente application est inutile sans une documentation soignée (lisible par l'homme).
  4. Tests d'assurance qualité  :S'assurer que le produit final est fonctionnel, utilisable et sécurisé.
  5. Débogage  :Les bugs signalés lors des tests sont corrigés.
  6. Version de développement :La première version de l'application est sortie.

Tant qu'une version stable n'est pas disponible, ce cycle continuera d'exister. Une fois qu'un logiciel est publié en tant que version stable prête pour la production, il ne relève plus de l'ADLC. Il relève finalement du cycle de vie du développement du système (SDLC).

Cycle de vie du développement du système (SDLC)

Une partie de notre communauté DevOps pourrait dire qu'ADLC et SDLC sont une seule et même chose. Mais dans le scénario du monde réel, ce que je vois, c'est que l'ADLC et le SDLC sont assez différents.

Le cycle de vie du développement du système est la motivation fondamentale derrière le développement et l'exploitation d'une application. Il implique le développement continu de l'application après sa première version stable et assure son opérabilité continue.

  1. Plan conceptuel  :Revisiter l'idée de base derrière l'application.
  2. Programmation  :C'est à ce moment que l'application est développée davantage.
  3. Documents  :Mise à jour continue de la documentation lisible par l'homme.
  4. Tester la qualité des nouvelles versions  :S'assurer que le nouveau produit final est fonctionnel, utilisable et sécurisé.
  5. Débogage  :Les bugs signalés lors des tests sont corrigés.
  6. Version de développement  :Pour une nouvelle application (au niveau de la version ou de l'application elle-même), une version de développement évolue vers sa première version stable à ce stade.
  7. Version stable  :La dernière version stable est publiée en tant que produit avec des correctifs liés aux bogues/sécurité ainsi que de nouvelles fonctionnalités.
  8. Déploiement :Le produit stable est déployé sur le(s) serveur(s).
  9. Maintenance et surveillance  :Surveillance cohérente et périodique des serveurs et des applications qui y sont exécutées.

Un modèle ouvert alimenté par la communauté bénéficiera toujours de la maintenance la plus fluide. La dernière étape du cycle n'est vraiment réalisable qu'avec un modèle Open Source. C'est le plus grand facteur décisif en termes d'évolution de toute application.

Une application qui n'a pas encore de version stable ne peut pas être considérée comme terminée. Dès qu'une application est complètement construite, ADLC évolue en SDLC. Pourquoi ?

  • ADLC est purement un dév Modèle de mariage
  • SDLC est à la fois un dév mariage et Op rations Modèle

Comprenez-vous mon point maintenant? Sous ADLC, une application n'est pas prête pour la production, c'est pourquoi elle serait toujours en cours de développement. Par conséquent, nous ne pouvons pas l'appeler DevOps. Ce n'est que lorsque la première version stable est sortie qu'elle évolue vers SDLC, qui est DevOps, car une application prête pour la production deviendra alors opérationnelle en continu.

Comme il ressort des deux abréviations et du schéma ci-dessus, une application est très différente d'un système complet. Une demande n'est qu'une partie d'un processus systémique complet. C'est ce qui différencie SDLC de ADLC. Ainsi, ADLC est en fait un sous-ensemble de SDLC.

Le SDLC doit être constamment adapté par nous en tant que communauté, en gardant à l'esprit l'équilibre délicat entre fonctionnalité, convivialité et sécurité.

Présentation du nouveau triangle DevOps

Ce schéma n'est jamais le même car SDLC n'est jamais stationnaire. C'est le SDLC qui est continuellement pivoté dans le triangle par la communauté sur la base des retours continus des développeurs, des testeurs et des utilisateurs.

Un tel processus de pivotement est en constante évolution en fonction des exigences de l'application en cours de déploiement. Ce modèle en constante évolution dans le monde réel est le processus de DevOps.

L'emplacement du SDLC dans le triangle variera toujours d'une application à l'autre. L'emplacement pivoté dépend en fait de la nature de l'application en cours de déploiement tout en étant développé avec un œil attentif sur :

Fonctionnalité :La fonction principale de l'application. Par exemple, la possibilité d'envoyer des messages via Rocket.Chat.

Convivialité :La facilité d'utilisation de l'application. Par exemple, comment vous pouvez facilement envoyer des messages via Rocket.Chat.

Sécurité :Degré de sécurité de l'application. Par exemple, un correctif de bogue qui corrige une vulnérabilité Rocket.Chat telle que celle-ci.

Une communauté diversifiée qui soutient une application Open Source doit toujours maintenir un équilibre délicat entre fonctionnalité, convivialité et sécurité.

Mais comment en fait ?

Humilité au travail :précision ultime dans le pivotement

En fin de compte, les développeurs, les utilisateurs et les testeurs sont tous humains. Qu'elles soient locales ou virtuelles, les cultures et les lieux de travail DevOps doivent adopter l'idée simple de la compassion. Un lieu de travail qui pratique la gentillesse entre collègues ne peut qu'améliorer la productivité d'ADLC et de SDLC !

Il ne s'agit pas seulement d'applications Web, mais aussi de personnes. Ce sont eux qui les créent, les déploient et les maintiennent en permanence. C'est ce qu'est la communauté et c'est pourquoi DevOps est aussi une culture. La culture DevOps s'étend à la gestion non seulement d'une application Web, mais également des personnes qui en font une réalité.

Une approche Open Source rend l'ensemble de ce processus beaucoup plus réalisable qu'une approche propriétaire. C'est ce que j'ai ressenti en travaillant avec ce système collectif de personnes, de pratiques et de technologie .

J'ai hâte de continuer à partager mes réflexions dans ce genre à travers une série d'articles à suivre. Ce que je ressens, c'est que ce soit une petite, moyenne ou grande entreprise, DevOps est applicable partout mais sous la forme de modèles personnifiés.

Ce n'est qu'une petite partie de ce que j'ai hâte d'explorer à travers cette série. Partagez vos idées dans la section des commentaires ci-dessous. Merci d'avoir visité le manuel Linux !


Linux
  1. Ce que les administrateurs système doivent savoir sur l'utilisation de Bash

  2. Quel processus utilise toutes mes E/S de disque

  3. Qu'est-ce qui est vulnérable dans ce code C ?

  4. Tuez tous les processus liés à une application

  5. Noms d'hôte - De quoi s'agit-il ?

[Critique] Pear OS 8 :Tout est question d'apparence

Ce que vous devez savoir sur IPv6

Tout sur les domaines complémentaires

Tout sur le gestionnaire de fichiers (et ce que vous pouvez en faire)

Tout sur le disque Web

DevOps vs ingénieur logiciel :quelle est la différence ?