Ruby On Rails est-il prêt pour l’entreprise?

Quelqu’un utilise-t-il RoR pour des applications d’entreprise à grande échelle et critiques?

Existe-t-il d’autres frameworks Web légers basés sur des langages dynamics que les utilisateurs utilisent pour ces types d’applications?

Si vous n’utilisez pas ce type de framework d’application, qu’est-ce qui vous en empêche? Est-ce simplement l’inertie associée à toute grande organisation informatique. Les problèmes de vitesse et de stabilité de ces frameworks sont-ils suffisamment problématiques pour compenser les améliorations des temps de cycle de développement?

Afin de déterminer si Ruby on Rails est prêt pour l’entreprise, vous devez réfléchir à la signification du terme “entreprise”. Selon mon expérience, l’entreprise signifie «en sécurité». Les entresockets qui recherchent une solution d’entreprise choisissent généralement une stack technologique prise en charge par les grands fournisseurs. De cette façon, ils savent qu’ils peuvent obtenir un soutien et probablement des conseils en échange de dépenses importantes. C’est l’approche “personne n’a jamais été viré pour avoir acheté IBM”.

Un autre facteur à considérer est l’omniprésence. Il ne fait aucun doute qu’à l’heure actuelle, Ruby est toujours considéré comme un langage quelque peu exotique et la disponibilité de programmeurs Ruby qualifiés en est la preuve. Techniquement, Ruby est plus sophistiqué que Java ou C #, étant plus proche de Smalltalk en termes de pureté OO et plus proche de LISP en termes de méta-programmation. Inutile de dire que les entresockets vont trouver plus facile d’obtenir un faible taux de programmation pour les programmeurs Java ou .NET que pour les programmeurs Ruby. Cela ne doit pas insulter les programmeurs Java ou .NET, mais plutôt refléter le fait que de nombreux employeurs considèrent le développement de logiciels comme quelque chose à faire par le soumissionnaire le moins cher, plutôt que quelque chose qui devrait être fait correctement. Les programmeurs Java et .NET sont à peu près une marchandise et peuvent donc être proposés à moindre coût.

Techniquement, Ruby on Rails peut évoluer aussi bien que Java, .NET ou PHP, etc. Les mêmes principes de base s’appliquent à la mesure des goulots d’étranglement, à l’optimisation des requêtes SQL, à la dénormalisation éventuelle du schéma et utilisation judicieuse de la mise en cache, etc. Si vous avez besoin de créer le prochain eBay ou Amazon, vous devriez vous servir de votre propre solution, comme eBay et Amazon l’ont fait manuellement. J2EE a l’avantage de l’intégration héritée, mais ce n’est pas le cas si Rails est optimisé de toute façon: Rails se concentre sur la création de nouvelles applications CRUD.

Il ne fait aucun doute qu’à l’heure actuelle, Ruby est l’une des langues les moins performantes. beaucoup d’investissements sont réalisés dans ce domaine, alors attendez-vous à ce que la situation s’améliore au cours des prochaines années, comme cela a été le cas pour Java depuis sa création. Il y a beaucoup de développements intéressants dans le domaine des machines virtuelles Ruby et des alternatives à l’IRM (interprète Matz Ruby). Personnellement, je pense que JRuby est à surveiller. Il est soutenu par Sun (allez-y) et comme il s’agit d’une implémentation Java de Ruby, c’est un cheval de Troie ordonné que vous pouvez utiliser pour intégrer Ruby dans votre entreprise, via son infrastructure JVM existante.

Je ne pense pas que Rails existe déjà pour l’entreprise et j’espère qu’elle ne l’est jamais. Je ne veux pas particulièrement voir mon cadre préféré s’embourber dans une partie de la médiocrité ou de la confusion du choix multi-vendeurs qui m’a été évident dans le monde J2EE. Heureusement, DHH semble déterminé à ce que Rails continue à être un logiciel d’opinion pour se gratter la tête, plutôt que d’essayer de tout faire pour toutes les entresockets.

Je pense que beaucoup de gens sont confus avec ce que le mot “entreprise” signifie vraiment. YelloPages.com et Penny Arcade ne sont pas des applications d’entreprise. Bien sûr, ils peuvent avoir un grand nombre d’utilisateurs et de hits / minute, mais ce sont des applications relativement simples.

Une application d’entreprise est une application utilisée pour gérer une entreprise, c’est-à-dire une grande entreprise multi-départements et multi-sites. SAP est un système d’entreprise, BaseCamp ne l’est pas.

