Outils DevOps que tout le monde devrait apprendre en 2020

Commencez Ă  utiliser les meilleurs outils DevOps dĂšs aujourd'hui !

Outils DevOps que tout le monde devrait apprendre en 2020
La rĂ©volution DevOps a enfin conquis le monde et les outils DevOps sont devenus incroyablement populaires. Selon le service Google Trends , le nombre de demandes d’« outils DevOps » ne cesse de croĂźtre, et cette tendance se poursuit.

La mĂ©thodologie DevOps couvre l'ensemble du cycle de vie du dĂ©veloppement logiciel, afin que les professionnels puissent choisir parmi une variĂ©tĂ© d'outils. Mais comme vous le savez, aucun outil ne peut devenir un outil universel pour tout le monde. Cependant, certaines solutions offrent une telle diversitĂ© de fonctions qu’elles peuvent gĂ©rer presque toutes les tĂąches.

Divisons les outils DevOps en catégories et comparons-les avec leurs analogues :

  • outils de dĂ©veloppement et de construction
  • outils d'automatisation des tests
  • outils pour organiser le dĂ©ploiement
  • Outils d'exĂ©cution
  • outils de collaboration.

Une mise en Ɠuvre rĂ©ussie et rĂ©flĂ©chie Praticien DevOps comprend des instruments des cinq groupes Ă©numĂ©rĂ©s ci-dessus. Analysez l'ensemble d'outils actuel de votre projet afin de ne pas manquer un Ă©lĂ©ment important du pipeline CI/CD.

Outils de développement et de construction

Outils DevOps que tout le monde devrait apprendre en 2020
C'est la base de la pile de pipelines CI/CD. Tout commence ici ! Les meilleurs outils de cette catĂ©gorie peuvent gĂ©rer plusieurs flux d’évĂ©nements et s’intĂ©grer facilement Ă  d’autres produits.

À ce stade du cycle de vie du dĂ©veloppement, il existe trois groupes d'outils :

  • systĂšme de contrĂŽle de version (SCM)
  • intĂ©gration continue (CI)
  • Gestion de donnĂ©es

GIT a eu un bilan positif en 2020, votre outil SCM doit donc avoir une prise en charge transparente pour GIT. Pour CI, une condition prĂ©alable est la capacitĂ© d’exĂ©cuter et d’exĂ©cuter des builds dans un environnement de conteneur isolĂ©. En ce qui concerne la gestion des donnĂ©es, elle nĂ©cessite la capacitĂ© d'apporter des modifications au schĂ©ma de la base de donnĂ©es et de maintenir la base de donnĂ©es en fonction de la version de l'application.

Outil SCM + CI n°1

Gagnant: GitLab et GitLab-CI

Outils DevOps que tout le monde devrait apprendre en 2020
Le meilleur outil du cycle DevOps 2020 est sans aucun doute GitLab, et il continuera certainement Ă  ĂȘtre Ă  la pointe de l'innovation dans un avenir proche.

La fonction principale de GitLab est de fournir une gestion confortable d'un référentiel Git. L'interface Web est intuitive et facile à utiliser. GitLab fournit tout ce dont vous avez besoin dans une version gratuite et est disponible en SaaS et sur site (en utilisant vos propres ressources pour héberger le logiciel).

Aucun autre outil SCM n'a utilisé l'intégration continue (CI) directement sur votre référentiel, et GitLab le fait depuis longtemps. Pour utiliser GitLab-CI, vous devez ajouter un fichier .gitlab-ci.yml à la racine de votre code source, et toute modification apportée au projet déclenchera des actions basées exactement sur ce que vous avez spécifié. GitLab et GitLab-CI sont à juste titre reconnus comme leaders dans le domaine de l'intégration continue (CI-as-code).

Avantages clés

  • FiabilitĂ© - Le produit est sur le marchĂ© depuis 2013 ; Ă©curie; Bien soutenu.
  • Open Source – La version gratuite de GitLab ne limite pas les fonctionnalitĂ©s de base dont les Ă©quipes de dĂ©veloppement ont besoin. Les packages de services payants offrent des fonctionnalitĂ©s supplĂ©mentaires utiles aux entreprises de tailles et de besoins variĂ©s.
  • CI engrainĂ©e - Aucun autre outil sur le marchĂ© n'a construit une intĂ©gration continue directement dans SCM comme GitLab-CI. L'utilisation de Docker garantit des builds isolĂ©s sans tracas et les rapports intĂ©grĂ©s facilitent le dĂ©bogage. Nous n’avons pas besoin d’une intĂ©gration et d’une gestion complexes de plusieurs outils en mĂȘme temps.
  • IntĂ©grations illimitĂ©es – GitLab permet une intĂ©gration facile de tous les outils DevOps dont vous avez besoin. Cela garantit que les Ă©quipes de dĂ©veloppement et de maintenance disposent d’une source unique d’informations sur leur application dans n’importe quel environnement.

concurrents

A participé à la bataille, mais n'a pas gagné

