Meilleures pratiques pour une application Web Serveur de stockage intermédiaire (sur un budget) [fermé]

StackOverflow https://stackoverflow.com/questions/565647

Question

Je voudrais mettre en place un serveur intermédiaire pour une application Rails. J'utiliser git & github, Cap, et un VPS avec Apache / passager. Je suis curieux quant aux meilleures pratiques pour une installation de mise en scène, dans la mesure à la fois la configuration du serveur de mise en scène, ainsi que les processus d'interaction avec elle. Je ne sais que ce doit être aussi identique au serveur de production possible, mais en limitant l'accès du public à ce limiterai que, si des conseils sur la sécurisation seulement pour mon usage serait aussi grand.

Une autre question spécifique serait si je pouvais créer un hôte virtuel sur le VPS, de sorte que le serveur de mise en scène pourrait résider à côté de la production d'un. J'ai le sentiment qu'il peut y avoir des raisons pour éviter cela, cependant.

Était-ce utile?

La solution

Réponse bon marché et facile:

1) Le point staging.domainname.com à votre VPS.

2) Ajouter un hôte virtuel pour la mise en scène, pointant vers la copie de la mise en scène de l'application.

3) Ajouter dans un cadre de l'environnement de la mise en scène. (Saviez-vous que vous pouvez définir de nouvelles environnements dans Rails? Fun stuff!) Je pense que cela est aussi simple que la copie production.rb à staging.rb et peaufinage nécessaire, ainsi que la mise à jour database.yml.

4) ActionController, ajouter dans le code semblable au suivant

   if (ENV["RAILS_ENV"] == "staging")
     before_filter :verifies_admin
   end

verifies_admin peut être tout ce que vous voulez. Je suggère d'utiliser l'authentification HTTP de base - pas cher et facile.

def verifies_admin
  authenticate_or_request_with_http_basic do |username, password|
    username == "foo" && password == "bar"
  end
end

Notez que cela peut Bork votre connexion à ce site de paiement si elles font des demandes entrantes à vous , bien que ce soit assez simple pour fixer (tourner juste à côté de la before_filter pour les contrôleurs appropriés et / ou actions.)

Meilleure réponse:

1) Acheter un second VPS configuré de la même image que votre VPS régulière, et / ou configuré de la même installation-de-la-métal nu scénario (j'aime Capistrano & Amort pour cela).

2) Le point staging.domainname.com à elle.

3) Sinon, ce même que l'autre option.

Les choses à penser:

1) Dois-je avoir une base de données mise en scène aussi bien? Probablement, surtout si vous allez à tester les modifications du schéma.

2) Dois-je avoir une certaine facilité pour déplacer des données entre les systèmes de mise en scène et de production?

3) peut défaillance catastrophique de ma demande de mise en scène abattre l'application principale? Le meilleur espoir la réponse est non.

Autres conseils

Je voudrais ajouter à ce que Jamis Buck, qui a créé Capistrano, a également créé un bijou spécialement pour la mise en place des environnements à plusieurs étages avec Capistrano. Vous pouvez le faire sans bijou, mais le joyau le rend encore plus facile. Vous pouvez trouver son poste avec des instructions ici: http: //weblog.jamisbuck .org / 2007/7/23 / Capistrano- plusieurs étapes

Il y a aussi un article très utile dans le livre de Pragmatic Programmer « Rails avancés Recettes » qui vous guide à travers exactement comment le mettre en place. J'ai trouvé que les réponses à ce poste, combiné avec les rails livre Recettes fait ce incroyablement facile à mettre en place.

StackOverflow ne me laisse pas ajouter un autre lien, mais si vous Google Rails avancés Recettes, le livre est le premier résultat.

Je suppose que cela dépend si les besoins du serveur de mise en scène soit accessible par tout le monde mais vous. Si d'autres personnes doivent être en mesure d'y accéder alors vous besoin d'une autre petite tranche quelque part et vous pouvez utiliser htaccess, ou des règles de pare-feu pour limiter qui obtient l'accès. Si personne n'a besoin d'autre pour y accéder, je suggère d'utiliser VMWare. Vous pouvez l'exécuter sur votre propre machine, ou une boîte de rechange que vous avez autour, ou un très PC pas cher. Nous utilisons le libre VMWare Server 2 pour nos serveurs de test et de déploiement mise en scène et il fonctionne très bien. Il est également très facile de créer de nouveaux serveurs de test en tout dupliquer votre base de configuration VM. Si vous êtes sur un Mac, vous pouvez utiliser VMWare Fusion, coûte de l'argent, mais je dois l'utiliser déjà pour tester IE.

Je vais probablement faire tirer dessus pour dire cela, mais pour les petits sites sur les budgets serrés, je ne vois rien de mal à gérer le site de mise en scène juste à côté de la production d'un.

Vous utilisez Rails, Apache et passagers. Mettre en place différentes configurations Rails (bases de données), et définir chacun comme un hôte virtuel nommé. Protéger un avec htaccess. Créer un enregistrement A de votre domaine (mise en scène. *) Et le point là.

Bien sûr, ils ne sont pas complètement isolés les uns des autres. Vous pourriez tout planter. Oops! Il ne sera probablement pas d'importance. :)

Utilisez deux serveurs distincts (VPS ou autre) aussi semblables que vous pouvez les faire (matériel et logiciel) à l'image de base. Automatiser tous Configuration de votre environnement de production si rien ne se fait à la main. Utilisez cette automatisation pour produire un serveur intermédiaire qui est identique à votre environnement de production. Maintenir l'automatisation pour assurer les deux environnements restent synchronisés et peuvent être reproduits sur demande.

Résout à la fois votre mise en scène-out-of-Sync problème et votre problème de mise à l'échelle de premier ordre.

En ce qui concerne le coût va, VPSes sont pas cher du. Le nombre de défaillances induisant les temps d'arrêt de production, vous éviterez en ayant un serveur intermédiaire va payer pour votre environnement de mise en scène en peu de temps (à moins que vous n'êtes pas réellement faire de l'argent à tous, où les temps d'arrêt de cas n'est pas tant d'un problème et vous pouvez aller les noix avec la rupture).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top