LFCA apprenez les concepts de base de DevOps - partie 21

LFCA apprenez les concepts de base de DevOps - partie 21

DevOps est un sujet tendance depuis un certain temps maintenant et a réussi à attirer l'attention des professionnels de la technologie et des entreprises. En tant que débutant, il peut être difficile de contourner votre tête dans le concept de DevOps, Et dans ce sujet, nous étoufferons les concepts de base de ce mot à la mode Internet.

Pour commencer, DevOps est un portmanteau de deux mots: Développement et Opérations. Il s'agit d'un ensemble de pratiques et d'outils qui favorisent la collaboration entre les équipes de développement (Développeurs) et les opérations (Opérations). L'objectif de DevOps est de rationaliser le cycle de vie du développement des logiciels, de minimiser les taux de défaillance, d'élargir la fréquence des déploiements et d'atteindre des logiciels de haute qualité.

Pour mieux comprendre DevOps Dans l'environnement informatique moderne d'aujourd'hui, jetons un coup d'œil à la façon dont le modèle de déploiement était avant l'avènement de DevOps.

Les pratiques informatiques traditionnelles

Avant DevOps, Les équipes de développement et les ingénieurs d'AQ ont utilisé le modèle de cascade classique. Le paysage de travail était largement cloisonné et les tests et le déploiement des applications se sont produits en isolement complet. Cela a entraîné des chevauchements, des lacunes, des retards de rétroaction et d'autres inefficacités qui ont nécessité un temps supplémentaire pour terminer le projet. Une rétroaction limitée et retardée signifiait que la qualité du logiciel n'a pas été entièrement vérifiée avant la dernière phase de développement.

De plus, le déploiement manuel du code a été occasionné par des erreurs humaines et a donc demandé plus de temps dans les applications de débogage. De plus, différentes équipes avaient diverses délais pour accomplir leurs tâches et il n'était pas rare que les délais ne se synchronisent pas de nouveaux retards dans la réalisation du produit final.

Entrez DevOps

Le concept de DevOps a été conçu entre 2007 et 2010 par deux développeurs: Andrew Shafer et Patrick Debois. Depuis sa création, il a favorisé une collaboration fluide entre les équipes d'exploitation et de développement à chaque étape du cycle de vie du développement logiciel. Cela a annoncé de nouveaux concepts tels que Intégration continue ( CI ) & Livraison continue ( CD ) Et bien d'autres qui contribuent à la livraison rapide des logiciels.

Modèle et pratiques DevOps

DevOps n'est pas seulement une question de collaboration et d'avoir le bon état d'esprit pour atteindre un objectif. Il englobe les meilleures pratiques qui visent à aider à fournir des logiciels de qualité et prêt pour le marché dans les plus brefs délais. Jetons un coup d'œil à certaines de ces meilleures pratiques qui vous aideront à augmenter l'efficacité et la livraison rapide du code.

Intégration continue (IC)

Intégration continue est une pratique de développement de logiciels où les développeurs fusionnent le code qui se transforme en un seul référentiel. Par la suite, des tests et builds automatisés sont exécutés sur le code. L'objectif de l'intégration continue est d'accélérer le débogage des applications, de réduire le temps pris pour publier de nouvelles mises à jour logicielles et améliorer la qualité du logiciel.

Livraison continue (CD)

Livraison continue (CD) est encore une autre pratique où les modifications de code sont automatiquement construites et déployées pour des tests vigoureux. Plus tard, des tests automatisés sont exécutés par rapport au code déployé afin de permettre aux développeurs d'identifier et de fixer les bogues. Habituellement, le code est progressivement soumis à plusieurs environnements de test où, grâce à une procédure automatisée standard, le code atteint la plus grande note de qualité.

Les outils populaires CI / CD incluent Jenkins, Travis CI, Circle CI, Azure DevOps et AWS Code Build.

Tests continus

L'objectif des tests continus est d'identifier les bogues et les risques potentiels dans les premiers stades du cycle de vie de développement logiciel afin de minimiser les erreurs qui se manifesteraient dans le produit final. Lorsque le code échoue aux tests vigoureux, il est généralement renvoyé au développeur pour révision avant d'être transmis au service d'assurance qualité pour les évaluations et les tests fonctionnels. Les outils de test continu largement utilisés incluent Travis et Selenium.

Surveillance continue et loggin

