Pour utiliser Docker quotidiennement dans mon travail, je peux t'apporter quelques éléments de réponses.
La puissance de Docker est selon moi dans la capacité à penser le déploiement de ses applications en tant que développeur. Dans l'exemple que tu donnes concernant l'application django, il est possible du coup en tant que développeur de fournir son appli sous forme de container, ce qui va permettre à celui qui est chargé de la déployer de le faire en deux lignes de commandes sans tenir compte de l'environnement d'exécution.
Il faut comprendre qu'il est en réalité assez simple dès lors qu'on maitrise un peu l’outil de lier les containers entre eux, le container d'une appli django qui bind sur un port local pourra être relié à un haproxy uniquement en settant quelques variables d'environnement, de même pour une base de donnée, que cela le soit par une interface réseau ou sock, il devient du coup très simple à celui chargé de déployer l'appli de le faire.
Concernant la philosophie du 1 container / 1 process, cette interprétation est galvaudée car il s'agirait plus en réalité d'1 container / 1 tâche. Pour reprendre l'exemple de l'application django, on va sans doute avoir besoin d'une configuration de nginx particulière qui ne permettra pas de faire un bind aveugle d'un haproxy ou d'un nginx sur l'appli, la bonne pratique sera alors de faire exécuter dans le container un nginx et son gunicorn (ou autres) via supervisor (ou autres) qui lui pourra être bindé aveuglément sur un reverse proxy. Par contre, la bonne pratique sera toujours de ne pas inclure d'application de base de données dans son container car il s'agit dès lors d'une tâche différente et que cela poserait des soucis à celui qui serait en charge de déployer l'application pour conserver un contrôle sur la dite base de données (gestion des sauvegardes, etc).
Il faut également voir docker comme un framework pour adminsys/devops, on a accès très rapidement à plein de container de plein d'application sur lesquels te baser pour déployer tes applis, et une fois cela réalisé de pouvoir les déployer très rapidement (voir de les automatisé) sur un nombre de serveur très important (en ce sens je préfère docker aux solutions tel que salt/puppet).
# devops
Posté par Anonyme . En réponse au journal Docker, la plateforme à la mode. Évalué à 7.
Pour utiliser Docker quotidiennement dans mon travail, je peux t'apporter quelques éléments de réponses.
La puissance de Docker est selon moi dans la capacité à penser le déploiement de ses applications en tant que développeur. Dans l'exemple que tu donnes concernant l'application django, il est possible du coup en tant que développeur de fournir son appli sous forme de container, ce qui va permettre à celui qui est chargé de la déployer de le faire en deux lignes de commandes sans tenir compte de l'environnement d'exécution.
Il faut comprendre qu'il est en réalité assez simple dès lors qu'on maitrise un peu l’outil de lier les containers entre eux, le container d'une appli django qui bind sur un port local pourra être relié à un haproxy uniquement en settant quelques variables d'environnement, de même pour une base de donnée, que cela le soit par une interface réseau ou sock, il devient du coup très simple à celui chargé de déployer l'appli de le faire.
Concernant la philosophie du 1 container / 1 process, cette interprétation est galvaudée car il s'agirait plus en réalité d'1 container / 1 tâche. Pour reprendre l'exemple de l'application django, on va sans doute avoir besoin d'une configuration de nginx particulière qui ne permettra pas de faire un bind aveugle d'un haproxy ou d'un nginx sur l'appli, la bonne pratique sera alors de faire exécuter dans le container un nginx et son gunicorn (ou autres) via supervisor (ou autres) qui lui pourra être bindé aveuglément sur un reverse proxy. Par contre, la bonne pratique sera toujours de ne pas inclure d'application de base de données dans son container car il s'agit dès lors d'une tâche différente et que cela poserait des soucis à celui qui serait en charge de déployer l'application pour conserver un contrôle sur la dite base de données (gestion des sauvegardes, etc).
Il faut également voir docker comme un framework pour adminsys/devops, on a accès très rapidement à plein de container de plein d'application sur lesquels te baser pour déployer tes applis, et une fois cela réalisé de pouvoir les déployer très rapidement (voir de les automatisé) sur un nombre de serveur très important (en ce sens je préfère docker aux solutions tel que salt/puppet).