Les conteneurs sont une forme de virtualisation des systèmes d'exploitation. Un seul conteneur peut être utilisé pour faire une exécution à partir d'un petit microservice ou d'un processus logiciel vers une application plus grande. Tous les exécutables, le code binaire, les bibliothèques et les fichiers de configuration nécessaires se trouvent à l'intérieur d'un conteneur. Par rapport aux approches de virtualisation des serveurs ou des machines, les conteneurs ne contiennent pas d'images de système d'exploitation. Cela les rend plus légers et plus portables, avec beaucoup moins de frais généraux. Dans les déploiements d'applications plus importants, plusieurs conteneurs peuvent être déployés en tant que clusters contenant un ou plusieurs conteneurs. Ces clusters peuvent être gérés par un orchestrateur de conteneurs tel que Kubernetes.
Les conteneurs constituent un moyen simple de créer, tester, déployer et redéployer des applications dans plusieurs environnements, depuis l'ordinateur portable local d'un développeur jusqu'au data center sur site et même dans le cloud. Les conteneurs présentent plusieurs avantages :
Les conteneurs sont utilisés dans plusieurs cas courants :
Les utilisateurs d'environnements de conteneurs connaissent probablement déjà ces deux outils et plateformes couramment utilisés pour créer et gérer les conteneurs : Docker et Kubernetes.
Docker est un environnement d'exécution couramment utilisé pour créer et concevoir des logiciels à l'intérieur de conteneurs. Les images Docker (snapshots de copie sur écriture) permettent de déployer des applications ou des logiciels conteneurisés dans plusieurs environnements, du développement jusqu'aux tests et à la production. Docker repose sur des normes ouvertes et est compatible avec la plupart des environnements d'exploitation, notamment Linux, Microsoft Windows et d'autres infrastructures sur site ou dans le cloud.
Toutefois, les applications conteneurisées peuvent s'avérer complexes. En production, un grand nombre d'entre elles peut nécessiter des centaines, voire des milliers de conteneurs distincts. Il est alors utile d'intégrer d'autres outils aux environnements d'exécution de conteneurs Docker afin d'orchestrer ou de gérer les conteneurs en cours d'exécution.
L'un des outils les plus populaires est Kubernetes, un orchestrateur de conteneurs qui reconnaît plusieurs environnements d'exécution, notamment Docker.
Kubernetes orchestre le fonctionnement simultané de plusieurs conteneurs. Il gère, par exemple, l'utilisation des ressources de l'infrastructure sous-jacente pour les applications conteneurisées, telles que les ressources de calcul, de réseau et de stockage requises. Les outils d'orchestration comme Kubernetes facilitent l'automatisation et l'évolutivité des workloads basés sur des conteneurs pour les environnements de production.
Les utilisateurs confondent parfois la technologie de conteneur avec les machines virtuelles (VM) ou la technologie de virtualisation de serveurs. Bien qu'il existe des similarités de base, les conteneurs sont très différents des machines virtuelles.
Les machines virtuelles s'exécutent dans un environnement d'hyperviseur dans lequel chacune d'entre elles doit inclure son propre système d'exploitation invité, ainsi que les fichiers binaires, les bibliothèques et les applications correspondants. Cette configuration consomme une grande quantité de ressources système et implique des frais supplémentaires, en particulier lorsque plusieurs machines virtuelles s'exécutent sur le même serveur physique, chacune avec son propre système d'exploitation invité.
En revanche, chaque conteneur partage le même système d'exploitation hôte ou noyau système et est beaucoup plus léger (quelques mégaoctets seulement). Le démarrage d'un conteneur ne prend donc généralement que quelques secondes (contre plusieurs minutes pour une machine virtuelle classique dont la taille peut atteindre plusieurs gigaoctets).
NetApp mise sur la technologie des conteneurs et travaille sur des outils et des innovations de gestion du stockage persistant qui ont fait leurs preuves pour toutes les applications, partout. Le développement de Trident en est la parfaite illustration. Grâce à Trident, les applications conteneurisées consomment plus facilement que jamais du stockage persistant à la demande.
Nous recherchons sans cesse les moyens d'accélérer le DevOps en favorisant la rapidité et l'agilité du développement logiciel. L'utilisation des ressources d'infrastructure telles que le stockage doit être simple. Tel est l'engagement de NetApp qui propose des solutions de gestion de conteneurs et d'autres outils facilitant l'évolutivité et l'extension des applications sur une grande variété de plateformes.
Bandwidth est un fournisseur de plateforme d'API qui permet la mise en œuvre de services vocaux, de messagerie et de services d'urgence utilisés par des millions de personnes chaque jour. Les développeurs innovent sans arrêt pour faire évoluer la plateforme de l'entreprise et commercialiser de nouveaux services.
Pour ce faire, PostFinance mise sur des technologies et des outils innovants développés ou adaptés spécifiquement pour le marché suisse. Les systèmes NetApp® fournissent les données de fichier permettant de sécuriser les transactions bancaires et accélèrent le développement de produits et services financiers avec un stockage persistant.