Il existe d'autres outils populaires dans cette catégorie, mais ils ne sont pas aussi performants que GitLab. Et c'est pourquoi:

GitHub — Il s'agit d'un excellent systĂšme de contrĂŽle de version SaaS pour les petites entreprises et les premiers stades de dĂ©veloppement. Pour les grandes entreprises pour lesquelles il est important de conserver les adresses IP sur leur propre rĂ©seau, la seule solution de GitHub Ă©tait la machine virtuelle .OVA sans prise en charge des systĂšmes Ă  haute disponibilitĂ©. Cela rend la maintenance sur site difficile ; de plus, .OVA ne convient qu'aux entreprises de taille moyenne, sinon le serveur plantera simplement sous une charge plus importante. L'absence d'actions GitHub (jusqu'Ă  rĂ©cemment et pas encore dans une version sur site) ou de CI-as-code signifie que vous devez choisir un outil CI distinct, puis gĂ©rer cette intĂ©gration. Enfin, GitHub est beaucoup plus cher que les deux versions de GitLab.

Jenkins — Bien que Jenkins soit considĂ©rĂ© par dĂ©faut comme le standard parmi les outils d'intĂ©gration continue, il a toujours manquĂ© de capacitĂ©s de contrĂŽle de version. Il s'avĂšre que vous utilisez Jenkins ainsi qu'une sorte d'outil SCM. C'est trop difficile quand GitLab peut faire les deux. Une conception UX mĂ©diocre ne convient pas Ă  une application Web moderne et laisse beaucoup Ă  dĂ©sirer.

BitBucket/Bambou — Je dois le reconnaĂźtre comme un perdant automatique : pourquoi deux outils quand GitLab fait tout en toute indĂ©pendance. BitBucket Cloud prend en charge la fonctionnalitĂ© GitLab-CI / GitHub Action, mais aucune entreprise plus grande qu'une startup ne peut facilement la mettre en Ɠuvre. Le serveur BitBucket sur site ne prend mĂȘme pas en charge les pipelines BitBucket !

Outil de gestion de données n°1

Gagnant: Voie de migrationDB

Outils DevOps que tout le monde devrait apprendre en 2020
Dans le dĂ©veloppement d’applications Web, l’automatisation des bases de donnĂ©es n’a gĂ©nĂ©ralement pas d’importance. L'idĂ©e de dĂ©ployer des modifications du schĂ©ma de base de donnĂ©es pour les nouvelles versions de l'application arrive tardivement. Les modifications de schĂ©ma entraĂźnent souvent l'ajout et le renommage de colonnes ou de tables. Si la version de l'application ne correspond pas Ă  la version du schĂ©ma, l'application peut planter. De plus, la gestion des modifications de la base de donnĂ©es lors de la mise Ă  jour d'une application peut s'avĂ©rer difficile car il existe deux systĂšmes diffĂ©rents. FlyWayDB rĂ©sout tous ces problĂšmes.

Avantages clés

  • Gestion des versions de base de donnĂ©es - Flyway vous permet de crĂ©er des versions de base de donnĂ©es, de suivre les migrations de bases de donnĂ©es et de transfĂ©rer ou d'annuler facilement les modifications de schĂ©ma sans outil supplĂ©mentaire pour cela.
  • Binaire ou intĂ©grĂ© - Nous pouvons choisir d'exĂ©cuter Flyway dans le cadre de l'application ou en tant qu'exĂ©cutable binaire. Flyway vĂ©rifie la compatibilitĂ© des versions au dĂ©marrage et dĂ©marre les migrations appropriĂ©es, en gardant les versions de base de donnĂ©es et d'application synchronisĂ©es. En exĂ©cutant la commande ad hoc cmd line, nous offrons de la flexibilitĂ© aux bases de donnĂ©es existantes sans reconstruire l'intĂ©gralitĂ© de l'application.

concurrents

A participé à la bataille, mais n'a pas gagné

Il n'y a pas beaucoup d'outils dans ce domaine. Examinons-en quelques-uns :

LiquiBase — Liquibase ressemble Ă  FlywayDB. J'aimerais l'installer au-dessus de Flyway si j'avais quelqu'un dans mon Ă©quipe avec plus d'expĂ©rience avec Liquibase.

Flocteur - Ne peut fonctionner que pour les applications conteneurisĂ©es. Pour exĂ©cuter avec succĂšs des bases de donnĂ©es conteneurisĂ©es, tout doit ĂȘtre parfaitement planifiĂ©. Je recommande d'utiliser RDS (Relational Database Service) pour les bases de donnĂ©es et ne conseille pas de stocker des informations importantes dans un conteneur.

Outils d'automatisation des tests

Outils DevOps que tout le monde devrait apprendre en 2020
Commençons notre discussion sur les outils d'automatisation des tests en les classant en fonction de la pyramide des tests.

