Bonjour,

J'ai migré une partie de l'infrastructure de Teezily vers du docker.
L'utilisant en développement je me suis dis que le plus simple serait de
l'utiliser pour déployer. Au final, j'ai trouvé que la meilleur infra pour
moi c'est tout simplement dokku ou deis. Ces deux projets savent très bien
déployer des containers docker et pour deis, Il n'y a pas de soucis pour
scaler horizontalement. Le déploiement s'en trouve très simplifié car c'est
un simple git push. Pour provisionner mes serveurs je n'ai plus qu'à setup
les variables d'env de mes projets ce que je fais avec ansible.

Côté persistance je suis par contre resté sur du classique car on ne peut
pas vraiment scaler plusieurs containers sur le même volume.

Enfin côté docker, j'ai opté pour la base image phusion de ruby pour avoir
un nginx, mes workers et cron directement dans mon container. Chacun étant
activable par variable d'env pour ainsi déployer des versions limités.
Le 6 févr. 2016 20:12, "Antoine" <antoine.bart...@gmail.com> a écrit :

> Bonjour,
>
> Je suis à la recherche de documentation ou de conseils, je n'arrive pas à
> me faire une idée claire seul de mon côté!
>
> Généralement je mets au point des projets Rails disons assez classiques et
> je les déploie avec Mina qui est super léger.
> Je me suis plongé dans docker et maintenant le schéma classique ressemble
> à une série de containers:
> - nginx
> - rails
> - postgres
> - redis
> - ...
> Avec des volumes persistants pour les datas.
> Le tout est assez facile à déployer et à maintenir pour un serveur/client
> pour son projet.
>
> Une demande revient régulièrement chez mes clients et je réfléchis à la
> façon de rendre cette production plus générique.
>
> Voici ce que je cherche à faire/comprendre:
>
> Après le débat multi-tenant vs multi-instances, imaginons une application
> type et pour chaque client un 'micro serveur' qui fait tourner les
> containers.
> Chaque client est isolé, mais a la même copie de l'application. Chaque
> client se connecte par un sous-domaine qui lui est attribué.
> Les questions que je n'arrive pas à clarifier sont celles liées au
> déploiement et à la mise à jour d'une telle infrastructure. Comment
> automatiser ces tâches sachant que le nombre de clients va varier en
> fonction de l'attrait pour l'application et pourrait atteindre un nombre
> trop important pour être déployée "manuellement".
>
> On trouve pas mal de documentation sur la question du multiserveur pour
> des applications de grosse taille avec par exemple une configuration
> décrite dans le fichier docker-composer avec plusieurs serveurs qui vont
> communiquer entre eux. Mais dans le cas décrit ci-dessus avec
> potentiellement un grand nombre de serveurs on ne peut pas se permettre
> d'avoir un fichier yml qui fait des milliers lignes en fonction du nombre
> de clients.
> D'autre part si on automatise la tâche avec mina ou capistrano le temps de
> déploiement d'un tel parc peut être très long et le risque d'erreur est à
> prendre en considération.
>
> Est-ce que ce type d'architecture est une idée viable et maintenable,
> est-ce une mauvaise direction et devrais-je plus réfléchir sur un modèle?
> Bref comment automatiser la mise en place d'une application similaire qu'on
> installe pour un grand nombre de clients?
>
> Je suis preneur d'idées ou de lecture sur ce type de question.
>
> D'avance merci pour les idées!
>
> --
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> railsfrance@googlegroups.com
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> railsfrance-unsubscr...@googlegroups.com
> ---
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> "Railsfrance".
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> railsfrance+unsubscr...@googlegroups.com.
> Pour obtenir davantage d'options, consultez la page
> https://groups.google.com/d/optout.
>

-- 
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/d/optout .

Répondre à