IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Au-del� de Docker : Apple d�voile discr�tement "Container", un framework Swift open source pour faciliter l'ex�cution de containers Linux sur macOS
Et am�liorer la performance et la s�curit�

Le , par St�phane le calme

122PARTAGES

4  0 
Au-del� de Docker : Apple d�voile discr�tement "Container", un framework Swift open source pour faciliter l�ex�cution de containers Linux sur macOS
et am�liorer la performance et la s�curit�

Apple a r�cemment fait un pas significatif vers l'am�lioration de l'exp�rience de d�veloppement Linux sur macOS avec le lancement discret d'un nouvel outil baptis� "Container" sur GitHub. Cette initiative marque un tournant pour les d�veloppeurs utilisant des machines Mac mais n�cessitant un environnement de d�veloppement Linux, offrant une alternative native aux solutions existantes comme Docker ou Podman. Malgr� ses innovations, "Container" pr�sente certaines limitations. Des probl�mes d'acc�s aux services sur localhost ont �t� signal�s, ainsi que des particularit�s potentielles dans la gestion de la m�moire, en particulier sur les versions ant�rieures de macOS. Bien que con�u pour le futur macOS 26 Tahoe, son fonctionnement actuel sous macOS 15 Sequoia peut rencontrer des restrictions, et la prise en charge compl�te du "memory ballooning" est encore en d�veloppement.

Contexte : Linux sur macOS, un d�fi de longue date

Historiquement, macOS repose sur le noyau XNU, qui ne prend pas nativement en charge les primitives de conteneurisation (cgroups, namespaces) comme le fait Linux. Les d�veloppeurs int�ress�s par les environnements conteneuris�s sous macOS ont d� recourir � des machines virtuelles (QEMU, VirtualBox, Docker Desktop, Colima ou Lima) pour faire tourner des conteneurs Linux dans une VM. Bien que ces solutions fonctionnent, elles introduisent une couche de virtualisation suppl�mentaire, avec un impact sur les performances, l�UX (montage de volumes, acc�s au r�seau�) et parfois des limitations (disks, CPU partag�s).

Apple, discr�tement, semble vouloir changer la donne.

Container ex�cute des images OCI standard, mais n'utilise pas une seule VM Linux partag�e. Au lieu de cela, il cr�e une petite machine virtuelle Linux pour chaque conteneur que vous d�marrez. Cela semble lourd au premier abord, mais les VM sont l�g�res et d�marrent rapidement. Chacune est isol�e, ce qui, selon Apple, am�liore � la fois la s�curit� et la confidentialit�. Les d�veloppeurs peuvent ex�cuter localement des charges de travail conteneuris�es gr�ce � la prise en charge native de macOS et sans avoir besoin d'installer des plateformes de conteneurs tierces.

Les conteneurs, pour m�moire, sont des paquets compacts qui contiennent une application et tout ce dont elle a besoin pour fonctionner. Les d�veloppeurs les utilisent pour garantir la coh�rence entre le d�veloppement, les tests et la production. Ils sont largement utilis�s dans les pipelines de CI et les environnements de serveur, car ils peuvent �tre d�plac�s d'une machine � l'autre sans interruption.

L'approche d'Apple avec Container reprend cette id�e, mais remplace le mod�le de VM partag�e par des machines virtuelles minimales s�par�es. Elle s'appuie fortement sur les technologies Apple telles que le framework de virtualisation pour le lancement de machines virtuelles Linux, vmnet pour la mise en r�seau, XPC pour la communication entre les processus et launchd pour le contr�le des services. L'outil prend m�me en charge Keychain pour le stockage des informations d'identification et utilise la journalisation macOS pour les diagnostics.

En quoi est-il diff�rent de Docker ?

Alors que Docker s'appuie sur les primitives de conteneurisation int�gr�es � Linux (comme les espaces de noms et les cgroups), Container d'Apple utilise le cadre Virtulization.framework pour ex�cuter des conteneurs dans des micro-VM enti�rement s�par�s. Cela signifie des limites de s�curit� plus fortes, mais avec un surco�t de d�marrage suppl�mentaire par rapport aux conteneurs Linux natifs.

Docker utilise une architecture bas�e sur des d�mons avec des syst�mes de fichiers en couches et une configuration r�seau complexe. Le conteneur d'Apple se concentre sur des composants plus simples et composables. Il n'y a pas de d�mon central, pas d'analyse de fichiers Docker ni de syst�mes de fichiers superpos�s. Tout est g�r� � l'aide des API Swift et des commandes shell de la CLI.

Une approche native de la conteneurisation Linux

Contrairement aux approches traditionnelles qui reposent souvent sur une seule machine virtuelle Linux partag�e, "Container" d'Apple propose une m�thode plus int�gr�e et s�curis�e. Chaque conteneur est ex�cut� dans une machine virtuelle Linux l�g�re et d�di�e, ce qui garantit une meilleure isolation et une s�curit� accrue. Cette architecture minimise la surface d'attaque et simplifie la maintenance en utilisant un syst�me de fichiers minimal.

L'outil tire parti des frameworks existants de macOS, offrant une int�gration transparente avec l'�cosyst�me Apple. Il permet aux d�veloppeurs de g�rer les charges de travail conteneuris�es localement avec un support natif, �liminant le besoin d'installer des plateformes de conteneurisation tierces. Des fonctionnalit�s telles que l'int�gration du trousseau pour le stockage des informations d'identification et l'utilisation des journaux macOS pour le diagnostic soulignent cette approche native.

Ce qu�a lanc� Apple sur GitHub

Tout commence avec un d�p�t GitHub publi� par Apple, nomm� simplement Container. L�objectif est simple mais ambitieux : permettre l�ex�cution de conteneurs Linux � natifs � sur macOS, sans recours � une VM compl�te. Le code est �crit en Swift, sp�cialement optimis� pour les puces Apple Silicon.
Composants majeurs :
  • container : outil en Swift pour cr�er et ex�cuter des conteneurs Linux sous macOS.
  • container-builder-shim : interface entre le syst�me h�te (Swift) et BuildKit, pour construire des images conteneurs.
  • �mulation l�g�re de conteneurs OCI (Docker) avec appui sur des services internes comme containerd, runc/buildkit adapt�s.

Le d�p�t Apple rejoint un effort d�j� amorc� par la communaut� open source (organisation macOScontainers), qui visait � forker containerd/buildkit/runc pour supporter macOS (� travers des projets comme darwin containers, rund, etc.)


Optimisation et avantages

Le nouveau framework de conteneurisation d'Apple est optimis� pour les puces Apple Silicon, promettant des performances am�lior�es et des temps de d�marrage de sous-seconde pour chaque conteneur. Cette efficacit� est cruciale pour les d�veloppeurs qui jonglent avec plusieurs environnements de d�veloppement. Chaque machine virtuelle l�g�re re�oit une adresse IP d�di�e, ce qui facilite la gestion des r�seaux au sein des environnements conteneuris�s.

L'outil de ligne de commande des conteneurs permet aux utilisateurs de cr�er des images, de d�marrer des conteneurs et d'interagir avec les registres OCI. Il fonctionne avec un service d'arri�re-plan appel� container-apiserver. Lorsque vous ex�cutez le d�marrage du syst�me de conteneurs, cet agent lance et g�re tous les processus de support. Il s'agit notamment de container-core-images pour le stockage des images et de container-network-vmnet pour la gestion des fonctions r�seau. Chaque conteneur en cours d'ex�cution obtient sa propre instance de container-runtime-linux, qui g�re la communication avec la VM.

En termes de s�curit� et de confidentialit�, la cr�ation d'une machine virtuelle Linux distincte pour chaque conteneur est un avantage majeur. Cela am�liore l'isolation des processus et offre un contr�le plus pr�cis sur le partage de fichiers. Pour les entreprises et les d�veloppeurs soucieux de la s�curit�, cette caract�ristique est particuli�rement attrayante.

