Si je déploie mon application Ruby on Rails sur Heroku [fermé]

un peu sur moi-même. J'ai 24 ans, je suis diplômé de NC State avec un Master en analyse L'année dernière. Statistiques, mathématiques, ce genre de choses. Je n'ai pas une bonne expérience en programmation, ce qui est assez important pour ma question. Si je dis quelque chose qui n'a aucun sens, c'est pourquoi. Depuis la remise des diplômes, j'ai travaillé à plein temps sur une application Rails avec quelques autres personnes. Mon expérience de programmation est principalement Ruby on Rails (1,2 ans.) I know R, SAS (langages statistiques, pas utiles pour cette question.)

évidemment, cela signifie qu'il a été plus d'un an dans le développement, et nous ne sommes pas encore fait. Le développeur principal est un excellent programmeur, juste qu'il a un boulot à plein temps déjà, et n'cette application dans son temps libre. Comme il n'a pas eu assez de temps récemment, on m'a confié la responsabilité pratiquement entière de l'application.

nous l'avons déployé sur Slicehost en ce moment. L'application est à un point où nous n'avons pas besoin de programmer quoi que ce soit d'autre (sauf si nous pensons à plus de fonctionnalités. La raison pour laquelle je demande si nous devrions migrer vers Heroku est qu'il me semble que Heroku est une plate-forme simple à laquelle se déployer. Slicehost semble trop compliqué pour moi. L'autre développeur s'en est occupé, pas moi. J'ai regardé comment déployer l'application sur Heroku, et il semble que je serais capable de le faire. Nous avons besoin de notre application à l'échelle si nécessaire, qui Heroku offre. En ce qui concerne l'argent, je le commencerais au minimum (gratuit) et voir comment ça se passe. Je peux payer pour des fonctionnalités supplémentaires si j'en ai besoin.

nous utilisons Redmine pour la gestion de projet et le dépôt (pas git, que je pense que nous devons utiliser sur Heroku.) Git est similaire à Redmine? Est-il facile à utiliser?

en ce moment, sur Slicehost, nous avons 4 démons (constamment en cours de processus.) Nous avons 8 travailleurs au chômage. Je connais la ligne de commande pour démarrer les daemons et delayed_job workers. Ces travaux sur Heroku?

je me demande si je peux encore utiliser RAILS_ENV=production script/console avec Heroku.

L'interface utilisateur est un fichier javascript. En mode développement, si je fais script / serveur dans un terminal, et passer à http://localhost:3000 dans un navigateur, je peux le voir. Heroku chargerait cette page comme je veux?

Nous avons un site de travail pour l'application, avec notre propre nom de domaine. Je ne sais pas vraiment ce qu'est le DNS, donc je probablement ne serait pas en mesure de lier L'application Heroku à elle, à moins qu'il n'y ait un moyen facile. Je pense Qu'Heroku le lie à appname.heroku.com par défaut.

basé sur mon expérience de programmation, Heroku serait-il assez facile pour moi d'utiliser, si je trouve un autre emploi, ou devrais-je commettre seppuku?

9
demandé sur Eric 2011-08-17 21:43:21

5 réponses

Oui, vous devriez certainement déployer votre application à heroku. Pour ce faire, voici ce que vous devez faire:

  1. assurez-vous d'avoir git installé dans votre ordinateur
  2. créer un compte heroku ici
  3. installez le joyau heroku et faites le reste comme mentionné dans cette page
  4. Suivi de votre demande avec git, et de créer votre application heroku comme indiqué ici
  5. après cela, heroku vous fournira une URL pour votre application, telle que http://blah-bleep-123.heroku.com . Maintenant, la prochaine étape serait d'associer votre domaine à cette heroku URL.
  6. Configurer votre Serveur DNS du domaine comme le montre la dans cette page . Attention, après avoir changé votre DNS, ça peut prendre jusqu'à 48 heures pour que ça marche. Vous pouvez modifier votre DNS de domaine en vous connectant sur le site où vous avez acheté votre domaine, par exemple godaddy.com, hostingdude.com, etc.
  7. ajoutez ce code à votre ApplicationController. Vous pouvez le suivre de cette page ainsi que

    class ApplicationController
      before_filter :ensure_domain
    
      APP_DOMAIN = 'www.mydomain.com'
    
      def ensure_domain
        if request.env['HTTP_HOST'] != APP_DOMAIN
          # HTTP 301 is a "permanent" redirect
          redirect_to "http://#{APP_DOMAIN}", :status => 301
        end
      end
    end
    
  8. assurez-vous de migrer toute votre base de données dans heroku, en faisant heroku rake db:migrate
  9. après vous avez terminé toutes ces étapes, vous devriez être bon. Vérifiez votre URL de domaine, tout devrait fonctionner assez:).
  10. si vous voyez des erreurs dans votre page, vous pouvez voir le log par heroku logs
  11. vous pouvez accéder à la console en tant que heroku console

avec ces caractéristiques, heroku est très pratique pour travailler avec.

dites-moi si vous avez besoin d'aide.

5
répondu rookieRailer 2011-08-17 19:42:24

