
On parle souvent de conteneurs et de machines virtuelles. Vous êtes-vous déjà demandé ce qu’ils pouvaient bien être et la différence entre les deux ? nous vous expliquons en quoi ils consistent et comment ils sont utilisés.
Dans un ordinateur classique, on trouve trois grands ensembles : le matériel, le système d’exploitation et les applications. Le rôle du système d’exploitation est primordial : il exploite le matériel et présente des capacités aux applications (via des interfaces de programmation, ou API), qui peuvent les utiliser pour proposer des services. Le principe ne change pas, quel que soit le type d’ordinateur ou le système.
Si ce système suffit dans la majorité des cas, il en existe de nombreux où cette organisation devient rébarbative. Exemple classique : vous développez une application sur un Mac et souhaitez en tester une variante Windows. En toute logique, vous vous tournez vers un ordinateur équipé du système de Microsoft pour y installer l’application et observer son comportement.
Autre problématique : le système d’exploitation. Tout éditeur d’une application doit viser une ou plusieurs versions d’un système, chacune avec des spécificités. La configuration peut largement varier d’une machine à une autre, même si les composants centraux sont normalement présents. Il faut notamment composer avec les dépendances de l’application, c’est-à-dire tous les composants dont elle a besoin pour fonctionner.
Pour s’affranchir de ces problèmes dans certains scénarios, beaucoup recourent aujourd’hui à une forme de virtualisation ou une autre. Commençons par les machines virtuelles, qui existent depuis longtemps.