Certaines des caractéristiques que vous verrez généralement dans les applications d’entreprise sont les suivantes:

  • Ils sont grands et complexes. Un système ERP typique doit traiter des centaines de types d’entités.
  • Ils ont souvent besoin d’intégrer d’autres systèmes et doivent fournir des points d’intégration pour des tiers.
  • Ils ont un grand nombre de types d’utilisateurs et de rôles différents, reflétant en grande partie différents types de tâches dans une grande organisation.

Pour répondre à votre question, je dirais que oui, Rails est prêt. Nous développons actuellement un système de gestion financière de grande taille pour une entreprise de plus de 1000 utilisateurs traversant 20 départements. L’évolutivité n’est pas un gros problème pour nous, mais la fiabilité et la disponibilité le sont. La résolution de ce problème est la même, quelle que soit la technologie utilisée.

Je réitérerais le point que d’autres ont fait à propos des développeurs qualifiés, mais cela s’applique à nouveau à toute stack technologique. Il serait peut-être correct qu’un développeur moyen travaille sur un petit système non critique, mais si vous envisagez sérieusement de développer une application critique et à l’échelle de l’entreprise, vous feriez bien de faire travailler vos meilleurs employés.

Comme mon travail quotidien concerne l’architecture d’entreprise, je pense que le mot «entreprise» ne concerne plus la taille ni l’échelle, mais plutôt la façon dont un produit logiciel est vendu.

Par exemple, Ruby on Rails n’est pas une entreprise car il n’y a pas de fournisseur qui viendra dans votre boutique et effectuera des présentations Powerpoint à plusieurs resockets pour la communauté des développeurs. Ruby on Rails n’a pas de directeur des ventes qui m’emmène au golf ou dans mon restaurant préféré pour le déjeuner. Ruby on Rails n’est pas non plus couvert par les analystes indussortingels tels que Gartner.

Ruby on Rails ne sera jamais considéré comme une entreprise avant que ces choses ne se produisent …

Je travaille en tant que consultant chez IBM et j’ai créé plusieurs sites Web pour des clients utilisant Ruby on Rails au cours de l’année écasting. Rails est sans aucun doute “prêt pour l’entreprise”. La solution consiste à utiliser des rails pour lesquels elle excelle et à utiliser J2EE ou d’autres «outils d’entreprise» là où ils excellent. Rails est génial à la fin de la présentation de toute application. Vous pouvez consumr des services Web RESTful sans environ 0 travail, ce qui constitue un excellent point d’intégration pour le rest de vos outils “d’entreprise”.

Peut-être que je n’utiliserais pas les rails pour construire yahoo.com, mais ce n’est pas grave. Il y a des centaines et des milliers de niches parfaites où vous pouvez utiliser les rails, de l’entreprise au plus petit des magasins informatiques.

IBM, Oracle, Sun et JPMorgan Chase ne sont que quelques-unes des sociétés qui utilisent Ruby on Rails. Il n’ya probablement pas plus d’entreprise que cela.

Nous utilisons Ruby on Rails principalement pour les applications métier critiques «d’entreprise». Et pour nous, il a été beaucoup plus facile d’intégrer Ruby à d’autres systèmes “d’entreprise”, par exemple:

  • nous utilisons Rails en plus de la firebase database Oracle
  • nous intégrons nos applications Rails avec Oracle E-Business Suite (système ERP & CRM)
  • Nous intégrons l’authentification des utilisateurs avec les annuaires LDAP, l’authentification du domaine NTLM Windows, l’authentification de la suite Oracle E-Business.
  • nous construisons des services Web REST et SOAP pour l’intégration avec d’autres systèmes

Il y a beaucoup de plates-formes d’intégration “d’entreprise” qui sont supposées faire ce genre de choses mais elles sont généralement très coûteuses et vous vous retrouvez souvent bloqué sur un problème et vous dépendez du fournisseur s’il résout le problème ou non.

Avec Ruby et d’autres composants open source, vous êtes toujours en mesure de résoudre le problème par vous-même, car vous pouvez trouver la source du problème et rien ne vous est caché.

Donc, si vous avez des développeurs intelligents qui aiment résoudre des problèmes difficiles, Ruby sera un excellent outil pour eux. Mais si vous avez des développeurs moyens qui ne veulent rien apprendre de nouveau et qui espèrent que les fournisseurs feront leur travail, Ruby ne leur est probablement pas destiné. Mais je doute que les développeurs moyens soient en mesure de créer de super logiciels avec n’importe quel outil.