Comme chaque conteneur poss�de sa propre VM, cette configuration permet une meilleure isolation. Cela signifie �galement que vous n'avez pas � surexposer les ressources de l'h�te lorsque vous montez des fichiers. Vous pouvez monter uniquement ce qui est n�cessaire dans le conteneur, en �vitant les configurations de partage de fichiers fourre-tout que certains autres outils requi�rent.

Limitations et perspectives d'avenir

Si un conteneur tente d'acc�der � un service sur 127.0.0.1, il n'atteindra pas votre machine h�te. Vous pouvez contourner ce probl�me en faisant pointer votre conteneur sur 192.168.64.1 et en utilisant socat pour transf�rer le trafic de cette adresse vers localhost. Ce n'est pas tr�s �l�gant, mais cela fonctionne.

macOS ne prend pas actuellement en charge le ballonnement complet de la m�moire, de sorte que la m�moire lib�r�e dans la VM Linux du conteneur peut ne pas �tre renvoy�e � l'h�te. L'ex�cution de quelques grands conteneurs peut amener macOS � conserver plus de m�moire que n�cessaire. Le red�marrage des conteneurs permet de r�cup�rer cette m�moire.

Sur des versions plus anciennes comme macOS 15, l'exp�rience est pire. Les conteneurs ont �t� con�us pour macOS 26. Sur les syst�mes plus anciens, le r�seau entre les conteneurs ne fonctionne pas, l'attribution d'adresses IP peut �chouer et la pile r�seau peut se comporter de mani�re incorrecte. Apple ne pr�voit pas de corriger les probl�mes qui n'affectent que macOS 15.

Apple a publi� un outil de d�veloppement sous une licence permissive et encourage les contributions de la communaut�. Container et le paquetage de conteneurisation de niveau inf�rieur sont tous deux open source.

Le fait qu'Apple ait rendu "Container" open source sur GitHub est un signe positif. Cela encourage les contributions de la communaut� et promet des am�liorations continues et l'ajout de nouvelles fonctionnalit�s. Cette initiative d�montre l'engagement d'Apple � soutenir les d�veloppeurs travaillant dans des environnements bas�s sur Linux tout en pr�f�rant le confort et l'efficacit� de macOS.

Il ne remplace pas encore Docker, mais il s'agit d'une initiative int�ressante de la part d'une entreprise qui traite g�n�ralement le terminal comme un passe-temps secondaire. Container ressemble � un v�ritable effort pour apporter le d�veloppement de conteneurs Linux natifs � macOS... avec la saveur propre � Apple.

Conclusion

Le lancement de "Container" par Apple est une �tape significative pour les d�veloppeurs Linux sur macOS. En offrant une solution native, s�curis�e et performante pour l'ex�cution de conteneurs Linux, Apple cherche � simplifier et � enrichir le flux de travail de d�veloppement. Bien que l'outil en soit encore � ses d�buts avec quelques limitations, son statut open source et l'engagement d'Apple � l'am�liorer sugg�rent un avenir prometteur pour l'int�gration du d�veloppement Linux sur la plateforme macOS.

Source : GitHub (1, 2)

Et vous ?

Selon vous, quel impact "Container" aura-t-il sur l'adoption de macOS par les d�veloppeurs Linux qui utilisaient auparavant d'autres syst�mes d'exploitation pour leurs besoins de conteneurisation ?

Quels sont, � votre avis, les principaux d�fis techniques ou d'adoption que "Container" pourrait rencontrer, et comment Apple pourrait-il les surmonter ?

Pensez-vous que cette initiative d'Apple pourrait encourager d'autres g�ants technologiques � d�velopper des solutions de conteneurisation plus natives pour leurs propres �cosyst�mes ?

Compte tenu des limitations actuelles et du statut open source, quelles fonctionnalit�s ou am�liorations prioritaires souhaiteriez-vous voir ajout�es � "Container" dans les prochaines versions ?
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

Une erreur dans cette actualit� ? Signalez-nous-la !