La technologie des conteneurs d’applications : avantages et sécurité

La technologie des conteneurs d’applications : avantages et sécurité

Le boom de l’informatique en nuage a rapidement mené au développement de la technologie des conteneurs comme alternative aux machines virtuelles pour optimiser les ressources, ainsi que pour simplifier le déploiement et la reproductibilité des services sur internet. Rappelons au préalable qu’une machine virtuelle utilise des ressources informatiques spécifiques : on lui alloue des cœurs, de la mémoire vive, de l’espace de stockage, et on y installe un système d’exploitation.

Un conteneur, en revanche, correspond à une couche abstraite qui contient uniquement les éléments logiciels nécessaires à l’exécution d’une application spécifique. Un conteneur comprend donc un ensemble de fichiers (code, runtime, outils systèmes, bibliothèques et paramètres) qui peuvent être exécutés de manière isolée de l’environnement hôte avec seulement quelques liens pour communiquer avec lui.

On comprend alors que la place que ces objets puisse être plus faible. 

On se retrouve donc avec des objets facilement téléchargeables, installables, exécutables, et fournissant toujours le même comportement pour le service quelque-soit le système hôte.

Comment est construite une application en conteneur ? Comment l’adapter à la demande ? Enfin, quelle confiance avoir dans la sécurité de cette technologie ? Ventio vous livre quelques éléments pour comprendre !

Les conteneurs simplifient le développement d’applications informatiques sur le cloud.

Plateformes

Plusieurs plateformes existent pour la virtualisation d’applications. On citera deux exemples :  

  • Docker probablement la plus connue car associée à de multiples dépôts sur dockerhub avec des conteneurs prêts à l’emploi, 
  • Singularity d’usage similaire, née à Stanford, est particulièrement adaptée au calcul intensif et appréciée des universités et centres de recherche.  

Ces deux plateformes sont similaires sur le principe. Elles sont basées sur les systèmes d’exploitation Linux et ont quelques nuances sur les droits d’accès aux données. 

Chez Ventio, nous avons un savoir-faire sur la conception de conteneurs Docker, et il est assez simple de rendre compatibles ces conteneurs avec Singularity, permettant une bonne interopérabilité entre les plateformes.

Comme pour le fret, le conteneur informatique est facile à transporter.

La conception des conteneurs 

L’idée générale est de simplifier et rendre reproductibles les tâches répétitives de configuration. Pour créer une application, on va donc préciser l’image de base (typiquement celle du noyau utilisé), et partir de là on liste progressivement les commandes à réaliser pour configurer le système.

Une fois cette série de commandes déterminées, on construit le conteneur, puis on l’exécute avec un point d’entrée (un programme lancé au démarrage du conteneur) en précisant éventuellement si celui-ci a besoin de dossiers ou fichiers présents sur la machine hôte. Il est également possible de composer plusieurs conteneurs entre eux en précisant leurs liens.

L’accès à des dépôts avec des applications conteneurisées prêtes à l’emploi

Il existe énormément d’applications sur le dockerhub, par exemple pour réaliser un serveur de fichiers en ligne, des services de gestion d’identités, ou pour le calcul scientifique. Quelques exemples de ces applications prêtes à l’emploi sur lesquelles Ventio a une expertise :

  • Nextcloud – un service complet pour l’hébergement de données
  • Keycloak – un service d’identités et de contrôle d’accès
  • Gitea – un service Git de gestion de versions lors de développements informatiques
  • Jupyterhub – un serveur multi-utilisateurs de notebook Jupyter pour le développement informatique sous Python
  • Pytorch  ou Tensorflow – conteneurs pour l’intelligence artificielle et l’apprentissage profond  
  • Matlab – pour le calcul scientifique

En résumé, beaucoup d’outils disponibles, open source ou sous licence, qui peuvent simplifier la tâche des utilisateurs en fournissant des systèmes prêts à l’emploi, réutilisables, reproductibles, adaptés à la transition sur le cloud et à l’innovation dans le numérique.  Ces services peuvent être déployés en quelques secondes ou minutes, à la demande et uniquement pour le temps nécessaire… Un pas vers la rationalisation des ressources informatiques.

Comme en musique, les conteneurs peuvent être orchestrés pour jouer de concert.

L’orchestration – passage à l’échelle et répartition de charge

Comment gérer en parallèle plusieurs services et adapter les services à la demande ? On parle  d’orchestration dont un système très apprécié est Kubernetes. K8s de son petit nom est un système open-source permettant d’automatiser les déploiements d’applications conteneurisées. Il permet le passage à l’échelle en dynamique en fonction des besoins des utilisateurs. Plus besoin de gérer dans le détail les serveurs sur lesquels les applications sont installées, K8s gère automatiquement l’évolution de l’infrastructure cloud et permet de répartir la charge en temps réel.

La sécurité des conteneurs et la confiance sur le cloud 

Avec la souplesse offerte, notamment avec la technologie des conteneurs d’applications, de plus en plus d’organisations se tournent vers le cloud. Avoir son cloud privé n’est pas forcément une solution abordable, et il est très avantageux de faire appel à un prestataire fournisseur d’hébergement et de ressources. Cela pose néanmoins des questions de sécurité et de confiance, car les données ou les services hébergés peuvent contenir des données à caractère stratégique ou personnel.

Quelques points liés à la sécurité des conteneurs : 

  • Pour des applications conteneurisées développées en interne, on pourra par exemple mettre en place des dépôts privés avec contrôle d’accès si l’on souhaite garantir confidentialité et disponibilité.  
  • Pour garantir la disponibilité et la confidentialité, on pourra également choisir un ou plusieurs fournisseurs qui possèdent les niveaux requis de sécurité et d’agrément, par exemple lors de l’hébergement de données sensibles de santé.  
  • Pour garantir l’intégrité des applications, on pourra mettre en place ou utiliser des méthodes de signature numérique. On citera l’exemple de Singularity, spécialement précautionneux sur cet aspect avec son format SIF (Singularity Image Format).
  • Avec les conteneurs, on permet des liens avec le système hôte. Attention à la configuration réseau et aux dossiers et fichiers qui sont rendus accessibles !

A nouveaux systèmes, nouvelles vulnérabilités. Il faudra bien entendu veiller à ce que les systèmes soient à jour, bien vérifier les droits des applications et évaluer la nécessité d’utiliser des techniques de chiffrement. En effet, sans considération particulière, une application conteneurisée peut se retrouver par défaut avec des privilèges trop élevés et travaillant sur des données pas suffisamment protégées, ce qui constituera une faille potentiellement exploitable… 

Chez Ventio, nous avons une expertise sur les aspects de sécurité liés aux conteneurs pour éviter les pièges lors de l’utilisation de ces technologies simples d’accès. Nous développons des services conteneurisés à fort niveau de sécurité hébergés chez des fournisseurs de confiance. Ventio est agréée par le Ministère de l’économie et des finances au titre du Crédit Impôt Innovation (2020-2024). A ce titre, vous pouvez obtenir 20% de crédit d’impôt si vous êtes éligible sur nos prestations de prototypage de nouveaux produits et services en technologie de l’information.

Avec des instruments tels que les conteneurs, suivez la musique chez Ventio !
end of page