Je suis assez étonné de voir à quel point la plupart des réponses ont été positives. Je suis un grand fan de Ruby and Rails et je suis d’accord avec tout ce qui a été dit, mais j’ai l’impression que la communauté part du principe que “Rails n’est pas encore prêt pour les heures de grande écoute”. (accordée que la communauté est généralement moins informée que je suppose que les utilisateurs de ce site sont)

D’un sharepoint vue technique, je pense que les exemples que d’autres ont montrés montrent que vous pouvez effectivement obtenir le temps de fonctionnement et les performances de Rails que vous attendez d’une stack Java ou .Net. Le problème est que vous ne pouvez pas créer ce type d’applications hautement performantes et fiables dans Rails avec des programmeurs à 30 $ / h. Le Ruby et d’autres langages dynamics semblent permettre aux grands programmeurs de devenir incroyablement efficaces et productifs, mais ils ne font que paralyser les vrais programmeurs. Et étant donné que la grande majorité des grandes entresockets informatiques ont choisi d’augmenter le nombre de singes de code les moins chers, je pense que ce serait une transition très pénible pour eux d’essayer d’introduire Rails en remplacement de Java ou de .Net.

L’histoire de Twitter semble avoir répandu le mot que «Rails ne change pas». En attendant, LinkedIn a créé une application Facebook en utilisant Rails qui gère 1B pages vues / mois .

J’achète l’argument qu’ils font, à savoir que les problèmes d’évolutivité sont moins un produit de la langue / plate-forme que vous utilisez et plus sur la façon dont vous implémentez les choses au sein de cette plate-forme.

Voici mon sharepoint vue à ce sujet. Ma société (qui compte 120 000 employés) dispose d’une stack Java / J2EE essentiellement destinée à l’informatique interne. Ils utilisent également Sharepoint pour la gestion des documents / connaissances et les applications Oracle pour le workflow, etc. Au cours des 2 dernières années, j’ai dirigé un petit groupe de passionnés de Ruby on Rails / Python-Django pour étudier activement l’adoption de ces frameworks au sein de l’entreprise. . Les arguments habituels (souvent invalides) que nous avons rencontrés

  1. Il ne sera pas à l’échelle
  2. Ce n’est pas assez sécurisé pour l’entreprise

Mais, nous avons réussi à faire passer quelques applications (WordPress pour les blogs, une réponse Yahoo personnalisée comme une application interne de questions-réponses sociales et une application de gestion des idées basée sur Rails Digg) et les choses ont vraiment changé très rapidement. Il y a maintenant une forte adhésion au fait que Rails / Django et ses semblables peuvent en réalité être meilleurs pour une certaine classe d’applications d’entreprise, en particulier les applications simples et légères dans les domaines de la gestion des connaissances, du stream de travail, etc.

Je suis développeur web et j’ai déjà créé des sites Web Ruby on Rails pour diverses sociétés (de l’intranet à des sites Web de taille moyenne), mais je ne l’ai pas utilisé pour une application à grande échelle.

Les gens soulignent toujours que c’est lent, ne prend pas de l’ampleur et est difficile à déployer. Le “problème de l’évolutivité” n’en est plus un. C’est encore un peu plus lent que la plupart des autres frameworks, mais j’ai bon espoir que les rails 3 résoudront ce problème. Ce n’est pas vraiment difficile à déployer grâce à Capistrano et mod_rails .

Les vrais problèmes que je peux voir avec les rails sur les projets à grande échelle:

  • Il n’y a pas beaucoup de gens qui connaissent Rails. Si vous avez une application PHP, vous pouvez être sûr que 66% des développeurs Web pourront le maintenir. Avec les rails, ce n’est pas la même chose.
  • Il est encore plus lent et si la vitesse est critique, cela pourrait poser problème
  • Il lui faut encore plus de composants pour le commerce électronique, etc. Il y arrive , surtout depuis shopify , mais ce n’est pas aussi prêt que Java par exemple.

En dehors de cela, je pense que Rails est prêt.

Souvent, il suffit de trouver la bonne technologie pour le projet et, dans certains cas, il peut s’agir de rails. Chaque langage / structure présente des inconvénients, donc dans certains cas, Rails ne sera pas le choix le plus intelligent, mais dans d’autres cas, cela fera le travail comme il faut.

De plus, attendez Rails 3 , ce sera génial 🙂

Si vous parlez à presque tout le monde qui exploite un site d’entreprise à fort trafic, la plupart d’entre eux vous diront la même chose, la langue que vous choisissez si elle est gérée correctement ne sera jamais votre problème, elle reviendra toujours à IO.