La pyramide des tests (tests) comporte 4 niveaux :

  • Tests unitaires - C'est la base de l'ensemble du processus de test automatisĂ©. Il devrait y avoir plus de tests unitaires par rapport aux autres types de tests. Les dĂ©veloppeurs Ă©crivent et exĂ©cutent des tests unitaires pour garantir qu'une partie d'une application (appelĂ©e « unitĂ© ») est conforme Ă  sa conception et se comporte comme prĂ©vu.
  • Tests de composants - L'objectif principal des tests de composants est de vĂ©rifier le comportement d'entrĂ©e/sortie de l'objet de test. Nous devons nous assurer que la fonctionnalitĂ© de l'objet de test est correctement implĂ©mentĂ©e conformĂ©ment Ă  la spĂ©cification.
  • Tests d'intĂ©gration - Un type de test dans lequel des modules logiciels individuels sont combinĂ©s et testĂ©s en groupe.
  • Tests de bout en bout : cette Ă©tape est explicite. Nous surveillons l’ensemble de l’application et veillons Ă  ce qu’elle fonctionne comme prĂ©vu.

Étant donnĂ© que les tests unitaires et les tests de composants sont effectuĂ©s uniquement par les dĂ©veloppeurs et sont souvent spĂ©cifiques au langage de programmation, nous n'Ă©valuerons pas ces outils pour le domaine DevOps.

Outil de test d'intégration n°1

Gagnant: Concombre

Outils DevOps que tout le monde devrait apprendre en 2020
Cucumber combine les spécifications et la documentation de test en un seul document évolutif. Les spécifications sont toujours à jour car elles sont automatiquement testées par Cucumber. Si vous souhaitez créer un cadre de test automatisé à partir de zéro et modéliser le comportement des utilisateurs dans une application Web, Selenium WebDriver avec Java et Cucumber BDD est un excellent moyen d'apprendre et d'implémenter Cucumber dans un projet.

