Outils Devops

Nous vous proposons une liste des solutions et technologies DevOps que nous utilisons et recommandons.

Nous contacter
Outils Devops

Dans le cadre de nos missions nous intégrons des technologies DevOps pour nos usages et ceux de nos clients. Nous vous proposons donc de faire un tour d'horizon des solutions retenues par Bearstech.

Mais avant d'entrer dans le vif du sujet, commençons par nous mettre d'accord sur ce qu'est la démarche DevOps en vous proposant notre définition.

La démarche DevOps vise à intégrer la qualité dans le processus de développement. Pour permettre d’améliorer la détection des erreurs fréquentes, de réduire de la dette technique et plus globalement de renforcer les applications.

Pour répondre à cette exigence, la méthodologie DevOps se propose de réduire l'écart opérationnel entre les développeurs (Dev) et les administrateurs système (Ops). En gagnant en intégrité, les équipes en charge de tous les aspects du développement et des opérations sont plus productives et font moins d'erreurs.

Pour ce faire, les équipes qui souhaitent mettre en œuvre cette méthodologie s'appuient sur des procédures, des pratiques, un état d'esprit, mais aussi des outils.

Les outils DevOps organisent le travail des développeurs et des administrateurs système en leur offrant des solutions perènnes sur lesquelles s'appuyer pour produire du code ou améliorer la capacité d'audit.

Les principales fonctionnalités offertes par les outils d'automatisation DevOps sont :

  • la gestion de configuration ;
  • des outils de déploiement ;
  • des solutions de conteneurisation ;
  • l'analyse de la qualité de code ;
  • des outils de monitoring.

Quels sont les critères de séléction de nos outils DevOps

Faisons d'abord un point méthodologique : pour proposer un outil DevOps, il doit-être avant tout une solution libre (ou Open Source), Bearstech ne recommande que des solutions Open Source à l'exception des cas où une telle solution n'existerait pas.

Le second critère est la maintenabilité de l'outil, nous ne pouvons pas intégrer une infinité de technologies et notre équipe gère déjà au quotidien un nombre d'instruments Open Source important. Pour simplifier notre travail de maintenance nous privilégions toujours la solution la plus simple et élégante.

Nous préférons aussi des solutions éprouvées par une vaste communauté d'utilisateurs et de mainteneurs.

Par ailleurs, les limites de cet article sont à l'image de notre métier et de notre conception de l'administration système. Par exemple nous ne proposons pas de solution d'orchestration de conteneurs telle que Kubernetes.

Tous les outils listés sont utilisés quotidiennement par Bearstech et ses clients, dans le cadre de notre solution de workflow DevOps ou pour la gestion de notre infrastructure d'hébergement.

Gestion de versions : la bataille des gestionaire de code

Commençons par l'outil qui est sans doute le plus proche des développeurs; les solutions de gestion de code et de versionning.

En gros le marché est divisé entre trois mastodonte : GitLab, GitHub et BitBucket.

Les deux derniers sont des solutions propriétaires et bien qu'il existe des alternatives on premise de ces technologies il s'agit de boites noires et leur code est fermé, nous ne retenons donc pas ces solutions.

Parce qu'elle est une solution OpenSource avec une forte communauté et un très grand nombre de fonctionnalités, Gitlab est notre choix privilégié.

GitLab

Git est l'outil de gestion de version incontournable de ces 10 dernières années. Il permet de suivre chaque changement apporté à un code source. Pour améliorer la collaboration des équipes, Gitlab ajoute à Git des services de gestion de projet (gestion de tickets, wiki, discussions, commentaires, prévisions, organisation des tâches, visualisation des événements et des changements apportés au code, alertes mails). L'aspect DevOps de la solution s'accentue de plus en plus avec l'ajout de Gitlab-CI, permettant à Gitlab d'activer des fonctions d'intégration continue lui conférant des fonctionnalités d'automatisation des procédures de tests, build et déploiement.

Découvrir notre expertise GitLab

Solution de provisionning : Infrastructure as Code

La gestion de la configuration des serveurs est une tâche exigeante mais qui supporte très bien l'automatisation.

Ansible est la solution séléctionnée par Bearstech pour gérer une partie des ses serveurs.

D'autres solutions existent, Puppet, Chef, Jenkins, etc. Nombre de ces solutions sont Open Source et peuvent parfaitement répondre à vos attentes. Mais dans le cadre de nos missions et la complexité de notre infrastructure, nous avons identifié Ansible comme étant la solution la mieux adaptée.

Ansible

Ansible fait partie de notre stack Devops. L'administrateur système décrit un état final et c'est Ansible (et son abstraction) qui effectue les tâches pour que les machines cibles atteignent l'état désiré. Ansible permet l'automatisation des processus "Dev" (déploiements des applications) et "Ops" management des systèmes. Les changements sur l'infrastructure sont versionnés et suivis (Infrastructure as Code).

