La prochaine grosse innovation de Windows Server 2016 sont les conteneurs ! On n’arrête pas de parler de Docker (créé par des français) qui sont en train de révolutionner l’informatique, le Cloud et la façon de développer. Mark Russinovich (CTO Microsoft Azure) a publié un article décrivant les différents types de conteneurs proposés via Windows Server 2016. Les conteneurs sont une nouvelle forme de virtualisation. Ils sont à cheval entre la virtualisation de système d’exploitation et d’applications. Le but est de créer une perception d’isolation complète entre l’application et le système d’exploitation. Pour ce faire, la technologie utilise l’isolation de namespaces. Ces derniers incluent toutes les ressources auxquelles une application peut interagir avec (fichiers, ports, listes de processus en cours d’exécution, etc.). Ainsi le conteneur ne peut accéder qu’aux ressources incluses dans son namespace virtualisé. Docker (créé par des français) a permis d’améliorer le concept d’isolation de namespace en fournissant un ensemble d’outils, de packages et de mécanismes de déploiement.
Sur Windows Server 2016, on retrouve deux types de conteneurs : Windows Server Containers et Hyper-V Containers. Les conteneurs Windows requiert des APIs Windows du kernel de l’hôte Windows. Ces derniers ne peuvent donc pas être lancés sur des hôtes Linux. Il en va de même pour les conteneurs Linux.
Les conteneurs Windows Server partage le système d’exploitation avec l’hôte et chacun des conteneurs sur l’hôte. De ce fait, les APIs et données partagées peuvent permettre à une application de sortir de son isolation. La quantité de données et des API communes signifie qu'il peut y avoir des situations où une application sort de son conteneur ou refuse l’accès à un service pour l’hôte ou d’autres conteneurs, que ce soit par la conception ou à cause d'un défaut de mise en œuvre dans l'isolement de namespaces ou de gouvernance des ressources. Les conteneurs Windows Server sont d’usages lorsque l’application et le système d’exploitation sont dans la même limite de confiance. Ceci permet ainsi d’éviter d’éventuels problèmes de sécurité.
Pour parer à ce problème, Microsoft propose aussi les conteneurs Hyper-V. Ces derniers donnent plus d’isolation puisque chaque conteneur a sa propre copie du kernel Windows. Ils se voient aussi assignés de la mémoire directement. Hyper-V est utilisé pour l’isolation du processeur, de la mémoire, et des IOs. Les conteneurs Hyper-V offrent un niveau d’isolation similaire aux machines virtuelles puisque l’hôte expose qu’une sous partie de l’interface au conteneur pour communiquer et partager des ressources avec l’hôte. De ce fait, les conteneurs Hyper-V ont un temps de démarrage plus long et une densité moins importante que les conteneurs Windows Server. Cependant, ils donnent une isolation permettant d’exécuter des applications non connues.
Les deux types de conteneurs peuvent utiliser les mêmes packages déployés par Docker. Il n’y a donc pas de développement spécifique pour l’un des deux types de conteneurs.
Microsoft a utilisé ce principe de conteneurs pour créer des microservices pour ces différents services dans le cloud tels qu’Office 365, Microsoft Intune etc. Il en va de soi que nous commençons juste à parler des conteneurs qui représentent le prochain niveau du cloud en entreprise.
Plus d’informations sur l’article (en anglais) : Containers: Docker, Windows and Trends