165 votes

Heroku dans la vraie vie des applications

Quelle est votre expérience avec l'utilisation de Ruby on Rails sur Heroku dans un environnement de production?

En dehors de la question de la cher HTTPS, voyez-vous aucun inconvénient dans la façon dont il gère les processus, de la mémoire et de stockage?

Les personnes à Heroku sont très agréable, et je suis sûr qu'ils sont prêts à répondre à mes questions, mais j'aimerais quelques avis sur le côté client.

215voto

Toby Hede Points 22128

J'ai deux systèmes de production sur Heroku (1 Dyno, 6 Dynamomètres, respectivement), et je suis sur le point de lancer un assez important projet à l'aide de la plate-forme.

Je l'aime absolument.

Je veux mettre l'accent sur la valeur que j'apporte dans la chaîne soigneusement fabriqués à la demande, avec une grande expérience de l'utilisateur et d'un grand soutien.

La valeur réelle de la société Heroku est que tous les frais généraux d'administration est supprimé. J'ai déjà travaillé avec d'hébergement VPS (Slicehost, Linode) et a constaté que le réglage d'une seule application de la pile peut être vraiment très compliqué sans sysadmin de ressources. Une fois que vous commencer à entrer dans le royaume de plusieurs serveurs, vous pouvez trouver vous-même embourbé dans l'administration du système et pas de développement d'application et support.

Heroku fournir une pile qui comprend un reverse proxy et cache http sur le dessus de la réelle application Rails de la gestion des processus ... configuration tout cela dans un environnement VPS serait assez grave et coûteuse.

Si un administrateur de la ressource est de 100 $/heure et un dyno est de 36 $/mois, vous pouvez aller un long chemin en jetant des dynamomètres à votre demande avant le rapport coût-bénéfice commence à changer.

Les prix du stockage ont également changé - vous maintenant d'avoir 20 go de base de données partagée des ressources pour 15 $/mois, ce qui change vraiment le jeu pour de nombreuses petites applications.

La mémoire n'est plus quelque chose que vous avez à vous soucier de ... un dyno semble automatiquement assez de mémoire pour exécuter. Ce qui est logique - Mince, Métis, les Passagers de charger les Rails de l'instance de l'application dans la mémoire, la prise de la mémoire des exigences de dotation assez prévisible (à l'extérieur de fuites de mémoire, bien sûr). Avec Heroku, si il y a un problème avec un exemple, c'est simplement fermée et une nouvelle main - tout de ce qui se passe de manière transparente.

