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

Ajouter un commentaire