Comme vous vous en doutez, les applications et l'infrastructure sous-jacente nécessitent une surveillance continue pour vérifier leur identité de performance toute erreur ou défaut et assurer la conformité à diverses normes de l'industrie. Une grande variété de mesures sont surveillées, notamment:

  • Mémoire et utilisation du processeur
  • Utilisation de l'espace disque
  • Utilisation de la bande passante
  • Interaction client

En surveillant et en analysant les données et les journaux générés par les applications, les développeurs peuvent facilement obtenir un aperçu de l'impact des fonctionnalités ou configurations. De plus, la configuration des alertes contribuera à l'identification des erreurs ou des modifications indésirables à chaque étape du processus. En fin de compte, la surveillance continue garantit la haute disponibilité des applications et inspire la confiance que les choses fonctionnent comme prévu.

Les outils de surveillance populaires incluent Prometheus, Grafana, Nagios, Zabbix et NetData pour en mentionner quelques-uns.

Infrastructure comme code

Abrégé comme IAC, Infrastructure comme code est décrit comme le déploiement et la gestion de ressources telles que les serveurs virtuels et les équilibreurs de chargement à l'aide de fichiers de configuration lisibles par machine par opposition aux outils de configuration interactifs. Ceci est particulièrement essentiel dans les environnements cloud tels que AWS où vous pouvez facilement faire tourner les instances de calcul en définissant les détails de l'instance dans un fichier de configuration et en tirant parti d'outils tels que Terraform pour déployer les ressources.

Par exemple, AMATON AWS Fournit des API qui permettent aux utilisateurs d'interagir par programme avec la plate-forme cloud à partir de la ligne de commande. Cela facilite le déploiement rapide des ressources en éliminant les processus manuels et Slack. Autrement dit, IAC fait plus de travail dans une courte durée.

Microservices

L'architecture des microservices est l'endroit où une seule application est une intégration ou une fusion de divers services plus petits couplés. Chaque service s'exécute indépendamment et communique avec le reste des applications à l'aide d'API basée sur HTTP. Les microservices peuvent être déployés en tant que groupe S de services ou un seul service

L'architecture des microservices est très différente de l'architecture monolithique traditionnelle. Dans l'architecture traditionnelle, les applications sont à un seul niveau et tous les composants, y compris le code et l'interface utilisateur, sont regroupés dans un seul programme.

Les microservices facilitent le déploiement indépendant et la gestion des ressources. Ils garantissent également la haute disponibilité en empêchant un seul point de défaillance. Lorsqu'une seule application se bloque, le reste continuera de fonctionner.

Avantages du modèle DevOps

Ayant regardé DevOps Meilleures pratiques, concentrons-nous maintenant sur les avantages de l'adoption du modèle DevOps.

Amélioration de l'efficacité et de la productivité entre les équipes

La collaboration entre les équipes de développement et d'opération se traduit par la responsabilité conjointe, ce qui stimule finalement la productivité et favorise l'engagement de l'équipe.

Réduction des chances de défaillance du produit

La collaboration permet également aux équipes de déboguer facilement le code à chaque étape avant de passer à la phase finale. Cela donne un logiciel de haute qualité et prêt pour le marché.

Livraison rapide du logiciel

Le déploiement des applications est plus rationalisé et beaucoup plus rapide grâce aux outils d'automatisation que DevOps fournit (comme ANSIBL, chef et marionnette) et l'intégration continue avancée (CI).

Plus de transparence des produits

Étant donné que la connaissance du produit est répartie sur divers départements, il y a un objectif et une vision clairs du produit, se traduisant par une meilleure prise de décision à chaque étape du développement

Résumé

La croyance enracinée selon laquelle les équipes de développement et d'opération doivent toujours travailler séparément sont obsolètes et défectueuses. La philosophie tléginée peut encore être vivante dans certaines industries, mais cela a entraîné des inefficacités flagrantes en cours de route.

DevOps cherche à intégrer les équipes de développement et d'exploitation et à favoriser un passage culturel de l'ancienne façon de travailler dans les silos à travailler en tandem pour réduire les erreurs de code, améliorer la qualité des logiciels, accélérer les délais de livraison et augmenter la productivité globale. En fin de compte, l'utilisateur final se retrouve avec un produit de haute qualité en temps opportun.

Devenez un associé IT Certified IT (LFCA)