L'autre grande GRANDE victoire pour moi, c'est que Heroku du mécanisme de routage assure presque linéaire de la réponse ... si une demande est de 100ms à traiter, tout au long de votre sera essentiellement 10 requêtes/seconde. Le Heroku de routage mesh assure votre processus de ne pas surcharger dans un délai raisonnable les limites de charge (si vous bénéficiez d'un véritable martelé, vous aurez besoin d'ajouter des ressources, mais l'éclat à court terme charges semblent être traitées assez bien).

Sur mon projet actuel, j'ai testé les performances de chaque caractéristique majeure qu'il a été construit pour avoir une idée de la performance globale du système, et la pile elle-même assez bien les mouches - désaccordé lecture intensive, les demandes de mon application moyenne sub-50 ms temps de réponse (une seule puissance, la base de données partagée).

Je suis pas encore atteint un goulot d'étranglement dans la plate-forme elle-même.

Tout cela dit, l'hypothèse sous-jacente avec Heroku est que vous avez un "vanille" les rails de l'application de base de données, application CRUD, etc etc. Certaines choses ne sont tout simplement pas possible sur Heroku.

Il y a un certain point dans l'échelle à laquelle l'exécution de vos propres serveurs (en particulier à l'extérieur virtualisé pile) devient beaucoup plus rentable (GitHub récente de passer de EngineYard de RackSpace souligne ce point).

Comme mentionné par @theIV, la meilleure chose à faire est d'essayer cela et voir. Il est très facile pour l'installation d'une application, et il n'y a pas de changements architecturaux nécessaires (à part de ne pas utiliser le système de fichiers local (pas un problème pour moi car j'ai toujours pousser généré par l'utilisateur des fichiers sur Amazon S3). La base NewRelic TR / min Add-on est libre, de sorte que vous pouvez obtenir instantanément un aperçu de vos performances de l'application.

41voto

David Rivers Points 1187

J'ai été le déploiement d'une application à Heroku au cours des 3 mois qui a atteint le privé stade de bêta, et nous prévoyons un lancement très bientôt. (Notre prod application est actuellement à 4 dynamomètres.) Je dirai que dans l'ensemble je suis heureux avec l'administration et le déploiement de commodité, que Heroku offre, mais il a certainement quelques imperfections.

Je reconnais les avantages tout d'abord. J'ai l'expérience de mon propre Rails apps sur de Fines grappes de reverse-proxy dans Nginx sur mon VPS pour un certain temps. C'est un peu fastidieux à mettre en place, mais en général, rien qu'un intelligent développeur n'a pas pu traiter avec un certain apprentissage et de la pratique. Parce que je n'ai pas eu le temps de passer par ce stade, mais j'ai aussi vraiment besoin d'une haute performance de l'environnement de production, j'ai été heureux de trouver la solution sophistiquée que Heroku a à offrir. La facilité de déploiement et la flexibilité de son système m'avez sauvé plus de suffisamment d'heures pour réaliser un retour sur investissement puisque j'ai pu largement se concentrer sur le développement de l'application. Le déploiement est fondamentalement simple comme un git push, et la généralisation des dynamomètres peuvent être traitées avec un couple de clics de souris.

Les plaintes qui me sont, cependant, un peu au sujet. Je voudrais répéter ce que theIV mentionné sur Heroku retrait de la Zerigo add-on. Ils ont fait cela sans avertissement préalable, et il est réellement venu à un moment où j'avais besoin de faire un changement à certains de mes enregistrements DNS. Pour Heroku de la défense, je dirai que dans un agité ticket de support ou deux plus tard (si ce accéléré de la situation), ils ne restaurer l'accès à l'add-on. Mais d'ici là, j'avais déjà sauté du navire avec notre DNS et effectué la migration de nos serveurs de nom en un véritable Zerigo (payé) compte.

Ce n'est pas le seul problème que j'ai vécu avec Heroku jusqu'à présent. Environ un mois ou deux il ya, et pour une période de quelques semaines, je vivais vraiment pas fiable déploiements. Je voudrais obtenir sporadiques robinets des erreurs qui pourraient bloquer le déploiement. (Taps est Heroku de la maison-grandi migration de base de données Rubygem.) Après un ticket de support et un couple de jours, cela n'a rentrer dans l'ordre et le problème était apparemment qu'une version incorrecte de robinets a été déployé sur certains des dynamomètres. Par dumb luck je n'ai pas eu ce problème bousiller les déploiements de Prod., mais tout cela a ébranlé ma confiance en Heroku est la fiabilité.

Jusqu'à présent Heroku a été très utile, mais parfois pas aussi réactif que l'on veut pour une multitude de site de production. Cette situation est exacerbée par le fait que, actuellement, ils offrent seulement le support par email, et il n'y a pas de ligne téléphonique d'urgence. Je crois que j'ai lu ou entendu quelque part qu'ils ont l'intention de mettre en œuvre un support de téléphone de la ligne, mais qui sait quand cela se produira. (Ils semblent être un peu lent à convertir leur "coming soon" add-ons add-ons que vous pouvez réellement utiliser!)

Je tiens à double dos et de souligner qu'à mon avis Heroku a généralement été une bonne expérience, mais leur système n'est pas aussi lisse comme elle devrait l'être encore. Il se sent vraiment comme ils n'ont pas les ressources humaines dont ils ont besoin pour être en mesure de soutenir leurs activités autant qu'ils le devraient, mais je suis confiant qu'ils vont améliorer cette situation.

Heroku m'a poussé à chercher un nuage d'accueil pour mes sites personnels. Je ne suis pas fait de l'argent, alors je suis allé avec Rackspace Cloud et sera tout juste à trouver du temps pour mettre tout en place afin que je puisse migrer mes sites personnels de mon VPS hôte (RootBSD, qui je le recommande fortement si vous êtes à la recherche pour les VPS). En fait, je pense que quand je reçois assez confortable avec mon set-up sur Rackspace Cloud, et probablement aussi après ma société est en mesure d'embaucher une à plein temps en admin, je pourrait très bien nous faire migrer notre application de Heroku de Rackspace Cloud pour 2 raisons: 1) Lorsque nous arrivons au point où nous avons un grand nombre de dynamomètres, Rackspace est susceptible de donner un meilleur retour sur investissement, et 2) Ils ont un support de téléphone de la ligne; J'ai appelé une fois si loin et a immédiatement répondu et rapidement pris en charge par une voix amicale!

Cependant, jusqu'à ce que nous atteignons le point où j'ai le temps de s'inquiéter à propos de la gestion de nos propres server admin, Heroku va m'épargner ce mal de tête (surtout concernant la sécurité du serveur)!

27voto

Jasconius Points 3257

J'ai supervisé le développement de web services en cours d'exécution hors de Heroku pour environ 7 mois maintenant.

Plus Grandes Plaintes:

1) Ne joue pas bien avec statique médias, nécessite de s'appuyer sur un service comme le S3 et qui peut être un problème. Par exemple, mon appli fait beaucoup de traitement de l'image de travail, et rien n'est pire que d'avoir à la circulation entre la S3 avec de grandes images, encore et encore. Très lent.

