{"id":42175,"date":"2019-03-18T00:00:00","date_gmt":"2019-03-17T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem"},"modified":"2020-02-18T13:45:00","modified_gmt":"2020-02-18T10:45:00","slug":"evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","title":{"rendered":"L'\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"L&#039;\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres\" src=\"\/wp-content\/uploads\/2019\/03\/3c677d0628824497039901c0179a8749.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUn jour, j'ai d\u00e9cid\u00e9 d'\u00e9crire un article sur la livraison sous forme de conteneurs Docker et de paquets deb, mais en commen\u00e7ant, je me suis retrouv\u00e9 \u00e0 plonger dans les temps anciens des premiers ordinateurs personnels et m\u00eame des calculatrices. Ainsi, au lieu de comparaisons s\u00e8ches entre Docker et deb, voici mes r\u00e9flexions sur le th\u00e8me de l'\u00e9volution, que je vous soumets.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nTout produit, peu importe ce qu'il est, doit d'une mani\u00e8re ou d'une autre parvenir aux serveurs de production, il doit \u00eatre configur\u00e9 et lanc\u00e9. C'est ce dont cet article va parler.<\/p>\n<p>Je vais r\u00e9fl\u00e9chir dans un contexte historique, \u00ab je chante ce que je vois \u00bb, ce que j'ai vu lorsque j'ai commenc\u00e9 \u00e0 \u00e9crire du code et ce que j'observe maintenant, ce que nous utilisons actuellement et pourquoi. Cet article ne pr\u00e9tend pas \u00eatre une recherche compl\u00e8te, certains points sont omis, c'est mon point de vue personnel sur ce qui a \u00e9t\u00e9 et ce qui est maintenant.<\/p>\n<p>Alors, dans les bons vieux temps\u2026 le moyen de livraison le plus ancien que j'ai connu \u00e9tait les cassettes de magn\u00e9tophones. J'avais un ordinateur BK-0010.01\u2026<\/p>\n<h2>L'\u00e9poque des calculatrices<\/h2>\n<p>\nNon, il y avait un moment encore plus ancien, il y avait une autre calculatrice <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-61\">MK-61<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-52\">MK-52<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"L&#039;\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres\" src=\"\/wp-content\/uploads\/2019\/03\/ea68507cd83b4da3038cea7329ff1813.jpg\" style=\"display:block;margin: 0 auto;\" \/> Ainsi, lorsque j'avais <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-61\">MK-61<\/a><\/noindex>, le moyen de transf\u00e9rer le programme \u00e9tait une simple feuille de papier quadrill\u00e9e sur laquelle \u00e9tait inscrite le programme, qui, en cas de besoin, \u00e9tait tap\u00e9 manuellement dans la calculatrice. Tu veux jouer (oui, oui, m\u00eame sur cette calculatrice pr\u00e9historique, il y avait des jeux) \u2014 tu t'assois et tu entres le programme dans la calculatrice. \u00c9videmment, en \u00e9teignant la calculatrice, le programme disparaissait. En plus des codes que j'avais \u00e9crits \u00e0 la main sur le papier, des programmes \u00e9taient publi\u00e9s dans les revues \u00ab Radio \u00bb et \u00ab Technique des jeunes \u00bb et \u00e9taient \u00e9galement imprim\u00e9s dans des livres de l'\u00e9poque.<\/p>\n<p>La modification suivante \u00e9tait la calculatrice <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-52\">MK-52<\/a><\/noindex>, elle avait d\u00e9j\u00e0 un semblant de stockage de donn\u00e9es non volatile. Maintenant, il n'\u00e9tait plus n\u00e9cessaire de taper le jeu ou le programme manuellement, apr\u00e8s avoir effectu\u00e9 quelques mouvements magiques avec les boutons, il se chargeait tout seul.<\/p>\n<p>Le volume du plus grand programme dans la calculatrice \u00e9tait de 105 \u00e9tapes, et la taille de la m\u00e9moire permanente dans le MK-52 \u00e9tait de 512 \u00e9tapes.<\/p>\n<p>Au fait, s'il y a des fans de ces calculatrices qui lisent cet article \u2014 pendant que j'\u00e9crivais cet article, j'ai trouv\u00e9 un \u00e9mulateur de calculatrice pour Android et des programmes pour cela. En avant, dans le pass\u00e9 !<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.cax.pmk.ext\">\u00c9mulateur MK-61 pour Android<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/xvadim.github.io\/xbasoft\/pmk\/pmk.html\">Catalogue des programmes pour MK-61<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><b>Une petite digression sur MK-52<\/b> <i>(de Wikip\u00e9dia)<\/i><\/p>\n<p>MK-52 a vol\u00e9 dans l'espace \u00e0 bord du vaisseau \u00ab Soyouz TM-7 \u00bb. Il \u00e9tait pr\u00e9vu de l'utiliser pour le calcul de la trajectoire d'atterrissage en cas de d\u00e9faillance de l'ordinateur de bord.<\/p>\n<p>Depuis 1988, le MK-52 avec le module d'extension de m\u00e9moire \u00ab \u00c9lectronique-Astro \u00bb \u00e9tait fourni aux navires de la marine dans le cadre de l'ensemble de calcul pour navigateurs. <\/p><\/blockquote>\n<h2>Les premiers ordinateurs personnels<\/h2>\n<p><img decoding=\"async\" alt=\"L&#039;\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres\" src=\"\/wp-content\/uploads\/2019\/03\/5d443c3919023854c53c83ac2265cea3.jpg\" style=\"display:block;margin: 0 auto;\" \/> Retournons \u00e0 l'\u00e9poque <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%9A_(%D1%81%D0%B5%D0%BC%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%BE_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BE%D0%B2)\">BK-0010<\/a><\/noindex>. \u00c9videmment, il y avait plus de m\u00e9moire, et il n'\u00e9tait plus du tout envisageable de saisir le code \u00e0 partir d'un document (bien que, pendant un certain temps, j'ai fait pr\u00e9cis\u00e9ment cela, car je n'avais pas d'autre support). Les cassettes audio pour magn\u00e9tophones deviennent le principal moyen de stockage et de distribution de logiciels.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><br \/>\n<img decoding=\"async\" alt=\"L&#039;\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres\" src=\"\/wp-content\/uploads\/2019\/03\/988316eac02a95a16e15502a826f0653.jpg\" style=\"display:block;margin: 0 auto;\" \/>Le stockage sur cassette \u00e9tait g\u00e9n\u00e9ralement sous la forme d'un ou deux fichiers binaires, tout le reste \u00e9tant contenu \u00e0 l'int\u00e9rieur. La fiabilit\u00e9 \u00e9tait tr\u00e8s faible, il fallait garder 2-3 copies de programme. Le temps de chargement n'\u00e9tait pas non plus satisfaisant, les passionn\u00e9s exp\u00e9rimentaient avec divers codes de fr\u00e9quence pour surmonter ces inconv\u00e9nients. \u00c0 cette \u00e9poque, je ne m'occupais pas encore de d\u00e9veloppement logiciel professionnel (\u00e0 l'exception de quelques programmes simples en Basic), donc je ne peux malheureusement pas expliquer comment tout cela \u00e9tait agenc\u00e9 \u00e0 l'int\u00e9rieur. Le simple fait que l'ordinateur ne dispose que de RAM d\u00e9terminait en grande partie la simplicit\u00e9 du sch\u00e9ma de stockage des donn\u00e9es.<\/p>\n<h2>L'apparition de supports d'information fiables et volumineux<\/h2>\n<p>\nPlus tard, les disquettes apparaissent, simplifiant le processus de copie et augmentant la fiabilit\u00e9.<br \/>\nMais la situation change radicalement seulement avec l'apparition de supports locaux suffisamment grands sous forme de HDD.<\/p>\n<p>Le type de distribution change fondamentalement : des programmes d'installation apparaissent, qui g\u00e8rent le processus de configuration du syst\u00e8me ainsi que le nettoyage apr\u00e8s suppression, car les programmes ne sont plus simplement lus en m\u00e9moire, mais sont d\u00e9j\u00e0 copi\u00e9s sur le stockage local, \u00e0 partir duquel il faut \u00e9galement savoir supprimer ce qui ne sert plus en cas de besoin.<\/p>\n<p>Parall\u00e8lement, la complexit\u00e9 des logiciels livr\u00e9s augmente.<br \/>\nLe nombre de fichiers dans la distribution passe d'une unit\u00e9 \u00e0 des centaines et des milliers, des conflits de versions de biblioth\u00e8ques et d'autres d\u00e9sagr\u00e9ments commencent, lorsque diff\u00e9rents programmes utilisent les m\u00eames donn\u00e9es.<\/p>\n<p><img decoding=\"async\" alt=\"L&#039;\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres\" src=\"\/wp-content\/uploads\/2019\/03\/48af8fca591a1061df45cd619854a59a.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u00c0 cette \u00e9poque, je ne connaissais pas encore l'existence de Linux, je vivais dans un monde de MS DOS et, plus tard, de Windows, et je programmais en Borland Pascal et Delphi, tout en jetant parfois un \u0153il vers C++. Pour la livraison des produits \u00e0 cette \u00e9poque, beaucoup utilisaient InstallShield <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/InstallShield\">fr.wikipedia.org\/wiki\/InstallShield<\/a><\/noindex>, qui \u00e9tait tout \u00e0 fait capable de r\u00e9soudre toutes les t\u00e2ches de d\u00e9ploiement et de configuration des logiciels.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><\/p>\n<h2>L'\u00e8re de l'Internet<\/h2>\n<p>\nLa complexit\u00e9 des syst\u00e8mes logiciels augmente progressivement, passant de monolithes et d'applications de bureau \u00e0 des syst\u00e8mes distribu\u00e9s, des clients l\u00e9gers et des microservices. Il ne s'agit plus de configurer une seule application, mais un ensemble d'entre elles, de mani\u00e8re \u00e0 ce qu'elles fonctionnent ensemble.<\/p>\n<p>La conception a compl\u00e8tement chang\u00e9, Internet est arriv\u00e9, ouvrant l'\u00e8re des services cloud. \u00c0 cette \u00e9poque, c'\u00e9tait encore aux premiers stades, sous forme de sites, et personne ne r\u00eavait encore vraiment de services. Mais cela a marqu\u00e9 un tournant dans l'industrie, tant en mati\u00e8re de d\u00e9veloppement que de livraison d'applications.<\/p>\n<p>Pour moi, ce moment a marqu\u00e9 un changement de g\u00e9n\u00e9ration chez les d\u00e9veloppeurs (ou \u00e9tait-ce juste dans mon entourage) et il y avait une impression que toutes les anciennes m\u00e9thodes de livraison avaient \u00e9t\u00e9 oubli\u00e9es d'un coup et que tout avait recommenc\u00e9 depuis le d\u00e9but : toute la livraison s'est faite avec des scripts temporaires, que l'on a fi\u00e8rement appel\u00e9s \u00ab Continuous delivery \u00bb. En r\u00e9alit\u00e9, une sorte de p\u00e9riode de d\u00e9sordre a commenc\u00e9, o\u00f9 l'ancien \u00e9tait oubli\u00e9 et inutilis\u00e9, et le nouveau n'\u00e9tait tout simplement pas l\u00e0.<\/p>\n<p>Je me souviens des temps o\u00f9, dans l'entreprise o\u00f9 je travaillais alors (je ne dirai pas son nom), au lieu de faire un build avec ant (maven n'\u00e9tait pas encore populaire ou n'existait pas), les gens compilaient simplement des jar dans l'IDE et les commettaient paisiblement dans SVN. Du coup, le d\u00e9ploiement consistait \u00e0 r\u00e9cup\u00e9rer le fichier de SVN et \u00e0 le copier par SSH sur la machine cible. C'\u00e9tait aussi simple que \u00e7a.<\/p>\n<p>\u00c0 cette \u00e9poque, la livraison de simples sites en PHP se faisait de mani\u00e8re tr\u00e8s primitive, en copiant simplement le fichier corrig\u00e9 via FTP sur la machine cible. Parfois, m\u00eame cela n'\u00e9tait pas fait \u2014 le code \u00e9tait modifi\u00e9 en temps r\u00e9el sur le serveur de production, et c'\u00e9tait particuli\u00e8rement chic s'il y avait des sauvegardes quelque part.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>des paquets RPM et DEB<\/h4>\n<p>\n<img decoding=\"async\" alt=\"L&#039;\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres\" src=\"\/wp-content\/uploads\/2019\/03\/8590e7db6c67cad4b97654465ba5e946.jpg\" style=\"display:block;margin: 0 auto;\" \/>D'un autre c\u00f4t\u00e9, avec l'\u00e9volution d'Internet, les syst\u00e8mes de type UNIX ont commenc\u00e9 \u00e0 gagner en popularit\u00e9, et c'est \u00e0 cette \u00e9poque que j'ai d\u00e9couvert RedHat Linux 6, vers 2000. Il est \u00e9vident qu'il y avait \u00e9galement des outils pour la distribution de logiciels, selon Wikip\u00e9dia, RPM, le principal gestionnaire de packages, est apparu en 1995 avec la version 2.0 de RedHat Linux. Depuis lors, et jusqu'\u00e0 nos jours, le syst\u00e8me est distribu\u00e9 sous forme de paquets RPM et continue de fonctionner et de se d\u00e9velopper avec succ\u00e8s.<\/p>\n<p>Les distributions de la famille Debian ont suivi une voie similaire et ont mis en place une distribution sous forme de paquets deb, ce qui reste inchang\u00e9 jusqu'\u00e0 aujourd'hui.<\/p>\n<p>Les gestionnaires de packages permettent de fournir les logiciels eux-m\u00eames, de les configurer lors de l'installation, de g\u00e9rer les d\u00e9pendances entre diff\u00e9rents paquets, ainsi que d'effectuer la suppression des produits et le nettoyage des restes lors de la d\u00e9sinstallation. En gros, c'est tout ce dont on a besoin, et c'est pourquoi ils ont dur\u00e9 plusieurs d\u00e9cennies pratiquement sans changements.<\/p>\n<p>L'essor du cloud a ajout\u00e9 aux gestionnaires de packages la possibilit\u00e9 d'installer non seulement \u00e0 partir de supports physiques, mais aussi depuis des d\u00e9p\u00f4ts cloud, mais fondamentalement, peu de choses ont chang\u00e9.<\/p>\n<p>Il convient de noter qu'actuellement, il y a quelques tentatives de passer de deb \u00e0 des paquets snap, mais nous en parlerons plus tard.<\/p>\n<p>Ainsi, cette nouvelle g\u00e9n\u00e9ration de d\u00e9veloppeurs cloud, qui ne connaissait ni DEB ni RPM, a \u00e9galement progressivement grandi, acqu\u00e9rant de l'exp\u00e9rience, les produits devenaient plus complexes, et il fallait des m\u00e9thodes de distribution plus raisonnables que FTP, des petits scripts bash et d'autres bricolages \u00e9tudiants. <br \/>\nC'est ici que Docker entre en sc\u00e8ne, une sorte de m\u00e9lange de virtualisation, de cloisonnement des ressources et de m\u00e9thode de distribution. C'est \u00e0 la mode, c'est jeune, mais en a-t-on besoin pour tout ? Est-ce une panac\u00e9e ?<\/p>\n<p>D'apr\u00e8s mes observations, Docker est souvent propos\u00e9 non pas comme un choix raisonnable, mais simplement parce que, d'un c\u00f4t\u00e9, on en parle dans la communaut\u00e9, et ceux qui le proposent ne connaissent que \u00e7a. D'autre part, les anciens syst\u00e8mes d'emballage font souvent l'objet de silences \u2014 ils existent et font leur travail silencieusement et discr\u00e8tement. Dans cette situation, il n'y a pas vraiment d'autre choix \u2014 le choix est \u00e9vident : Docker.<\/p>\n<p>Je vais essayer de partager mon exp\u00e9rience sur la mani\u00e8re dont nous avons int\u00e9gr\u00e9 Docker et ce que nous en avons tir\u00e9.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Scripts faits maison<\/h4>\n<p>\nAu d\u00e9part, il y avait des scripts bash qui d\u00e9ployaient des archives jar sur les machines n\u00e9cessaires. Jenkins g\u00e9rait ce processus. Cela fonctionnait bien, d'autant plus que l'archive jar elle-m\u00eame est d\u00e9j\u00e0 un assemblage contenant des classes, des ressources et m\u00eame une configuration. Si l'on y met tout ce qu'il faut, le d\u00e9ployer avec un script n'est pas la t\u00e2che la plus complexe.<\/p>\n<p>Mais les scripts ont plusieurs inconv\u00e9nients :<\/p>\n<ul>\n<li> les scripts sont g\u00e9n\u00e9ralement \u00e9crits \u00e0 la h\u00e2te et sont donc si primitifs qu'ils contiennent uniquement un seul sc\u00e9nario couronn\u00e9 de succ\u00e8s. Cela est d\u00fb au fait que le d\u00e9veloppeur est int\u00e9ress\u00e9 par une livraison rapide, alors qu'un script de qualit\u00e9 n\u00e9cessite un investissement assez cons\u00e9quent en ressources.<\/li>\n<li> comme cons\u00e9quence du point pr\u00e9c\u00e9dent, les scripts ne contiennent pas de proc\u00e9dure de d\u00e9sinstallation.<\/li>\n<li> il n'y a pas de proc\u00e9dure de mise \u00e0 jour \u00e9tablie.<\/li>\n<li> lorsqu'un nouveau produit appara\u00eet, il faut \u00e9crire un nouveau script.<\/li>\n<li> il n'y a pas de prise en charge des d\u00e9pendances.<\/li>\n<\/ul>\n<p>\nBien s\u00fbr, on peut \u00e9crire un script sophistiqu\u00e9, mais comme je l'ai mentionn\u00e9 plus haut, cela prend du temps \u00e0 d\u00e9velopper, et ce n'est pas n\u00e9gligeable ; or, comme on le sait, le temps manque toujours.<\/p>\n<p>Tout cela limite clairement l'utilisation de cette m\u00e9thode de d\u00e9ploiement \u00e0 des syst\u00e8mes tr\u00e8s simples. Il est temps d'y apporter des changements.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Docker<\/h4>\n<p>\n<img decoding=\"async\" alt=\"L&#039;\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres\" src=\"\/wp-content\/uploads\/2019\/03\/f9c6180a2775513ce88c5425727817d1.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u00c0 un moment donn\u00e9, des d\u00e9veloppeurs de niveau interm\u00e9diaire sont venus nous voir, d\u00e9bordants d'id\u00e9es et passionn\u00e9s par Docker. Eh bien, nous y voil\u00e0 ! Il y a eu deux tentatives. Les deux ont \u00e9chou\u00e9, disons, en raison de grandes ambitions mais d'un manque d'exp\u00e9rience r\u00e9elle. Fallait-il forcer et terminer \u00e0 tout prix ? Difficile \u00e0 dire : l'\u00e9quipe doit \u00e9voluer de mani\u00e8re organique jusqu'au niveau requis avant de pouvoir utiliser les outils appropri\u00e9s. De plus, en utilisant des images Docker pr\u00eates \u00e0 l'emploi, nous avons souvent rencontr\u00e9 des probl\u00e8mes de r\u00e9seau (ce qui, peut-\u00eatre, \u00e9tait aussi li\u00e9 \u00e0 l'immaturit\u00e9 de Docker lui-m\u00eame) ou \u00e0 la difficult\u00e9 d'\u00e9tendre des conteneurs d'autrui.<\/p>\n<p>Quels d\u00e9sagr\u00e9ments avons-nous rencontr\u00e9s ?<\/p>\n<ul>\n<li> Probl\u00e8mes de r\u00e9seau en mode bridge.<\/li>\n<li> Il est difficile de consulter les logs dans le conteneur (s'ils ne sont pas extraits dans le syst\u00e8me de fichiers de la machine h\u00f4te).<\/li>\n<li> Parfois, un \u00e9trange gel d'ElasticSearch \u00e0 l'int\u00e9rieur du conteneur, la cause n'a jamais \u00e9t\u00e9 \u00e9tablie, le conteneur \u00e9tant officiel.<\/li>\n<li> Il est peu pratique d'utiliser le shell dans le conteneur : tout est tr\u00e8s limit\u00e9, il n'y a pas d'outils familiers.<\/li>\n<li> La grande taille des conteneurs collect\u00e9s - co\u00fbteux \u00e0 stocker<\/li>\n<li> \u00c0 cause de la grande taille des conteneurs, il est difficile de maintenir plusieurs versions<\/li>\n<li> Assemblage plus long, contrairement \u00e0 d'autres m\u00e9thodes (scripts ou paquets deb)<\/li>\n<\/ul>\n<p>\nD'un autre c\u00f4t\u00e9, en quoi un service Spring sous forme d'archive jar est-il pire \u00e0 d\u00e9ployer via le m\u00eame deb ? A-t-on vraiment besoin d'une isolation des ressources ? Faut-il renoncer aux outils pratiques du syst\u00e8me d'exploitation en empaquetant le service dans un conteneur fortement r\u00e9duit ?<\/p>\n<p>Comme l'a montr\u00e9 la pratique, en r\u00e9alit\u00e9 cela n'est pas n\u00e9cessaire, un paquet deb suffit dans 90 % des cas.<\/p>\n<p>Quand l'ancien paquet deb ne fonctionne-t-il pas et quand avons-nous r\u00e9ellement eu besoin de Docker ?<\/p>\n<p>Pour nous, cela concernait le d\u00e9ploiement de services en python. De nombreuses biblioth\u00e8ques n\u00e9cessaires pour l'apprentissage automatique \u00e9taient absentes dans la distribution standard du syst\u00e8me d'exploitation (et celles qui y \u00e9taient n'\u00e9taient pas les bonnes versions), des hacks de configuration, la n\u00e9cessit\u00e9 d'avoir diff\u00e9rentes versions pour diff\u00e9rents services cohabitant sur le m\u00eame syst\u00e8me h\u00f4te, ont conduit \u00e0 ce que le seul moyen raisonnable de fournir ce m\u00e9lange complexe restait Docker. La charge de travail pour assembler un conteneur Docker s'est r\u00e9v\u00e9l\u00e9e inf\u00e9rieure \u00e0 celle de l'id\u00e9e d'emballer tout cela dans des paquets deb s\u00e9par\u00e9s avec des d\u00e9pendances, et personne d'assez sain d'esprit ne s'en serait charg\u00e9.<\/p>\n<p>Un deuxi\u00e8me point o\u00f9 Docker est pr\u00e9vu d'\u00eatre utilis\u00e9 - pour le d\u00e9ploiement de services selon le sch\u00e9ma blue-green deploy. Mais ici, on souhaite obtenir une augmentation progressive de la complexit\u00e9 : d'abord, des paquets deb sont assembl\u00e9s, puis \u00e0 partir de ceux-ci, un conteneur Docker est cr\u00e9\u00e9.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Paquets Snap<\/h4>\n<p>\n<img decoding=\"async\" alt=\"L&#039;\u00e9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres\" src=\"\/wp-content\/uploads\/2019\/03\/8c9001b28757f8427c85e54bca5b4e73.jpg\" style=\"display:block;margin: 0 auto;\" \/> Revenons aux paquets Snap. Ils sont apparus officiellement pour la premi\u00e8re fois dans Ubuntu 16.04. Contrairement aux paquets deb et rpm habituels, les snaps contiennent toutes les d\u00e9pendances. D'un c\u00f4t\u00e9, cela permet d'\u00e9viter les conflits de biblioth\u00e8ques, de l'autre, cela entra\u00eene des tailles de paquets r\u00e9sultants plus importantes. De plus, cela peut \u00e9galement influencer la s\u00e9curit\u00e9 du syst\u00e8me : lors de la livraison d'un snap, le d\u00e9veloppeur qui cr\u00e9e le paquet doit suivre toutes les modifications apport\u00e9es aux biblioth\u00e8ques incluses. En g\u00e9n\u00e9ral, tout cela n'est pas aussi simple et le bonheur universel de leur utilisation ne se r\u00e9alise pas. Cependant, cela reste une alternative raisonnable si Docker est utilis\u00e9 uniquement comme moyen d'emballage et non de virtualisation.<\/p>\n<p><br clear=\"all\"><br \/>\nEn fin de compte, nous utilisons actuellement un m\u00e9lange raisonnable de paquets deb et de conteneurs Docker, que nous remplacerons \u00e9ventuellement par des paquets snap dans certains cas.<\/p>\n<p class=\"for_users_only_msg\">Seuls les utilisateurs enregistr\u00e9s peuvent participer au sondage. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Connectez-vous<\/a><\/noindex>, s'il vous pla\u00eet.<\/p>\n<h2 class=\"default-block__polling-title\">Qu'utilisez-vous pour la livraison ?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Scripts faits maison<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Nous copions manuellement sur FTP<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    paquets deb<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    paquets rpm<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    paquets snap<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    images Docker<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Images de machines virtuelles<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Nous clonons enti\u00e8rement le HDD<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    puppet<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    ansible<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Autre<\/p>\n<\/li>\n<\/ul>\n<p>    109 utilisateurs ont vot\u00e9. 32 utilisateurs se sont abstenus.<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/srg\/blog\/444102\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0434\u043e\u043a\u0435\u0440 \u0438 deb-\u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0447\u0430\u043b, \u043c\u0435\u043d\u044f \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u043e\u043d\u0435\u0441\u043b\u043e \u0432 \u0434\u0430\u043b\u0435\u043a\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0443\u0445\u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u043a\u0435\u0440\u0430 \u0438 deb \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0432\u043e\u0442 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0435\u043c\u0443 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438, \u043a\u043e\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u043d\u0430 \u0412\u0430\u0448 \u0441\u0443\u0434. \u041b\u044e\u0431\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-42175","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043e Docker, deb, jar \u0438 \u043f\u0440\u043e\u0447\u0435\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-03-17T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T10:45:00+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47\u00c9volution des moyens de livraison, ou r\u00e9flexions sur Docker, deb, jar et autres | ProHoster","description":"\u00c0 un moment donn\u00e9.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043e Docker, deb, jar \u0438 \u043f\u0440\u043e\u0447\u0435\u043c | ProHoster","og:description":"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-03-17T21:00:00+00:00","article:modified_time":"2020-02-18T10:45:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"42175","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 07:30:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:04:29","updated":"2026-01-22 07:30:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/42175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=42175"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/42175\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=42175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=42175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=42175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}