DevOps est l'un des plus grands mots à la mode dans le monde de la technologie ces derniers temps car il offre une quantité énorme d'avantages à l'organisation pour raccourcir son cycle de vie de développement logiciel.
Qu'est-ce que DevOps?
Il n'y a pas de définition unique ou de bonne réponse à la question « Qu'est-ce que DevOps » ?

DevOps n'est pas un outil, une technologie ou un cadre ; c'est plus une philosophie et un concept. Il s'agit d'un ensemble de pratiques qui combinent le développement de logiciels (Dev) et les opérations informatiques (Ops), ce qui permet de raccourcir le cycle de vie du développement des systèmes et de fournir une intégration et une livraison continues avec une qualité logicielle élevée.
Si vous êtes un débutant, regardez ceci post d'introduction ou suivez ce cours en ligne - Docker pour un débutant absolu.
Avantages DevOps
- Amélioration de la collaboration et de la communication
- Livraison plus rapide des logiciels ou des produits
- Réduction continue des coûts
- Processus amélioré
- Résolution plus rapide des problèmes
Dans le monde DevOps, il n'y a pas d'outil magique unique qui réponde à tous les besoins. Il s'agit de choisir le bon outil qui répond aux besoins d'une organisation. Découvrons-les.
Continuous Integration

# 1. Travis CI
Travis CI est une plate-forme d'intégration continue distribuée et hébergée dans le Cloud, utilisée pour créer et tester des projets hébergés sur GitHub et Bitbucket. Il est configuré en ajoutant un fichier YAML.
Il peut être testé gratuitement pour les projets open-source et payant pour les projets privés.
# 2. Jenkins
Jenkins est l'un des outils DevOps open source les plus populaires pour prendre en charge l'intégration et la livraison continues via DevOps.
Il permet une intégration continue et une livraison continue des projets, quelle que soit la plate-forme sur laquelle les utilisateurs travaillent, à l'aide de divers pipelines de construction et de déploiement. Jenkins peut être intégré à plusieurs outils de test et de déploiement.
# 3. Bambou

Bambou est l'un des produits populaires développés par Atlassian pour prendre en charge une intégration continue transparente.
La plupart des fonctionnalités sont prédéfinies, ce qui signifie que nous n'avons pas besoin de télécharger différents plugins comme Jenkins. Il prend également en charge une intégration transparente avec d'autres produits Atlassian tels que JIRA et Bitbucket.
# 4. TeamCity

TeamCity est une intégration continue basée sur un serveur et construit un outil de gestion développé par JetBrains. projets.
# 5. CircleCI
CircleCI est disponible sous la forme de solutions basées sur le cloud et sur site pour une intégration continue. Il est facile et rapide à démarrer et prend en charge léger, facilement lisible YAML configurations.
Il existe d'autres outils CI que vous pouvez explorer ici.
Planning & Collaboration
# 1. JIRA
JIRA est l'un des outils de gestion de projet populaires développés par Atlassian, utilisé pour le suivi des problèmes, des bogues et des projets. Il permet à l'utilisateur de suivre l'état du projet et du problème.
Il peut facilement être intégré à d'autres produits Atlassian comme Bitbucket en plus d'autres outils DevOps comme Jenkins.
# 2. Zoom
Zoom est une plateforme de conférence Web et de partage d'écran instantané. Vous pouvez inviter votre équipe à se joindre par audio ou vidéo. Peu importe la taille de votre équipe ; le zoom peut accueillir jusqu'à 1000 destinataires dans une réunion en ligne.
# 3. Slack
Slack est un outil de collaboration freemium basé sur le Cloud qui permet la communication et la collaboration d'équipe en un seul endroit. Cet outil peut également être utilisé pour partager des documents et d'autres informations entre les membres de l'équipe. Cela peut également être facilement intégré à d'autres outils tels que GIT, Jenkins, JIRA, etc.
# 4. Clarizen
Clarizen est une collaboration et gestion de projet SUR mesure logiciel qui aide au suivi des problèmes, à la gestion des tâches et à la gestion du portefeuille de projets. Il est facile à personnaliser et possède une interface utilisateur interactive conviviale.
5. Asanas
Asanas est une application mobile et Web conçue pour aider les équipes à organiser, suivre et gérer leur travail de manière efficace et efficiente. Il est utilisé pour suivre les tâches quotidiennes de l'équipe et prendre en charge la messagerie et la communication dans l'ensemble de l'organisation.
Source Code Management

# 1. SVN
SVN est une version centralisée et un outil de contrôle de source développé par Apache. Il aide les développeurs à maintenir différentes versions du code source et à conserver un historique complet de toutes les modifications.
# 2. Git
Git est un système de contrôle de version distribué axé sur la vitesse, l'intégrité des données et la prise en charge de systèmes distribués non linéaires. workflows. Autre que code source gestion, il peut également être utilisé pour suivre les modifications apportées à n'importe quel ensemble de fichiers.
# 3. bitbucket
bitbucket est une plate-forme d'hébergement Web développée par Atlassian. Bitbucket propose également un système de révision de code efficace et garde une trace de chaque modification du code. Il peut facilement être intégré à d'autres outils DevOps tels que Jenkins et Bamboo.
# 4. GitHub
GitHub est une plateforme d'hébergement de code conçue pour le contrôle de version et la collaboration. Il offre toutes les fonctionnalités de contrôle de version distribué et de gestion du code source (SCM) de Git en plus de ses fonctionnalités.
Il offre des fonctionnalités de contrôle d'accès et de collaboration telles que le suivi des bogues, la création et la demande de fonctionnalités, la gestion des tâches, etc., pour le projet.
Build Automation

# 1. fourmi
Fourmi Apache est un outil de construction et de déploiement open source basé sur Java. Il prend en charge le format de fichier XML. Il comporte plusieurs tâches intégrées nous permettant de compiler, assembler, tester et exécuter des applications Java.
# 2. Maven
Maven est un outil d'automatisation de construction principalement utilisé pour les projets java. Il contient un fichier XML qui décrit le projet logiciel en cours de construction, ses dépendances avec d'autres composants et modules externes, la séquence de construction, les répertoires et les autres plug-ins requis.
# 3. Grognement

Grognement est un outil de ligne de commande javascript qui aide à créer des applications et aide les développeurs à automatiser les tâches répétitives comme la compilation, tests unitaires, code linting, validation, etc. C'est une bonne alternative aux outils comme Make ou Ant.
# 4. gradle

gradle est un système d'automatisation de construction open source qui s'appuie sur les concepts d'Apache Maven et d'Apache Ant. Il prend en charge le langage de programmation Groovy approprié au lieu du fichier de configuration XML. Il prend en charge les builds incrémentiels en déterminant automatiquement les parties de la build à jour.
Configuration Management
# 1. Fantoche
Fantoche est un outil de gestion de configuration open source utilisé pour configurer, déployer et gérer de nombreux serveurs. Cet outil prend en charge le concept d'infrastructure en tant que code et est écrit en Ruby DSL. Il prend également en charge l'augmentation et la réduction dynamiques des machines en fonction des besoins.
# 2. Privé
Privé est un outil de gestion de configuration open source développé par Opscode utilisant Ruby pour gérer l'infrastructure sur des machines virtuelles ou physiques. Il aide également à gérer une infrastructure complexe à la volée sur des machines virtuelles, physiques et cloud.
# 3. Ansible

Ansible est un outil open source de gestion de configuration informatique, de provisionnement de logiciels, d'orchestration et de déploiement d'applications. Il s'agit d'un outil simple mais puissant pour automatiser des applications informatiques multiniveaux simples et complexes.
# 4. Terraform

Terraform est un outil open source pour créer, modifier, déployer et versionner une infrastructure de manière sûre et efficace. Il est utilisé pour gérer les fournisseurs de services existants et populaires ainsi que les solutions internes personnalisées. Il aide à définir l'infrastructure dans la configuration/le code et permettra à un utilisateur de reconstruire/modifier et de suivre facilement les modifications apportées à l'infrastructure.
# 6. Vagabond
Vagabond est l'un des outils populaires pour créer et gérer des machines virtuelles (VM). Il dispose d'un flux de travail facile à utiliser et configurable qui se concentre sur l'automatisation. Cela aide à réduire le temps de configuration de l'environnement de développement et augmente la parité de production.
Continuous Security

# 1. Prométhée
Intégrer Prométhée dans le cycle de vie du développement pour trouver et corriger automatiquement les vulnérabilités de sécurité open source. Il prend en charge JS, .Net, PHP, NPM, jQuery, Python, Java, etc., et peut être intégré au codage, à la gestion du code, au CI/CI, au conteneur et au déploiement.
Snyk a obtenu la plus grande base de données de vulnérabilités open source.
# 2. invicti

invicti analyse automatiquement votre application à la recherche de failles de sécurité et fournit des rapports classifiés exploitables afin que vous puissiez prendre des mesures en fonction de la priorité.
Un scénario de sécurité DevOps consisterait à examiner le nouveau commit et à signaler le bogue directement dans le système de suivi comme Jira ou GitHub et à réanalyser une fois corrigé par le développeur. Vous le voyez s'intégrer à chaque étape de SDLC.
Test Automation

# 1. Sélénium
Sélénium est l'outil de test open source le plus populaire. Il prend en charge l'automatisation des tests sur divers navigateurs et machines d'exploitation. Il peut facilement être intégré à des outils de gestion de test comme ALM et JIRA, ainsi qu'à d'autres outils DevOps comme Jenkins, Teamcity, Bamboo, etc.
# 2. JUnit

JUnit est un framework de tests unitaires open source utilisé par les développeurs pour écrire et exécuter des cas de test répétables. Il prend en charge différentes annotations de test à l'aide desquelles tout développeur peut écrire un cas de test unitaire transparent. Il peut facilement être intégré à d'autres outils DevOps comme Jenkins, GIT, etc.
# 3. TestNG
TestNG est un framework de test open source conçu et inspiré par Junit et Nunit. Il peut facilement être intégré au pilote Web Selenium pour configurer et exécuter des scripts de test d'automatisation. Il génère également différents rapports de test comme HTML ou XSLT.
Monitoring

# 1. Nagios
Nagios est une source ouverte et l'un des outils les plus populaires pour la surveillance continue. Nagios aide à surveiller les systèmes, les applications, les services et les processus métier dans une culture DevOps. Il alerte les utilisateurs en cas de problème avec l'infrastructure et les alerte également lorsque le problème a été résolu.
# 2. Sensu

Sensu est un outil de surveillance open source écrit en Ruby qui aide à surveiller les serveurs, les services, les applications et l'infrastructure cloud de manière simple et efficace. Il est facile à mettre à l'échelle afin que nous puissions facilement surveiller des milliers de serveurs.
# 3. Sematexte
Sematexte est une solution de surveillance complète qui vous offre une visibilité approfondie de votre infrastructure informatique. Il fournit une surveillance des performances frontales et back-end, une surveillance des journaux, une surveillance de la disponibilité et des performances des API et des sites Web, une surveillance de l'expérience utilisateur, etc.
Bien qu'il soit livré avec des tableaux de bord et des règles d'alerte prêts à l'emploi pour les applications et infrastructures populaires telles que les bases de données courantes et les magasins NoSQL, les serveurs cloud, les réseaux, les conteneurs, etc., vous pouvez facilement personnaliser les tableaux de bord et les alertes pour répondre à vos besoins de surveillance.
Sematext propose des alertes puissantes avec détection d'anomalies, détection d'échec de battement de coeur, planification et de nombreuses intégrations pour fournir des notifications d'alerte.
# 4. Datadog
Datadog est un outil de mesure de serveur basé sur un agent. Il prend en charge l'intégration avec différents serveurs Web, applications et serveurs cloud. Son service de tableau de bord fournit divers graphiques sur la surveillance en temps réel de l'infrastructure.
# 5. grafana
grafana est une plate-forme d'analyse open-source pour surveiller toutes les métriques de l'infrastructure, des applications et des périphériques matériels. Vous pouvez visualiser les données, créez et partagez un tableau de bord, configurez des alertes et collaborez. Vous pouvez extraire des données de plus de 30 sources, notamment Prometheus, InfluxDB, Elasticsearch, AWS CloudWatch, etc.
# 6. WAPITI
WAPITI est une collection de trois produits open source - Elasticsearch, Logstash et Kibana qui sont tous développés, gérés et maintenus par la société Elastic. Il permet aux utilisateurs d'accéder aux données de n'importe quelle source dans n'importe quel format, puis de rechercher, d'analyser et de visualiser ces données en temps réel.
# 7. New Relic

New Relic est un produit d'analyse logicielle pour surveillance des performances des applications (APM) qui fournit des données en temps réel et des tendances sur les performances des applications Web et le niveau de satisfaction des utilisateurs finaux. Il prend en charge un suivi des transactions de bout en bout et les affiche avec une variété de tableaux, de graphiques et de rapports à code couleur.
Cloud Hosting

# 1. AWS
AWS est une plate-forme d'hébergement Web créée par Amazon qui propose des solutions flexibles, fiables, évolutives, faciles à utiliser, évolutives et rentables. En utilisant cette plate-forme cloud, nous n'avons pas à nous soucier de la configuration de l'infrastructure informatique, qui prend généralement un temps raisonnable à mettre en place.
# 2. Azure

Azure est une plate-forme de cloud computing conçue par Microsoft pour créer, déployer, tester et gérer des applications et des services via un réseau mondial de ses centres de données. Les services fournis par Microsoft Azure se présentent sous la forme de PaaS (Platform as a service) et IaaS (Infrastructure as a service).
# 3. GCP
Google Cloud est un ensemble complet de public hébergement cloud et les services informatiques proposés par Google. Il prend en charge une large gamme de services pour le calcul, le stockage et le développement d'applications utilisant Google Hardware.
Containerization/Orchestration
# 1. Docker
Docker est un outil pour créer, déployer et exécuter des applications à l'aide de conteneurs. Ce conteneur permet au développeur de conditionner une application avec tous les composants et sous-composants dont elle a besoin, tels que les bibliothèques et autres dépendances, et de l'expédier dans un seul package. Ce travail sur le concept du navire et courir n'importe où.
# 2. Kubernetes
Kubernetes est un open-source orchestration de conteneurs système conçu à l'origine par Google et est maintenant maintenu par la Cloud Native Computing Foundation. Il est utilisé pour automatiser le déploiement, la mise à l'échelle et la gestion des applications. Il fonctionne également avec d'autres outils de conteneur, y compris Docker.
Découvrez d'autres outils d'orchestration de conteneurs ici.
Conclusion
J'espère que les outils énumérés ci-dessus vous aideront dans votre parcours DevOps.
Vous pouvez également explorer différentes phases de Cycle de vie DevOps.