2) 30 secondes de délai d'attente de demande. Je le comprends, mais j'aimerais avoir certaines exceptions à cette règle qui n'existent pas.

3) Lorsque Heroku descend, ça descend dur. Il ne peut pas faire plus lent, il n'a pas bégayer. Il meurt juste quelques. Et il meurt dur. Ce qui est mauvais. Pourquoi pas de basculement?

4) des Dynamomètres + Nouvelle Relique devient hors de prix très rapidement. Payer près de 400 dollars pour 4 des dynamomètres et 2 travailleurs et quelques addons. Vous êtes à s'infiltrer dans le territoire où le multi-core VPS est une meilleure option.

Tout, à l'extérieur de la ci-dessus est assez grand.

13voto

t6d Points 1090

Ce que j'aime sur Heroku est que vous avez failli avoir tout ce dont vous avez besoin sans aucune configuration de frais généraux. La seule chose que j'ai actuellement miss est un document de base de données orientée comme Mongo DB.

J'aime vraiment facile d'utilisation, la mise en cache de l'architecture fournies par leurs Vernis proxy. Il ne pouvait pas être plus facile à mettre en cache les requêtes. Récemment, j'ai eu à construire un service qui utilise des données provenant d'un serveur lent et il se transforme en JSON qui est ensuite utilisé pour alimenter une JQTouch application sur un iPhone. Puisqu'il n'y a pas besoin de stocker les données dans une base de données j'ai simplement utilisé les en-Têtes HTTP pour définir des dates d'expiration et j'étais bon pour aller. Je ne sais pas combien de temps il m'aurait pris pour configurer une infrastructure similaire. Mais définitivement aurait pris un certain temps.

Mais je pense que le fait le plus étonnant, c'est que vous avez simplement à envoyer votre dépôt et tout fonctionne hors de la boîte.

8voto

theIV Points 12999

Voyant que la façon dont chaque application/site web/blog/toutou centre de soins de jour a ses différences, je pense que votre meilleur pari est de l'essayer. Le prix est assez bon marché que vous ne pouvez pas vraiment aller mal pour un mois ou deux.

Nous avons deux relativement petits sites web fonctionnant sur Heroku et ils travaillent beaucoup. N'ai pas remarqué de problèmes, mais, en dehors de leur récente suppression de l'accès à votre Zerigo add-on pour gérer les DNS (dont nous avons assuré sera de retour sous peu).

Si cogner votre dynamomètres et de la base de données n'est pas gérer votre charge, alors vous pourriez avoir à déplacer, mais je pense que ça vaut le coup.

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: