SCOP d'ingénieurs experts du logiciel libre depuis 2004
+33 1 70 61 60 16

Outils Devops

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

Définition

Qu'est-ce que 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.

Notre workflow

Conteneurisation

Notre workflow vous accompagne de la création de vos applications à leur exploitation.

Gestion de configuration

Notre stack s'appuie sur des solutions Libre et Open Source.

Outils de monitoring

Nos solutions surveillent en continu vos applications pour garantir leur performance et disponibilité.

Outils de déploiement

L'ensemble des outils mis à votre disposition sont surveillé et infogéré.

Analyse de la qualité de code

Adapter votre workflow pour une experience de travail optimale.

La méthodologie DevOps

Les réponses de la méthodologie DevOps.

Pour répondre à ses objectifs, 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.

Choisir des outils DevOps

Quels sont les critères de sélection 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é.

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 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.

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.

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 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 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.