il me semble que vous devriez sérieusement envisager Heroku. Je l'ai utilisé pour des projets de week-end et nous l'utilisons aussi au travail, avec beaucoup de succès. Le déploiement est un jeu d'enfant, vous n'avez pas à vous soucier de l'installation (pour la plupart) et l'administration du système. Il est très facile d'ajouter des modules et"payer au fur et à mesure que vous grandissez".

quant à vos besoins, vous pourriez (je crois) exécuter votre redmine sur Heroku lui-même, étant une application rails. La seule chose est que vous mentionnez que vous utilisez comme Redmine "dépôt" et je ne suis pas sûr de comprendre ce que vous voulez dire, Puisque Redmine n'est pas un système de contrôle de version. Redmine dispose de points d'intégration pour différents VCS (SVN, Git, Mercurial, CVS, etc.). Oui, Heroku utilise git et c'est ce que vous devez utiliser pour push code sur le serveur. Si vous connaissez Mercurial, c'est assez similaire.

pour les emplois retardés, Heroku offre des emplois cron gratuits qui fonctionnent une fois par jour et des horaires contre rémunération (voir cron add-on ). Il y a aussi un plugin de travail retardé ( voir ce ) mais je n'ai aucune expérience avec lui.

vous devriez pouvoir accéder à la console Rail ( voir heroku docs ). Utilise la console heroku et voilà, tu es là.

si votre application fonctionne en exécutant script/server, il devrait fonctionner hors de la boîte dans heroku aussi.

quant au DNS, le faire fonctionner avec votre coutume de domaine n'est pas difficile. Hors de la boîte, vous pouvez accéder à votre application avec appname.heroku.com, pour mettre en place votre custom domain check heroku docs ici , mais fondamentalement vous devez ajouter le custom domain add-on (gratuit sauf si vous voulez des sous-domaines), configurer heroku pour répondre aux demandes de votre domaine (quelques commandes simples) et mettre votre fournisseur DNS pour pointer vers Heroku (il y a même une courte vidéo dans les docs sur la façon de faire cela avec GoDaddy).

le seul l'inconvénient que J'ai vu avec Heroku, et ce n'est pas un énorme, est que si votre application ne reçoit pas de trafic pendant une période prolongée, les instances sorte de "go to sleep", faisant la prochaine demande d'arriver un peu lent (parfois même le chronométrage), mais une fois l'instance est réveillée, tout est bon à aller.

tout compte fait, je pense Qu'Heroku est un excellent moyen de vous enlever une tonne du fardeau en tant que dev et de rendre beaucoup de choses très faciles à mettre en œuvre sans avoir à aller dans le nitty gritty de la configuration d'un serveur. L'inconvénient: une fois que vous commencez à croître, il peut devenir un peu cher, mais bon, si vous êtes en croissance, il signifie probablement que vous avez l'argent maintenant pour engager quelqu'un qui peut prendre soin de la nitty-gritty.

vous pourriez aussi vouloir jeter un oeil à ce billet de blog qui compare Slicehost et Heroku

le Meilleur de la chance

3
répondu Ruy Diaz 2011-08-17 18:34:35

oui, vas-y.

si vous avez réussi jusqu'à présent sur la base de votre "expérience de programmation" alors vous serez très bien. Ayez un peu de confiance et envoyez quelque chose! Pour citer Paul Graham :

la raison de lancer rapide n'est pas tellement qu'il est essentiel de mettre votre produit sur le marché tôt, mais que vous n'avez pas vraiment commencé à travailler sur elle jusqu'à ce que vous avez lancé. Lancement vous enseigne ce que vous devez ont été la construction. Jusqu'à ce que tu saches que tu perds ton temps. Donc la valeur principale de ce que vous lancez avec est comme prétexte pour engager les utilisateurs.

la fonctionnalité que vous décrivez est facilement répliqué et bien documenté et il est gratuit pour commencer. Que pourriez-vous demander de plus?

3
répondu Chris Mowforth 2011-08-17 22:14:22

si vous avez le temps libre, autant vous inscrire à un compte gratuit et tenter votre chance.

cependant, cela va venir avec quelques maux de tête assez graves.

contrôle de Version sera un, puisque heroku utilise git, mais un autre que personne n'a mentionné encore est que vos 12 processus ("dynos" dans heroku parler) vous coûterait 35 $ * 11 = 385 $par mois! Vous pouvez configurer un cron horaire pour $3 / mois qui va rincer votre delayed_job queue (au lieu d'avoir des travailleurs à toutes les heures), mais est-ce que cela va être suffisant? (Si vous dirigez 8 ouvriers, je suppose que non). Cela peut exiger ou non des changements de code.

une fois que vous l'avez configuré, le déploiement et l'administration sont vraiment faciles (inexistants), mais cela vous coûtera si vous commencez à avoir besoin de nouvelles fonctionnalités.

1
répondu Brian 2011-08-18 06:39:42

oui, vas-y.

son bon environnement de déploiement tout son échelle rapide et facile et la mise à l'échelle en fonction. même vous pouvez utiliser pour votre test ou l'utilisation de démonstration its vous fournir l'utilisation gratuite de compte de 1 dynos par application.

Liste d'outils disponibles, vous pouvez ajouter selon vos besoins.

1
répondu jayesh 2013-12-30 09:08:21