Vous n'êtes pas identifié(e).
Pages : 1
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Pourtant, de récentes discussions chez les développeurs Debian (en anglais, désolé smolski tongue ) évoque le container comme solution à l'énorme difficulté de packager des applications complexes (web souvent), comme Dolibarr ou Gitlab par exemple.
Après je ne sais pas si ces applications web sont couramment installée via les dépôts Debian.
J'utilise Dolibarr et je préfère de loin installer avec l'archive du site de Dolibarr ; cela permet une plus grande indépendance (version utilisée, test des mises à jour sur une copie avant de décider si je la fait "en prod" ou non, etc ...).
Pour les cms (je pense à Wordpress) les versions sont souvent "trop vieilles" car ça évolue trop vite par rapport au cycle stable de Debian.
Ps : j'ai découvert récemment qu'avec LXC on peut "virtualiser" sur un pc qui ne le peut pas, genre mon Acer avec son Celeron. Finalement c'est pas mal LXC
Hors ligne
Après je ne sais pas si ces applications web sont couramment installée via les dépôts Debian.
Tout à fait, c'est ce que pointe la discussion des devs Debian. Le problème, c'est que tu te prives ainsi de la maintenance du projet Debian, en terme de sécurité notamment, ou de garanties concernant la licence des logiciels que tu utilises.
Si une bibliothèque utilisée par une appli web présente une faille de sécurité, c'est alors au développeur de cette appli de la corriger, et à toi de mettre à jour à la main. Si tu multiplie par le nombre d'appli, voire, le nombre de version de la même bibliothèque utilisée par différentes applis, ça peut vite devenir compliqué
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
Pourtant, de récentes discussions chez les développeurs Debian (en anglais, désolé smolski ) évoque le container comme solution à l'énorme difficulté de packager des applications complexes (web souvent), comme Dolibarr ou Gitlab par exemple.
Faut regarder du bon côté de la lorgnette. C'est plus simple à déployer. Mais faut quand même quelqu'un pour maintenir l'image à jour.
Alors oui, ça simplifie un déploiement rapide. C'est cool pour les petites boites ou les particuliers qui ont besoin d'un truc rapide à mettre en place. Mais je reste "vieux con" à dire que quand on commence à taper dans le domaine du distribué, de la gestion des ressources fine... bref qu'on commence à tuner un peu... là Docker n'a pas sa place. Ils proposent des solutions... Y'a Docker swarn, Kubernetes... Mais rien ne vaut l'expertise d'un admin sys dédié ou, à minima, d'un devops.
Docker à ce côté pratique dans la vie de tous les jours. Dans les solutions apportées à des prises de tête techniques qui sont (je me répète) très bien pour les petites structures. Mais un moment faut s'en abstraire. Le "tout docker" est à mon sens une très mauvaise idée et ce, ne serait-ce que pour une simple raison : On oublie les basiques. N'importe qui peut déployer n'importe quoi. Sauf que derrière, peu de gens savent vraiment maitriser ce qu'il se passe. Et moi, ça me fait peur! Docker sur un CV ça fait cool. C'est jeune, et ça a la côte. Mais en vrai, c'est comme si vous marquiez sur ce CV "j'ai pas le permis mais je sais conduire si besoin".
Hors ligne
Faut regarder du bon côté de la lorgnette. C'est plus simple à déployer. Mais faut quand même quelqu'un pour maintenir l'image à jour.
Certes. Ceci-dit, c'est pareil avec un paquet, il faut bien le maintenir aussi. Qui plus est, container ou paquet, tu ne règles pas le problème de compréhension de ce qu'il y a dedans, ça juste marche.
En gros, tu fais confiance au mainteneur (du paquet ou de l'image). La discussion en cours chez les devs Debian porte plutôt sur l'aspect compliqué, voir impossible de créer un paquet utilisant des bibliothèques compatible avec celles disponible dans la distribution, avec des applications qui changent sans arrêt de bibliothèque cassant la rétrocompatibilité. En gros, si un mainteneur Debian créé une image Docker, embarquant ces bibliothèques particulières, et qu'il est en mesure d'en assurer la maintenance de sécurité, en ajoutant/adaptant les outils qui automatisent tout ça dans le projet Debian, ça ne change pas grand chose pour nous, utilisateurs finaux (à défaut d'être finauds ), sauf d’alourdir un peu le poids des applications avec pas mal de lib en multiple versions.
La discussion parle aussi de problèmes légaux, avec la disponibilité des sources et des licences de ces libs, pour du javascript minifié notamment si je pige bien. Là, container ou pas, ça ne change pas grand chose
En fait, cette tendance remet pas mal en cause le principe même d'une distribution avec un cycle de parution relativement long telle que Debian. Note que retrouve aussi une problématique similaire avec les applications desktop et les Appimges, flatpacks et autre snap. A l'instar d'Octoprint, je n'ai que très peu d'applications du domaine du making/DIY disponible dans les dépôts. Que ça soit l'Arduino ou l'impressin 3D, c'est uniquement disponible sous forme d'Appimages
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
Bon, c'est un exemple fait à l'arrachée. Ici, on va partir d'une image stretch, installer apache2, définir les variables d'environnement d'apache2, créer les dossiers, exposer le port 80 et lancer apache2 en mode "non détaché du shell" (le -DFOREGROUND). Mais si on avait fait un service mysql start avant de démarrer apache2 en mode foreground, le serveur SQL aurait démarré. Si on avait mis un script dans un screen qui effectue telle ou telle action à un intervalle de temps donné, il l'aurait fait aussi. Je suis presque sûr qu'on peut effectuer des crontasks propres, mais j'ai jamais réellement cherché. En important lors de la création de l'image le fichier des tâches cron, ou simplement en exécutant une série de commande comme ça (je répète, jamais essayé, j'ai juste été jeter un oeil à Stack Overflow, https://stackoverflow.com/questions/878 … ive-editor) :
Pour résumer, l'aspect "mono-processus" évoqué dans l'article est à mon sens une aberration, pour toutes les raisons évoquées plus haut.
Autre point important : La mise à jour des images (et des containers...). Pour mettre à jour l'image, on doit en effet la recompiler depuis le Makefile. Par contre, on peut très bien modifier un container en cours d'exécution : Docker nous offre la possibilité d'attacher le shell du container, autrement dit de pouvoir modifier le contenu et lancer des commandes à la main en live. Bien entendu, quand on s'attache au shell, on peut exécuter des commandes qui feront revenir le prompt sans stopper le container...
Mais le plus important, ça relève là aussi de la gestion de Docker : Quand on travaille proprement avec Docker, on est censé pouvoir détruire un container et le recréer sans que ça nous dérange. En vérité, le conteneur n'est censé contenir que l'exécution de l'image en cours, en aucun cas les dossiers ou fichiers à conserver. Docker permet en effet de créer des dossiers "montés" qui seront des ponts entre votre véritable système d'exploitation et l'image. Par exemple, le contenu du container présent dans "/mount/sdb0/" (juste un exemple, en réalité vous pouvez monter n'importe où) correspondra en fait au dossier "/home/coucou/Documents" de votre véritable serveur. Pour résumer, un container ne doit pas contenir d'informations importantes (à conserver) en son sein, juste des fichiers temporaires et l'exécution du/des processus. Il faut que ces documents soient montés dans un dossier partagés. Ainsi, quand vous mettez à jour votre image, vous pouvez détruire le container, et le reconstruire sans aucun soucis. (Et pour automatiser le tout, un bon vieux script Shell qui fera les commandes tout seul, bien entendu).
Enfin, dernier point : Docker à été conçu pour faciliter le déploiement, et isoler les tâches. En utilisant Docker, on est pas censé avoir plusieurs processus qui tournent dans un seul container. On est censé avoir un container qui gère un serveur SQL et qui expose son port 3306, un autre qui gère un serveur Apache et qui expose son port 80 et 443, un autre qui va gérer un serveur TeamSpeak et qui va exposer son port 10011 et 9987,etc. Ces containers viendront ensuite s'interconnecter entre eux. C'est pour ça qu'il n'est pas facile de base de lancer plusieurs processus dans un seul container, pour la simple et bonne raison que ce n'est pas prévu pour ça à la base. Pour finir, je dirais que pour ceux qui ont besoin de beaucoup de containers etc, il existe plein d'outils très sympa pour les gérer, par exemple Portainer et Kubernetes...
Pour terminer (oui je sais, ça fait redondance avec le Enfin, mais tant pis), je dirais que Docker n'est pas une solution magique. Docker, c'est un outil qui va permettre, sur des grosses infras, ou sur un service à déployer des centaines de fois, de gagner du temps par rapport à le faire à la main. Mais la configuration d'une image et d'un container Docker, ça demande du temps, de la réflexion, et surtout d'organiser ce qu'on fait d'une manière précise. Le commun des mortels, qui lance un serveur Web avec un petit serveur SQL derrière, sur un VPS, n'aura en effet aucun intérêt à utiliser Docker. Cela prends un intérêt quand vous avez des dizaines de services, un besoin de déployer rapidement, ou de devoir gérer un cluster.
En bref, le soucis de Docker à l'heure actuel, comme l'a mentionné mon VDD, et qui me fait éditer ce message, c'est cette hype constante qu'il y à autour, pour tout et n'importe quoi (et surtout n'importe quoi). C'est comme admettons un serveur Samba : Si vous avez besoin de partager une seule fois dans votre vie un document de 80ko, vous aurez plus vite de prendre une clef USB ou vous l'envoyer via un uploader de fichier, plutôt que monter un serveur... Par contre, s'il vous faut partager tout les jours des répertoires entiers, là, Samba devient intéressant. Bah c'est la même avec Docker.
Bisous et peace. <3
(PS : Je ne suis pas un pro de Docker, je réponds en me basant uniquement sur mon expérience et donc il est possible que, comme tout être humain, j'ai écrit une c*nnerie. Auquel cas, hésitez surtout pas à me le faire remarquer)
Dernière modification par Artheriom (23-02-2018 14:26:35)
Étudiant en Master à l'Institut Informatique d'Auvergne.
Parfois je fais des trucs sur le Oueb", et généralement ça fonctionne. Fondateur de Goldheim https://goldheim.fr/
Linuxien convaincu depuis 2010. Adepte de Debian, CentOS, Mandrake, Ubuntu, SolusOS. Mandravia, c'était pas si mal.
Hors ligne
Hors ligne
Pages : 1