Si vous regardez des sites comme Twitter, assurez-vous qu’ils ont des problèmes. Mais ils ont déjà admis que c’était parce que les choses n’avaient pas été correctement mises à l’échelle. Depuis qu’ils ont mis en œuvre les changements, ils ont fait des choses en même temps.

La seule chose qui nous empêche de travailler ici est que personne ne connaît le rbuy et n’a pas vraiment le temps d’apprendre.

Je pense que les gars de 37Signals ont construit toutes leurs applications en utilisant Ruby on Rails

J’imagine qu’ils sont ceux qui l’ont inventé après tout.


Une liste à part utilise RoR, mais pas très entreprise.

Un de mes amis vient de finir de travailler chez RecycleBank, et ils utilisaient Rails pour l’ensemble de leur système intranet. Je pense que Rails est définitivement prêt pour l’entreprise, même si ce n’est pas ce qui a été le plus remis en question. La plupart des gens se demandent s’il peut gérer une quantité de trafic ridicule en raison des besoins en mémoire. Cela n’a pas encore été vu, mais je pense que le cadre est entièrement capable de gérer les applications d’entreprise.

YellowPages.com et Penny Arcade sont les plus grands dont j’ai entendu parler. Bien sûr, de nombreuses entresockets l’utilisent pour des applications internes. En ce qui concerne la mise à l’échelle, la mise en cache libérale est le secret, quel que soit votre langage / cadre.

Oui, plusieurs grands clients utilisent nos applications basées sur Rails (intranet et cloud). La stabilité a été incroyable. Par exemple, deux d’entre eux sont ceux qui génèrent le plus de trafic et de complexité: l’une de nos applications est en production depuis deux ans et demi avec 0 problèmes et six mois supplémentaires, également avec 0 problèmes.

J’utilise les rails dans un environnement d’entreprise et cela fonctionne très bien. Vous devez juste façonner votre application pour travailler dans l’environnement. Dans mon cas, nous sums une maison Java, donc jRuby est la méthode de déploiement de choix.

J’ai également cessé d’utiliser les rails pour rendre les pages réelles, mais je les utilise pour les modules, les outils et les services rapides et sales liés aux outils. Nos services Java ne disposent d’aucun outil back-end avec lequel ils interagissent.

Notre site comporte des centaines (voire un millier) de pages, de sorte que les rails seraient probablement un mauvais candidat pour remplacer cette architecture. D’un autre côté, si j’intègre les rails dans le site Java, je peux résoudre plusieurs problèmes très difficiles du côté Java.

L’architecture de votre application est la clé, si vous ne concevez pas l’application pour évoluer correctement, vous rencontrerez des problèmes, quel que soit le framework / langage choisi.

J’ai construit une application de rails pour plusieurs pages qui reçoivent des centaines de milliers de visites par mois. Rails a bien fonctionné, mais la plupart du contenu a été mis en cache. Nous avons eu un exemple où yahoo a eu une page principale en vedette liée à nous. La page comportait un contenu de rails non mis en cache, donc le trafic énorme a réduit l’application des rails, mais c’était en partie de ma faute pour ne pas optimiser les choses.

Je ne sais pas si je considérerais cela comme une entreprise … mais je pense que cela en dit long que Twitter et Hulu sont construits sur des rails.

Nous utilisons actuellement Rails pour un site avec plus de 5 millions de visiteurs uniques / mois avec un grand succès, donc si enterprise = scale alors yes.

Je voudrais certainement lire cette étude de cas de Ruby On Rails

Dans cet article, je vais vous expliquer comment utiliser Ruby on Rails pour construire le site. Vous verrez les principales fonctionnalités que nous utilisons, ainsi que les principaux plug-ins dont nous dépendons chaque jour. La plupart de nos technologies ne sont pas vraiment bouleversantes, mais j’espère vous donner un aperçu de nos opérations quotidiennes. Mon objective est de vous donner un aperçu général du fonctionnement de l’équipe, de la technologie à laquelle nous faisons confiance dans l’environnement de production, des outils que nous utilisons et des frameworks Rails les plus importants pour nous. Je vais créer un lien vers une ressource plutôt que d’entrer dans les détails dans n’importe quel domaine, mais si vous voulez en savoir plus sur une partie quelconque, laissez un commentaire.

Je ne suis toujours pas vendu. Twitter a eu des pannes massives ( 3 jours sur un épisode !). Jusqu’à un certain point, on a atsortingbué les difficultés à la mise à l’échelle de RoR: lisez ici .

/ mp