Comment maîtriser sa dette technique

On vous a déjà beaucoup parlé de Docker dans nos articles : l’outil est pratique pour créer des environnements d’exécution isolés, facilement reproductibles et partageables. Mais quand il s’agit de passer Docker en production, c’est une autre histoire : le réseau, les volumes et autres briques viennent complexifier les opérations, lire notre article à ce sujet.
Nous ne répéterons pas ici nos mises en garde sur les bonnes pratiques. Dans cet article nous allons vous montrer comment créer des boucles de rétroactions vertueuses avec Docker une fois votre application en production, en nous concentrant sur les questions de sécurité de vos images.
Au départ, le développeur construit l’image Docker de son application en utilisant une image de base qui lui permet de bénéficier d’un environnement d’exécution, puis utilise une registry Docker pour l’instancier sur un serveur. Il met en place des procédés d’automatisation (avec Gitlab par exemple), et il peut se dire qu’il a pu “faire le job”, mais pour autant peut-on se réjouir d’avoir “figé” une application dans un conteneur ?
En effet, dans le cas d’un simple déploiement de conteneurs, rien ne nous assure que l’application bénéficie des dernières mises à jour de sécurité. Au fur et à mesure des builds et des déploiements, la mise à jour du code de l’application est une chose nécessaire mais non suffisante : on ne sait pas dans quelle mesure l’OS embarqué dans le conteneur bénéficie des dernières mises à jour.
L’utilisation de Docker en production revient à déléguer une partie du travail d’administration système au développeur, qui se retrouve avec la responsabilité de maintenir ses images à jour. Cette tâche nécessite de se tenir informé des vulnérabilités récentes et de les corriger le plus rapidement possible.
Chez Bearstech, nous avons une longue expérience dans ce domaine, pour en savoir plus vous pouvez lire notre article sur les bonnes pratiques pour la sécurité de vos systèmes.
Nous appliquons les mêmes principes à notre politique de sécurité Docker en maintenant des images de base pour les environnements d’exploitation des langages courants (PHP, Python, Ruby, NodeJS …).
L’utilisation de ces images par le développeur pour construire celle de son application lui permettra de s’assurer qu’à chaque “rebuild” de l’image, l’OS utilisé pour créer l’instance est non seulement à jour, mais réglé pour que l’application tourne dans un environnement optimisé pour la production.
Sécurité, performance, sérénité : confiez vos serveurs à des spécialistes.
Si l'on veut prendre en compte les éléments qui précèdent dans le cadre de l’exploitation de conteneurs en production, notre schéma de départ va prendre une autre allure :
Nous allons utiliser notre système de monitoring pour surveiller la fraîcheur de l’image Docker de l’application et la comparer avec celle de l’image de l’environnement d’exécution utilisée pour le build : ces informations sont ensuite remontées dans le dashboard mis à la disposition de nos clients, et le développeur peut d’un coup d’oeil savoir si son application doit être redéployée pour bénéficier des dernières mises à jour de sécurité.
Bearstech a mis au point une méthodologie de surveillance et de remontée d’informations depuis les infrastructures que nous infogérons et qui s’adapte aux conteneurs.
Ces outils ne vous enferment pas dans une boîte noire, ils reposent tous sur des briques standard et libres, et nous nous appuyons sur notre expertise pour vous fournir la méthodologie qui vous permettra de construire un workflow devops qui garantira la sécurité de vos images en production :
Tous les développeurs n’ont pas la chance d’avoir un administrateur système disponible en permanence, et notre rôle est d’accompagner, conseiller et fiabiliser les environnements d’exploitation, alors n’hésitez pas à vous documenter sur notre workflow DevOps et à nous contacter pour fiabiliser vos projets.
Mieux comprendre le monde du DevOps et de l'administration système.
Abonnez-vous à notre newsletterNotre équipe possède une vaste expertise technologique.