31 votes

Meilleures pratiques pour les nouveaux déploiements Rails sous Linux?

J'ai utilisé tout de Bâtards, j'ai utilisé des Bâtards groupes derrière Apache, j'ai regardé Mince, et je suis en train de devenir très intrigué par Passager. J'ai regardé Nginx, trop. J'ai regardé l'IRM, Ruby Enterprise Edition, Rubinius, et JRuby. Il y a beaucoup d'options, chacune prétendant être le saint-graal.

Quelle est la meilleure option pour une nouvelle marque, à la date de déploiement? Les seules hypothèses sont les suivantes:

  • L'application est Rails 2.2 base. (Je sais 2.2 n'est pas encore sorti, mais n'est ce déploiement.)
  • Le serveur est basé sur Linux. Probablement Ubuntu Hardy, mais vraiment, ce qui fonctionne le mieux dans ce cas.
  • Les Rails doivent être entièrement fonctionnel et probablement parler à une base de données MySQL.
  • Tout le reste est négociable.

Compte tenu de ces particulièrement large contraintes, de la combinaison de logiciel donnera le meilleur résultat, en termes de simultanéité et de bas frais généraux?

Je suis penchée vers Apache avec le "travailleur" mpm et Passager + Ruby Enterprise Edition, simplement parce qu'il offre immédiate de la stabilité et de la simplicité de configuration et de maintenance.

Je suis susceptible d'être particulièrement mieux avec une autre option?

16voto

Christoph Schiessl Points 3672

Je suis passé de Mongrel Cluster de Passagers il y a deux semaines (Debian Serveur Linux). Je n'ai pas regarder en arrière pour un deuxième. Le passager est probablement la meilleure façon d'obtenir votre nouveau serveur et en cours d'exécution. La Performance et la fiabilité sont raisonnables aussi.

Personnellement, j'aime passer mon temps à travailler sur de passionnants nouveaux Rails des projets plutôt que de traiter avec les problèmes de déploiement de Passagers me permet de faire exactement cela. Cependant, Métis ou autre chose peut-être encore préférable si vous avez une sorte de prescriptions spéciales (ne s'applique pas pour la plupart des produits).

10voto

Jim Puls Points 29289

Ce matin, le DHP parle de ce sujet sur son propre blog:

Mais de toute façon le message de Passagers a été un peu lent à s'enfoncer dans la. Il y a déjà une tonne de grands sites en cours d'exécution hors d'elle. Y compris Shopify, MTV, Geni, Yammer, et nous allons être en mouvement par rapport au premier Ta-da Liste de peu de temps, alors j'espère que le reste de la 37signals suite rapidement par la suite.

Donc, il y a encore des raisons pour exécuter votre propre personnalisé multi-niveaux de l'installation de configurer manuellement les morceaux, tout comme il y a des gens débarrassent de mod_php pour leurs détails, je pense que nous avons finalement porté sur une réponse par défaut. Quelque chose qui ne nécessite pas que vous pensez vraiment que le premier déploiement de votre application Rails. Quelque chose qui fonctionne hors de la boîte. Même si cette zone est partagée par l'hôte!

http://www.loudthinking.com/posts/30-myth-1-rails-is-hard-to-deploy

Tobias Lütke sur le thème de la commutation de Shopify (millions de requêtes/jour) pour les Passagers:

Tout cela signifie que la quantité totale de mémoire utilisée par Shopify cours normal de l'exploitation est passé de la moyenne de 9GO à une moyenne de 5 go. Nous avons distribué uniformément les économies parmi les plus Shopify les processus et les plus memcached de l'espace qui est passé notre temps de réponse moyen de 210ms de 130ms alors que le trafic a augmenté de 30% en quelques mois.

En conclusion: je ne vois aucune raison de choisir une stratégie de déploiement différente à ce point. Simple, complet, rapide et bien documenté.

http://blog.leetsoft.com/2008/11/15/passenger

4voto

Cameron Price Points 869

Nous avons été à l'aide de l'ancienne norme nginx -> metis pile pour les 18 derniers mois, et bien qu'il n'était pas trivial à mettre en place la première fois, il est prouvé flexible, et a traité avec quelques très élevé de trafic des sites pour nous. Nginx, en particulier, a été absolument solide et rapide, et si vous pouvez obtenir votre page d'application-mise en cache, vous pouvez faire face à beaucoup de demandes.

Coincé bâtards ont été un problème, nous utilisons donc des monit pour les tuer quand ils se conduisent mal. Encore une fois, il n'était pas totalement trivial à mettre en place, mais nous avons utilisé le même processus sur de nombreux de nombreux sites à ce point.

Nous n'avons pas joué avec des passagers, de sorte que peut-être il est plus facile et plus stable, je vais en remettre aux autres intervenants sur celui-là, tout ce que je peux dire, c'est qu'il n'y a aucune raison que vous ne pouvez pas construire un solide pile avec nginx et mongrel.

2voto

csexton Points 8089

Nous sommes passés de NginX+Mongrel du Passager.

Je crois fermement que Passager va être la nouvelle norme pour les rails, malgré NginX et Mongrel cluster être approuvé par certaines personnes très intelligentes. Les progrès récents dans les Passagers ont vraiment propulsé vers l'avant.

Notre configuration actuelle est quelque chose comme ceci:

Serveurs Web

  • Ubuntu 8.04 LTS
  • Phusion Passenger sur Apache2
  • L'IRM Ruby 1.8.6 et amis (formulaire apt)
  • Les Gems Ruby 1.3.0 (Installé à partir des sources)

Serveurs de base de données

  • Centos 5
  • MySQL Cluster (nous avons opté pour ce, mais il est prometteur)

Après avoir normalisé l'exacte distribution linux que nous avons été capable d'écrire Capitrano des recettes pour le déploiement (de légères variations dans la configuration ont été la source de NOMBREUSES interruptions de service) et de simplifier nos vies.

1voto

user36344 Points 11

Jetez un coup d'œil à Litespeed . Vous pouvez obtenir une version gratuite fonctionnant sur 1 cpu ou payer pour obtenir plusieurs cpu. C’est un peu cher, mais il est solide et gère les rails de manière brillante (c’est-à-dire qu’il utilise moins de mémoire et représente moins de frais généraux pour la surveillance et la configuration). J'utilise énormément d'applications et elle ne manque pas de temps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X