Avantages clés

  • Approche BDD (Behaviour Driven Development - « dĂ©veloppement par le comportement » par opposition Ă  l'approche « dĂ©veloppement pilotĂ© par les tests ») - Cucumber est conçu pour les tests BDD, il a Ă©tĂ© créé Ă  l'origine pour cette tĂąche mĂȘme.
  • Documentation vivante – La documentation est toujours pĂ©nible ! Puisque vos tests sont Ă©crits sous forme de code, Cucumber teste la documentation gĂ©nĂ©rĂ©e automatiquement pour garantir que les tests et la documentation sont synchronisĂ©s.
  • Assistance - Nous pouvons choisir parmi de nombreux outils, mais Cucumber dispose des ressources financiĂšres nĂ©cessaires et d'un systĂšme d'assistance bien organisĂ© pour aider les utilisateurs dans toute situation difficile.

concurrents

A participé à la bataille, mais n'a pas gagné

Parmi d’autres frameworks et outils spĂ©cifiques Ă  la technologie, seul Cucumber peut ĂȘtre considĂ©rĂ© comme une solution universelle.

Outils de test de bout en bout

Lorsque vous effectuez des tests de bout en bout, vous devez vous concentrer sur deux points clĂ©s :

  • test fonctionel
  • Tests de rĂ©sistance.

Lors des tests fonctionnels, nous vérifions si tout ce que nous souhaitons se produit réellement. Par exemple, lorsque je clique sur certains éléments de mon SPA (candidature monopage), que je remplis les formulaires et que je sélectionne « Soumettre », les données apparaissent dans la base de données et le message « SuccÚs ! » apparaßt à l'écran.

Il est Ă©galement important pour nous de vĂ©rifier qu'un certain nombre d'utilisateurs exĂ©cutant le mĂȘme scĂ©nario peuvent ĂȘtre traitĂ©s sans erreur.

L’absence de ces 2 types de tests sera un inconvĂ©nient important dans votre pipeline CI/CD.

Outil de test de bout en bout n°1. Test fonctionel

Gagnant: SoapUI Pro

Outils DevOps que tout le monde devrait apprendre en 2020
SoapUI est prĂ©sent dans le domaine des tests d'API depuis longtemps puisque les services Web basĂ©s sur SOAP Ă©taient la norme. MĂȘme si nous ne crĂ©ons plus de nouveaux services SOAP et que le nom de l'outil n'a pas changĂ©, cela ne veut pas dire qu'il n'a pas Ă©voluĂ©. SoapUI fournit un excellent cadre pour crĂ©er des tests fonctionnels backend automatisĂ©s. Les tests peuvent ĂȘtre facilement combinĂ©s avec des outils d'intĂ©gration continue et utilisĂ©s dans le cadre d'un pipeline CI/CD.

Avantages clés

  • Documentation dĂ©taillĂ©e - SoapUI est sur le marchĂ© depuis assez longtemps, il existe donc de nombreuses ressources en ligne qui peuvent vous aider Ă  comprendre comment configurer des tests.
  • FacilitĂ© d'utilisation - Bien que l'outil prenne en charge plusieurs protocoles pour tester les API, la prĂ©sence par SoapUI d'une interface commune pour plusieurs services facilite l'Ă©criture de tests.

concurrents

A participé à la bataille, mais n'a pas gagné

Sélénium est un autre excellent instrument de ce groupe. Je recommande de l'utiliser si vous créez et exécutez une application basée sur Java. Cependant, si vous créez une application Web complÚte avec plusieurs technologies, elle peut devenir lourde pour les composants non Java.

Outil de test de bout en bout n°1. Tests de résistance

Gagnant: LoadRunner

Outils DevOps que tout le monde devrait apprendre en 2020
Explication: Quand vient le temps de tester en charge chaque Ă©lĂ©ment de votre application, seul LoadRunner peut terminer la tĂąche. Oui, c'est cher et difficile au dĂ©but, mais LoadRunner est le seul outil qui me donne, en tant qu'architecte technique, l'assurance totale que le nouveau code fonctionnera dans des conditions de charge extrĂȘmes. Aussi, je pense qu'il est temps que LoadRunner soit repris par les Ă©quipes de dĂ©veloppement plutĂŽt que par les Ă©quipes de tests.

Avantages clés

  • Documentation complĂšte - LoadRunner est sur le marchĂ© depuis un certain temps, il existe donc de nombreuses ressources en ligne pour vous aider Ă  comprendre comment configurer des tests de charge.
  • Prise en charge du protocole - Load Runner prend en charge tout, d'ODBC Ă  AJAX, HTTPS et tout autre protocole non trivial que votre application pourrait utiliser. Nous essayons de ne pas utiliser plusieurs outils pour les tests de charge, car cela ne fait que compliquer le processus.

concurrents

A participé à la bataille, mais n'a pas gagné

Encore une fois, il n’existe pas beaucoup d’outils universels dans ce domaine, la meilleure solution est donc celle qui fonctionnera dans n’importe quel environnement et avec n’importe quelle technologie.

Outils de déploiement

Outils DevOps que tout le monde devrait apprendre en 2020
Les outils de dĂ©ploiement sont probablement l'aspect le moins compris du dĂ©veloppement. Pour une Ă©quipe opĂ©rationnelle sans une comprĂ©hension approfondie du code et des fonctionnalitĂ©s de l’application, il est difficile d’utiliser de tels outils. Pour les dĂ©veloppeurs, la gestion du dĂ©ploiement est une nouvelle responsabilitĂ©, ils n'ont donc pas encore suffisamment d'expĂ©rience avec de tels outils.

Tout d'abord, divisons tous les outils de dĂ©ploiement en trois sous-catĂ©gories :

  • gestion des artefacts
  • gestion de la configuration
  • dĂ©ployer.

Outil de gestion d'artefacts n°1

Gagnant: Nexus

Outils DevOps que tout le monde devrait apprendre en 2020
Le référentiel d'artefacts Nexus prend en charge presque toutes les technologies majeures, de Java à NPM en passant par Docker. Nous pouvons utiliser cet outil pour stocker tous les artefacts que nous utilisons. Le proxy des gestionnaires de packages distants accélÚre également considérablement le processus de création de CI, rendant les packages plus accessibles pour la création. Un autre avantage est la possibilité d'obtenir une vue complÚte de tous les packages utilisés dans plusieurs projets logiciels, bloquant ainsi les packages open source dangereux (ils peuvent agir comme un vecteur d'attaque).

Avantages clés

  • Support technique - Produit fiable ; Bien soutenu.
  • Open Source – La version gratuite ne limite pas les fonctionnalitĂ©s de base dont les Ă©quipes de dĂ©veloppement ont besoin.

Outil de gestion de configuration n°1

Gagnant: Ansible

Ansible est un leader pour une raison simple : apatride. Auparavant, des outils similaires se concentraient sur la gestion de l'Ă©tat de la configuration. Une fois lancĂ©, un tel outil, ayant reçu la configuration souhaitĂ©e, tentera de corriger la configuration actuelle de l'application. Et avec la nouvelle approche, seuls les composants sans Ă©tat sont prĂ©sents. Les nouvelles versions de code sont des artefacts dĂ©ployĂ©s pour remplacer les versions existantes. Cela peut ĂȘtre considĂ©rĂ© comme une sorte d’environnement Ă©phĂ©mĂšre et Ă  court terme.

Avantages clés

  • Sans Ă©tat : le Playbook est lancĂ© depuis la machine de dĂ©ploiement et exĂ©cutĂ© sur les serveurs cibles. Je n'ai pas Ă  me soucier de l'Ă©tat de l'objet distant en utilisant un outil comme Packer pour crĂ©er des objets dĂ©ployables.
  • Open Source – Comme CentOS, Ansible est Ă©galement pris en charge par RedHat. Il aide Ă  maintenir la communautĂ© et fournit des modules de haute qualitĂ© et faciles Ă  utiliser.
  • Tests avec Molecule (un framework Ansible) – Puisque la gestion de la configuration est du code, comme tout le reste, les tests sont essentiels. Le cadre de test de rĂŽle Ansible de Molecule fonctionne parfaitement, garantissant que la configuration est de la mĂȘme qualitĂ© et suit le mĂȘme pipeline CI/CD que le code de l'application.
  • YAML – ComparĂ© Ă  d’autres outils, YAML est plus facile Ă  comprendre. Étant donnĂ© que la gestion de la configuration constitue gĂ©nĂ©ralement un nouveau dĂ©fi pour ceux qui mettent en Ɠuvre des pratiques DevOps, la simplicitĂ© est son atout.

concurrents

A participé à la bataille, mais n'a pas gagné

Chef OpsCode — J'ai commencĂ© ma carriĂšre DevOps en tant que dĂ©veloppeur de livres de recettes. Ruby et Chef me tiennent bien sĂ»r Ă  cƓur, mais ils ne rĂ©solvent tout simplement pas les problĂšmes des applications cloud natives et apatrides modernes. OpsCode Chef est un excellent outil pour les applications plus traditionnelles, mais dans cet article, nous nous concentrons sur l'avenir.

Fantoche — Puppet n'a jamais eu beaucoup de fans, surtout en comparaison avec Chef et Ansible. Il est idĂ©al pour le provisionnement et l'utilisation du matĂ©riel, mais il lui manque une prise en charge moderne de la gestion de la configuration pour une application Web.

Outil de déploiement n°1

Gagnant: Terraform

Outils DevOps que tout le monde devrait apprendre en 2020
Terraform rĂ©sout le problĂšme de la description de votre infrastructure sous forme de code, des composants rĂ©seau aux images complĂštes du serveur. Ce produit a parcouru un long chemin depuis sa version initiale, avec tellement de plugins créés et une communautĂ© si forte que vous serez sĂ»r d'obtenir de l'aide dans n'importe quel scĂ©nario de dĂ©ploiement. La capacitĂ© Ă  prendre en charge tout type d’environnement (sur site, dans le cloud ou ailleurs) est sans prĂ©cĂ©dent. Enfin, la derniĂšre version fournit en grande partie les mĂȘmes fonctions et classes logiques dans HCL que tout autre langage de programmation traditionnel, ce qui rend Terraform facile Ă  comprendre pour les dĂ©veloppeurs, rapidement et facilement.

Avantages clés

  • IndĂ©pendant de l'environnement - Terraform utilise des fonctions qui agissent comme une interface entre votre code Terraform, toutes les API et la logique interne pour communiquer avec le fournisseur d'infrastructure. Cela signifie que je ne maĂźtriserai qu’un seul outil et que je pourrai ensuite travailler n’importe oĂč.
  • Open Source â€“ Il est difficile de battre les outils gratuits ! Soutien communautaire au plus haut niveau.

concurrents

A participé à la bataille, mais n'a pas gagné

AWS CloudFormation — MĂȘme si vous travaillez uniquement dans l'environnement cloud AWS, votre prochain travail peut utiliser un outil diffĂ©rent. Consacrer tout votre temps et votre Ă©nergie Ă  une seule plateforme est une dĂ©cision Ă  courte vue. De plus, de nombreux nouveaux services AWS sont souvent disponibles sous forme de modules Terraform avant d'ĂȘtre disponibles dans CloudFormation.

Outils d'exécution

Outils DevOps que tout le monde devrait apprendre en 2020

Le but ultime de tout projet de dĂ©veloppement est de lancer l’application en production. Dans le monde DevOps, nous voulons ĂȘtre pleinement conscients de tous les problĂšmes possibles avec notre environnement et nous voulons Ă©galement minimiser les interventions manuelles. Choisir le bon ensemble d’outils d’exĂ©cution est essentiel pour atteindre le nirvana du dĂ©veloppement d’applications.

Sous-catĂ©gories d'outils d'exĂ©cution :

  • X-as-a-service (XaaS)
  • orchestration
  • surveillance
  • enregistrement.

X-tool-as-a-service #1

Gagnant: Amazon Web Services

Outils DevOps que tout le monde devrait apprendre en 2020
Amazon a toujours Ă©tĂ© un leader dans les technologies cloud, mais cela ne s'arrĂȘte pas lĂ  : la diversitĂ© des nouveaux services destinĂ©s aux dĂ©veloppeurs est rĂ©vĂ©latrice. Apportez n'importe quelle technologie et n'importe quel modĂšle Ă  AWS et il sera construit et exĂ©cutĂ©. Le coĂ»t de l'outil est tout Ă  fait raisonnable : comparez-le Ă  l'assemblage, Ă  la gestion et Ă  la maintenance des Ă©quipements de votre propre centre de donnĂ©es. La version gratuite vous permet d'expĂ©rimenter et de prendre la bonne dĂ©cision avant de dĂ©penser de l'argent.

Avantages clés

  • PrĂ©valence - Si vous avez de l'expĂ©rience dans la crĂ©ation d'applications dans AWS, vous pouvez travailler n'importe oĂč. Les entreprises adorent AWS et les startups apprĂ©cient Ă©galement son faible coĂ»t.
  • La version gratuite est un facteur vraiment important qui distingue AWS de ses pairs. Laissez-moi essayer le service et voir comment il fonctionne avant de prendre une dĂ©cision d'achat, je ne veux pas dĂ©penser des milliers de dollars pour quelque chose d'inutile. La version gratuite me suffit toujours pour tester n’importe quel concept.

concurrents

A participé à la bataille, mais n'a pas gagné

Azure « Azure a parcouru un long chemin depuis sa premiĂšre version, et c'est louable. Cependant, le dĂ©sir d'ĂȘtre diffĂ©rent a conduit Ă  des noms Ă©tranges pour les services, ce qui complique souvent le travail. Que signifie « stockage blob Â» ? Et mĂȘme si le code .NET fonctionne mieux dans l'Ă©cosystĂšme Microsoft, il est peu probable que vous utilisiez uniquement .NET pour chaque composant de votre application.

Heroku — Je ne dirigerais jamais autre chose qu'un projet personnel sur Heroku en raison du faible niveau de fiabilitĂ© et de transparence, les entreprises ne devraient donc pas l'utiliser comme plate-forme. Heroku est idĂ©al pour dĂ©montrer quelque chose sur un blog, mais pour une utilisation pratique - "Non, merci !"

Outil d'orchestration n°1

Gagnant: OpenShift

Outils DevOps que tout le monde devrait apprendre en 2020
Vous utilisez probablement Docker ou d'autres conteneurs dans votre pile d'applications. Les applications sans serveur sont excellentes, mais elles ne conviennent pas nĂ©cessairement Ă  toutes les architectures. ExĂ©cuter des conteneurs sans plate-forme d’orchestration ne fonctionnera tout simplement pas. Kubernetes Core (K8s) est inĂ©galĂ© en termes de sĂ©curitĂ© et d'outils. OpenShift est la seule plate-forme basĂ©e sur Kubernetes capable de collecter Source2Image, de prendre en charge le dĂ©ploiement automatisĂ© sur les pods et de prendre en charge le suivi et la surveillance. OpenShift peut ĂȘtre exĂ©cutĂ© sur site, dans le cloud ou simultanĂ©ment sur site et dans le cloud.

Avantages clés

  • SĂ©curitĂ© intĂ©grĂ©e - La gestion de la sĂ©curitĂ© du K8 peut nĂ©cessiter un diplĂŽme d'Ă©tudes supĂ©rieures. Chaque dĂ©tail doit ĂȘtre soigneusement pensĂ© et pris en compte ! Les mĂ©canismes de sĂ©curitĂ© intĂ©grĂ©s par dĂ©faut avec OpenShift soulagent les dĂ©veloppeurs et fournissent une plate-forme plus sĂ©curisĂ©e pour les applications.
  • Solution tout-en-un - Contrairement aux K8 de base, qui n'incluent pas d'outils d'Ă©quilibrage de charge par dĂ©faut, OpenShift a tout pour plaire. Je peux l'utiliser pour crĂ©er et hĂ©berger des conteneurs, exĂ©cuter des outils CI/CD, gĂ©rer des processus externes, gĂ©rer des clĂ©s et bien plus encore. Bien que l'interface utilisateur graphique soit encore loin d'ĂȘtre parfaite, l'approche basĂ©e sur l'API signifie que tout peut ĂȘtre dĂ©crit dans un script. Contrairement Ă  d'autres interfaces graphiques pour K8, OpenShift facilite grandement l'apprentissage des bases de Kubernetes. Vous n'avez mĂȘme pas besoin d'obtenir un diplĂŽme !

concurrents

A participé à la bataille, mais n'a pas gagné

Docker Swarm — Docker Swarm a essayĂ© de simplifier les K8 en supprimant beaucoup de choses. C'est idĂ©al pour les petites applications, mais pour les applications d'entreprise, cela ne fonctionne tout simplement pas. De plus, des solutions comme AWS ECS adoptent une approche similaire mais facilitent le travail avec d'autres services avec lesquels je peux Ă©galement interagir (Lambda, IAM, etc.).

Outil de suivi n°1

Gagnant: Nouvelle relique

Outils DevOps que tout le monde devrait apprendre en 2020
Les premiĂšres versions de New Relic ont bien fait une chose : la surveillance APM (Application Performance Monitoring). Il s'agit dĂ©sormais d'un outil de surveillance complet qui vous permet de surveiller les performances du serveur, du conteneur, de la base de donnĂ©es, de l'expĂ©rience de l'utilisateur final et, bien sĂ»r, de la surveillance des performances des applications.

Avantages clés

  • FacilitĂ© d'utilisation – Lorsque je travaillais en tant qu'ingĂ©nieur systĂšme, j'utilisais de nombreux outils de surveillance, mais je n'en ai jamais rencontrĂ© un aussi simple et facile Ă  utiliser que New Relic. C'est SaaS, vous n'avez donc pas besoin de l'installer vous-mĂȘme.
  • VisibilitĂ© de bout en bout : d'autres outils tentent de surveiller un Ă©lĂ©ment spĂ©cifique de votre application. Par exemple, une mesure de l'utilisation du processeur ou du trafic rĂ©seau, mais tout cela doit ĂȘtre surveillĂ© de maniĂšre globale pour que l'application fonctionne correctement. New Relic vous donne la possibilitĂ© de rassembler toutes vos donnĂ©es pour obtenir une vue complĂšte de ce qui se passe.

concurrents

A participé à la bataille, mais n'a pas gagné

Zabbix — Mon premier et prĂ©fĂ©rĂ© systĂšme de surveillance, mais il est restĂ© dans le passĂ© en raison du manque de dĂ©veloppement dans les technologies cloud et dans le domaine de la surveillance des performances des applications APM. Zabbix surveille toujours bien l'infrastructure de serveur traditionnelle, mais c'est tout.

DataDog — Trop centrĂ© sur le processus de gestion de l'environnement de production de l'application, et non sur le code lui-mĂȘme. Avec des Ă©quipes DevOps impliquant des dĂ©veloppeurs, nous n'avons pas besoin de nous appuyer sur des outils difficiles Ă  utiliser pour fournir un support de premier ordre.

Outil de journalisation n°1

Gagnant: Splunk

Outils DevOps que tout le monde devrait apprendre en 2020
Difficile de rivaliser avec Splunk ! Pendant longtemps, il reste le leader de l'exploitation forestiĂšre, continuant Ă  le faire mieux que quiconque. Avec les offres sur site et SaaS, vous pouvez utiliser Splunk n'importe oĂč. Le gros bĂ©mol est son prix : Splunk reste quand mĂȘme sacrĂ©ment cher !

Avantages clés

  • OmniprĂ©sent – ​​Les entreprises adorent Splunk et ont l’argent nĂ©cessaire pour l’acheter.
  • Bien que les startups tentent de rĂ©cupĂ©rer leurs coĂ»ts, de nombreuses fonctions peuvent ĂȘtre rĂ©solues grĂące Ă  des analogues open source.
  • MaintenabilitĂ© – En termes simples, Splunk fonctionne et le fait bien. Il est livrĂ© avec de nombreux paramĂštres et fonctionnalitĂ©s par dĂ©faut prĂȘts Ă  ĂȘtre utilisĂ©s. Pas besoin de perdre du temps Ă  lire la documentation et Ă  essayer de faire fonctionner Splunk ou de dĂ©chiffrer quoi que ce soit.

concurrents

A participé à la bataille, mais n'a pas gagné

Pile ELK (ElasticSearch, LogStash et Kibana) « Ces outils semblent ĂȘtre les favoris car vous n’avez mĂȘme pas besoin de vendre votre foie pour les utiliser. » Cependant, Ă  mesure que l'ensemble des journaux s'agrandit et que le nombre d'applications embarquĂ©es augmente, le travail devient de plus en plus difficile. Par rapport Ă  Splunk, avec ELK Stack, j'ai passĂ© beaucoup plus de temps Ă  configurer les outils avant de crĂ©er des tableaux de bord que jamais auparavant.

Outils de collaboration

Outils DevOps que tout le monde devrait apprendre en 2020
DevOps consiste avant tout à changer la culture au sein d’une organisation. L'achat d'un outil ne changera pas les pratiques actuelles du jour au lendemain, mais cela peut certainement encourager la collaboration et de nouvelles façons d'interagir.

Sous-catĂ©gories d'outils de collaboration :

  • suivi des tĂąches
  • ChatOps
  • Documentation.

Outil de suivi des problÚmes n°1

Gagnant: Jira

Outils DevOps que tout le monde devrait apprendre en 2020
Jira maintient sa position de leader, mĂȘme si la concurrence dans ce domaine s'accentue. L'incroyable flexibilitĂ© de Jira permet aux Ă©quipes de dĂ©veloppement et de maintenance de gĂ©rer le travail de projet et les tĂąches de sprint. Les normes intĂ©grĂ©es utilisant la terminologie Agile facilitent le passage des mĂ©thodes de travail traditionnelles Ă  des processus plus efficaces.

Avantages clés

  • PopularitĂ© – Comme beaucoup d’autres outils, Jira est utilisĂ© presque partout. Les petites Ă©quipes utilisent la version la moins chĂšre et la plus accessible et obtiennent tout ce dont elles ont besoin, tandis que les grandes entreprises peuvent se permettre une licence plus chĂšre.
  • IntĂ©grations - Jira est un pionnier dans son domaine. Ce fait et le dĂ©veloppement rapide du produit conduisent au fait que d'autres entreprises choisissent Jira pour crĂ©er leurs propres intĂ©grations, augmentant ainsi la valeur de l'outil. Nous pouvons intĂ©grer Jira avec tous les outils rĂ©pertoriĂ©s dans cet article dĂšs le dĂ©part avec une petite configuration.

concurrents

A participé à la bataille, mais n'a pas gagné

Trello — Trello a rapidement gagnĂ© en popularitĂ© grĂące Ă  son outil Kanban gratuit. Cependant, une fois que les processus Ă©voluent et que vous passez de dizaines de tĂąches Ă  des milliers, Trello devient difficile Ă  naviguer, Ă  rechercher et Ă  crĂ©er des rapports.

Pivotal Tracker — J'Ă©tais un grand fan de cet outil lorsque je travaillais pour une startup. Cependant, Pivotal Tracker se concentre davantage sur la gestion des produits plutĂŽt que sur les tĂąches techniques. Bien que la gestion de produits dans Jira soit un peu plus complexe, elle peut toujours y ĂȘtre implĂ©mentĂ©e sans utiliser d'outil supplĂ©mentaire.

Outil ChatOps n°1

Gagnant: MatterMost

Outils DevOps que tout le monde devrait apprendre en 2020
Explication: Peut-ĂȘtre la plus grosse surprise pour vous dans ma sĂ©lection, et c'est une bonne nouvelle ! MatterMost a gagnĂ© en popularitĂ© en tirant le meilleur parti des outils prĂ©cĂ©dents mais en les plaçant sur site. C'est trĂšs important pour les entreprises : MatterMost vous permet de contrĂŽler vos donnĂ©es et vous aide Ă©galement Ă  les intĂ©grer Ă  des outils qui s'exĂ©cutent localement. Nous n'avons plus besoin de sortir du pare-feu pour vĂ©rifier les discussions professionnelles.

Avantages clés

  • Open Source – La version open source de MatterMost fonctionne trĂšs bien pour les Ă©quipes moyennes et grandes. Contrairement au forfait gratuit de Slack, qui supprime l'historique de vos messages, exĂ©cuter votre propre serveur signifie que vous conservez toutes vos donnĂ©es.
  • IntĂ©grations - Étant donnĂ© que l'API est basĂ©e Ă  presque 100 % sur l'API Slack, presque toutes les intĂ©grations Slack peuvent ĂȘtre utilisĂ©es directement avec MatterMost.

concurrents

A participé à la bataille, mais n'a pas gagné

Slack — Slack, c'est cool, mais ces gars-lĂ  ont tellement grandi qu'ils ont commencĂ© Ă  chercher du profit. La phase de rĂ©cupĂ©ration de l'entreprise approche, ce qui lui enlĂšve sa principale valeur : Slack fournissait des services gratuitement ; L'inconvĂ©nient le plus important de la version gratuite est la suppression de l'historique des discussions.

Microsoft Teams — Essayez d'intĂ©grer un produit Microsoft avec quelque chose n'appartenant pas Ă  Microsoft... Bonne chance ! C'est tout ce que j'ai Ă  dire sur cet outil !

Outil de documentation n°1

Gagnant: Confluence

Outils DevOps que tout le monde devrait apprendre en 2020
Créer et maintenir une documentation technique de qualité est un processus complexe, quel que soit l'outil que vous utilisez. Bien que de nombreux outils de documentation SaaS soient arrivés sur le marché récemment, il me serait difficile de sous-traiter le stockage de la documentation technique sur les applications critiques à un tiers. Il est préférable de stocker les données et les documents sur site, et c'est ainsi que Confluence résout le problÚme.

Avantages clés

  • Facile Ă  utiliser – La plupart des outils autonomes peuvent ĂȘtre un peu complexes Ă  configurer et Ă  utiliser et nĂ©cessitent certaines connaissances pour leur maintenance. Confluence Server fonctionne parfaitement pour 10 ou 10,000 XNUMX utilisateurs.
  • Plugins - FĂ©licitations Ă  Confluence pour avoir une navigation belle et facile Ă  utiliser prĂȘte Ă  l'emploi, et la possibilitĂ© d'ajouter un plugin pour presque tout libĂšre le potentiel de type Wiki.

concurrents

A participé à la bataille, mais n'a pas gagné

Lire la documentation — Cool pour l'open source, mais ne pensez mĂȘme pas Ă  stocker des connaissances critiques ici.

Réduction - Idéal pour documenter le code, mais difficile de publier une architecture, des processus ou d'autres types de documentation en raison du formatage spécifique de MarkDown.

Jekyll — Lors de la documentation des connaissances techniques, je ne souhaite pas crĂ©er un nouveau site statique qui sera dĂ©ployĂ© Ă  chaque changement. Le systĂšme simple de contrĂŽle de version de Confluence simplifie grandement la documentation interne.

Récapituler

Il existe littĂ©ralement des centaines d’outils DevOps sur le marchĂ©, ce qui rend difficile de savoir lesquels utiliser et quand les mettre en Ɠuvre. Suivez ce guide simple pour choisir les outils DevOps pour un pipeline CI/CD complet.

Assurez-vous de sĂ©lectionner des outils dans les cinq catĂ©gories :

  • outils de dĂ©veloppement et de construction
  • outils d'automatisation des tests
  • outils de dĂ©ploiement
  • Outils d'exĂ©cution
  • outils de collaboration.

Recommandation principale : Automatisez tout !

Merci Zach Shapiro!

Source: habr.com