Découvrir notre expertise Ansible

Solution de conteneurisation

Lorsque l'on parle de conteneurisation, Docker s'impose comme l'une des solutions les plus complètes et de très loin la plus populaire.

Dans le cadre de nos missions, l'usage de Docker est contraint par nos exigences de sécurité et de maitrise de l'infrastructure.

Mais nous accompagnons nos clients pour intégrer Docker à leur workflow DevOps.

Sa principale utilité est d'offrir aux développeurs un environnement de travail satisfaisant. Nous déployons aussi Docker sur des environnements de staging.

Docker

Standard de fait parmi les solutions de conteneurisation. Docker représente un contrat entre l'Ops et le Dev. Côté développement, l'image du conteneur va embarquer toutes les dépendances et les configurations nécessaires au bon fonctionnement de l'application. Le développeur se concentre sur le code et il peut très rapidement avoir à disposition un environnement jetable proche de la production. Côté opérations, l'ops se concentre sur des services liés à l'infrastructure (DNS, SSL, Proxy, routage, maintenance, mise à jours de sécurité, metrics, monitoring, alerting) auxquels s'ajoute maintenant la maintenance du daemon docker (ou du cluster).

L'immutabilité des conteneurs permet de créer une image unique à chaque nouvelle version du code. Ainsi, en diminuant la quantité d'éléments mobiles entre le développement et la production, les déploiements gagnent en robustesse.

Découvrir notre expertise Docker

Toutefois, Bearstech a mis en place une méthodologie pour déployer en production les services critiques comme les bases de données de manière native: ils peuvent ainsi profiter des réglages fins du service, du backup, d’une potentielle réplication, mais surtout de métrologie et d’une astreinte.

Reverse proxy HTTP

Docker est une excellente solution pour définir et déployer des environnements reproductibles mais pour permettre la communication entre les conteneurs, une solution de reverse Proxy s'impose. Bearstech a fait le choix de Traefik.

Træfik

Traefik est un reverse proxy HTTP dynamique. Il est capable d'écouter les événements levés par différentes sources et d'ajuster, en conséquence, les règles de routages vers les différentes applications. Il peut, par exemple, écouter les informations envoyées par le daemon docker et router en fonction des "tags" attachés à un conteneur docker. De plus, si plusieurs instances du même conteneur sont disponibles il va load-balancer entre ces différentes instances pour répartir la charge judicieusement. Traefik s'intègre donc particulièrement bien dans les nouvelles infrastructures très mobiles ou des conteneurs sont remplacés ou mis à l'échelle.

Découvrir notre expertise Træfik

Monitoring et supervision de l'infrastructure

Le monitoring est une dimension essentielle de la démarche DevOps, partager une analyse commune entre développeurs et Ops implique de travailler sur des données partagées et y accéder simplement.

Offrir une solution de monitoring avec des outils de visualisation de données est essentiel.

Pour répondre à ce besoin, nous déployons comme solution de référence la stack TIG composée de Telegraf, InfluxDB et Grafana.

grafana

Grafana est une solution d'analytics et de monitoring Open Source pouvant se connecter à toute base de données. Cette solution est largement utilisée pour monitorer toutes sortes d'infrastructures, applications, installations industrielles, etc.

Découvrir notre expertise Grafana

Gestion des logs

Accéder aux logs est d'une importance capitale pour les développeurs et opérateurs lors des phases de diagnostic et pour mesurer la qualité des productions logicielles.

L'objectif principal d'une solution de gestion des logs est de permettre de centraliser les logs de vos différents systèmes pour faciliter l'analyse.

Nous avons fait le choix de la stack ELK, pour assurer la collecte (Logstash), le stockage (Elasticsearch) et la visualisation (Kibana) des logs.

Elasticsearch

ElasticSearch est un moteur de recherche Open Source. Il s'agit d'une solution idéal pour la recherche de log et est une composante de la stack ELK.

Découvrir notre expertise Elasticsearch

Un panorama partiel et partial de l'outillage DevOps

Voici dans les grandes ligne notre équipement logiciel pour proposer une expérience DevOps satisfaisante à nos clients tout en garantissant le plus haut niveau de sécurité et de résilience de leur infrastructure.

Cette liste n'est pas tout à fait exhaustive et pour cause : selon votre définition de la démarche DevOps d'autres solutions pourraient-être ajoutées.

Par ailleurs, nous listons ici les outils que nous utilisons et sur lesquels nous avons fait le choix de développer une expertise. Ils sont donc adaptés à nos contraintes et à notre profil d'hébergeur et infogéreur.

Si d'autres solutions vous semblent mieux adaptées, n'hésitez pas à nous le faire savoir.

Armor Lux BNP Paribas DoYouBuzz Euler Hermes FranciaFlex