Готов ли Ruby On Rails для предприятия? [закрыто]

Кто-нибудь использует RoR для крупномасштабных корпоративных приложений?

Существуют ли другие легковесные веб-фреймворки, основанные на динамических языках, которые люди используют для приложений такого типа?

Если вы не используете эти типы приложений, что вас останавливает? Это просто инерция, связанная с любой крупной ИТ-организацией. Достаточно ли проблем со скоростью и стабильностью этих фреймворков, чтобы компенсировать улучшение времени цикла разработки?

18.08.2008 15:53:49
Я нашел это полезным. В статье рассматриваются некоторые сильные и слабые стороны Rails на предприятии. weblog.rubyonrails.org/2010/3/24/rails-and-the-enterprise
Jason 6.04.2013 21:48:48
20 ОТВЕТОВ

Мой приятель только что закончил работать в RecycleBank, и они использовали Rails для всей своей системы интрасети. Я думаю, что Rails определенно готов для предприятия, хотя это не то, что больше всего подвергалось сомнению. Большинство людей задаются вопросом, может ли он обрабатывать смешное количество трафика из-за требований к памяти. Это еще предстоит увидеть, но я думаю, что фреймворк полностью способен обрабатывать корпоративные приложения.

2
18.08.2008 16:01:02

YellowPages.com и Penny Arcade - самые большие, о которых я слышал. Конечно, многие предприятия используют его для внутренних приложений. Что касается масштабирования, либеральное кэширование является секретом, независимо от того, какой у вас язык / рамки.

2
18.08.2008 16:12:48

Если вы разговариваете почти со всеми, кто работает с корпоративным сайтом с большим трафиком, большинство из них скажут вам то же самое, язык, который вы выберете при правильной обработке, никогда не будет вашей проблемой, он всегда будет сводиться к IO.

Если вы посмотрите на такие сайты, как твиттер, убедитесь, что у них есть проблемы. Но они уже признали, что это было потому, что вещи не были должным образом масштабированы. С тех пор как они внедрили изменения, которые они сделали, вещи путешествовали вместе.

Единственное, что останавливает нас здесь, где я работаю, это то, что никто не знает рубина, и у него не так много времени, чтобы учиться.

3
18.08.2008 16:14:33

Я все еще не продан. У Twitter были массовые отключения ( 3 дня на один эпизод !). До некоторой степени это было связано с трудностями при масштабировании RoR: читайте здесь .

/ тр

-7
18.08.2008 16:17:52
Таким образом, из-за массовых отключений Twitter в течение 3 дней все веб-сайты (включая корпоративные) не будут масштабироваться?
Jaryl 29.12.2008 03:09:09
James McMahon 17.04.2009 03:22:37
Я думаю, что называть Twitter золотым стандартом того, может ли язык масштабироваться, очень смешно. Они перешли на среду на основе Java и все еще имеют проблемы. Это вина Java или результат роста платформы быстрее, чем кто-либо мог ожидать?
thaBadDawg 8.08.2009 23:23:00
Большинство корпоративных веб-приложений не имеют такого трафика, как твиттер. В любом случае, этот аргумент о масштабировании в значительной степени поддельный. Большая часть вычислений в хорошо спроектированном веб-приложении выполняется в базе данных, веб-сервере или библиотеках специального назначения, написанных на C или C ++. Язык большинства веб-приложений используется для анализа входящих данных, форматирования выходных данных или управления базой данных. Разбор дорог на любом языке. Для части веб-систем, которые задыхаются, многие люди переходят на Erlang для этих частей ...
Jay Godse 6.03.2010 12:27:50

Я очень удивлен тем, насколько положительным было большинство ответов. Я большой поклонник Ruby и Rails и согласен со всем, что было сказано, но я чувствую, что в сообществе существует общее предположение, что «Rails просто еще не готов к прайм-тайм». (при условии, что сообщество, как правило, менее информировано, чем я полагаю, пользователи этого сайта)

Я думаю, что с технической точки зрения примеры, приведенные другими, показывают, что вы на самом деле можете получить время безотказной работы и производительность от Rails, которые вы ожидаете от стека Java или .Net. Проблема в том, что вы не можете создавать такие высокопроизводительные и надежные приложения в Rails с 30 $ / ч программистами. Кажется, что Ruby и другие динамические языки позволяют великим программистам становиться удивительно эффективными и продуктивными, но в то же время они просто калечат так себе программистов. И, учитывая, что подавляющее большинство крупных ИТ-магазинов выбрали более дешевые обезьяны кода, которые они могут найти, я думаю, что для них было бы очень болезненным переходом на внедрение Rails вместо Java или .Net.

6
18.08.2008 16:49:28
Это не совсем то, что они калечат так себе программистов. Некоторые люди просто не имеют желания или мышления, чтобы выучить новый язык или рамки. Обычно это люди, которые подошли к профессии с идеей, что им нужно всего лишь изучить один язык или технологию, и они будут зарабатывать на этом наборе навыков всю свою жизнь. И если этим языком / технологией окажется .net или java (чаще всего), они будут свободно использовать слово enterprise, особенно в ситуации, когда они боятся изучать что-то новое.
Vasil 7.08.2009 09:56:39

Я думаю, что парни из 37Signals создали все свои приложения, используя Ruby on Rails

Я могу вообразить, они - те, кто изобрел это в конце концов.


В List Apart используется RoR, хотя и не очень.

3
18.08.2008 17:24:08

Я работаю консультантом в IBM и в прошлом году создал несколько сайтов для клиентов, использующих Ruby on Rails. Rails, без сомнения, «готов для предприятия». Ключ заключается в том, чтобы использовать rails для того, в чем он превосходен, и использовать J2EE или другие «корпоративные инструменты» там, где они превосходны. Rails отлично подходит для презентации любого приложения. Вы можете использовать веб-сервисы RESTful без приблизительно 0 работы, и это является отличной точкой интеграции с остальными вашими «корпоративными» инструментами.

Может быть, я бы не использовал рельсы для сборки yahoo.com, но это нормально. Есть сотни и тысячи идеальных ниш, где вы можете использовать рельсы, от Enterprise до самых маленьких IT-магазинов.

11
18.08.2008 18:00:34
с Yahoo! использует PHP ... почему не Ruby?
rtacconi 15.07.2009 14:49:34

Чтобы понять, готов ли Ruby on Rails для предприятия, нужно подумать о том, что означает термин «предприятие». По моему опыту, предприятие означает «безопасный». Компании, которые ищут корпоративное решение, обычно выбирают технологический стек, который поддерживается крупными поставщиками. Таким образом, они знают, что могут получить поддержку и, возможно, консультацию в обмен на большие суммы денег. Это целый подход «никто никогда не был уволен за покупку IBM».

Другой фактор, который следует учитывать, - это повсеместность. Нет сомнений в том, что сейчас Ruby по-прежнему считается несколько экзотическим языком, и наличие опытных программистов на Ruby отражает это. Технически, Ruby являетсяболее сложный, чем Java или C #, ближе к Smalltalk с точки зрения чистоты ОО и ближе к LISP с точки зрения возможностей метапрограммирования. Достаточно сказать, что компаниям будет проще найти программистов на Java или .NET по более низким ценам, чем программистов на Ruby. Это не оскорбляет программистов на Java или .NET, а отражает тот факт, что многие работодатели все еще считают разработку программного обеспечения чем-то, что должно быть сделано самым дешевым покупателем, а не тем, что должно быть сделано правильно. Программисты на Java и .NET стали в значительной степени товаром, поэтому могут быть предложены с меньшими затратами.

Технически Ruby on Rails может масштабироваться так же хорошо, как и Java, .NET или PHP и т. Д. Те же основные принципы применяются для измерения узких мест, настройки запросов SQL, минимизации операций ввода-вывода, возможной денормализации схемы базы данных, если это необходимо, и создания разумное использование кеширования и т. д. Если вам необходимо создать следующий eBay или Amazon, то вам нужно будет вручную прокрутить и настроить собственное решение, как это сделали eBay и Amazon. J2EE имеет преимущество в унаследованной интеграции, но это не тот случай использования, для которого Rails все равно оптимизирован - Rails - это все о создании новых приложений CRUD.

Нет сомнений в том, что в настоящее время Ruby является одним из самых медленных языков; В эту область вкладываются большие средства, поэтому ожидайте, что ситуация улучшится в ближайшие несколько лет, так же, как это произошло с Java с момента ее появления. Есть много интересных разработок, происходящих в области виртуальных машин Ruby и альтернатив MRI (Matz Ruby Interpreter). Лично я думаю, что JRuby - это тот, за кем нужно следить. Он поддерживается Sun (см. Рисунок), и поскольку это Java-реализация Ruby, это отличный троян, который вы можете использовать, чтобы внедрить Ruby в свое предприятие через существующую инфраструктуру JVM.

Я не думаю, что Rails вполне подходит для предприятия, и во многих отношениях я надеюсь, что это никогда не произойдет. Я не особенно хочу, чтобы моя любимая среда была погублена посредственностью или путаницей выбора нескольких поставщиков, которая была очевидна для меня в мире J2EE. К счастью, DHH, похоже, полон решимости, чтобы Rails продолжал быть самоуверенным программным обеспечением для того, чтобы избавиться от собственного зуда, а не пытаться быть всем для всех компаний.

126
9.12.2008 21:51:05
Фантастический комментарий!
Eduardo Xavier 27.07.2009 19:16:32
Разработчики ядра JRuby перешли на EngineYard.
Joshua Partogi 2.08.2009 13:36:10
очень хорошо написано по большей части
Scott Schulthess 1.05.2012 20:49:15
Я хотел бы, чтобы утверждения в этом ответе были подкреплены фактами или заменены более актуальной информацией. «Ruby более сложный, чем Java или C #» можно заменить на «Ruby обеспечивает более быструю разработку приложений, чем Java или C #» (я не уверен, правда ли это, но это можно измерить). «Ruby - один из самых медленных языков ... ожидаю улучшения ситуации». это спекуляция, где факты? ОП уточнил, что он имел в виду под «RoR готов для предприятия», и ответил на его последующие вопросы: стабильность? время цикла разработки? Кто-нибудь использует RoR для критических заданий
Jason 6.04.2013 21:41:27
@JohnTopley Я думаю, что это ответы более 5 лет. Не могли бы вы обновить свой ответ для ruby ​​на rails v4?
Giri 22.02.2014 14:20:29

История Твиттера, кажется, распространила слово, что "Rails не масштабируется". Тем временем LinkedIn создал приложение для Facebook с использованием Rails, которое обрабатывает 1B просмотров страниц в месяц .

Я покупаю аргумент, который они приводят, а именно то, что проблемы масштабируемости - это не столько результат того, какой язык / платформа вы используете, а больше то, как вы реализуете вещи на этой платформе.

6
30.08.2008 06:54:41
Но комментарий относится к приложению LinkedIn Facebook, которое использует Rails
Alessandra Pereyra 14.09.2009 23:48:20

IBM, Oracle, Sun и JPMorgan Chase - лишь некоторые из компаний, которые используют Ruby on Rails. Это, вероятно, не становится более предприимчивым, чем это.

10
20.09.2008 21:53:45
но для чего они это используют?
johnny 22.05.2009 16:44:48

Я думаю, что многие люди путаются с тем, что на самом деле означает слово «предприятие». YelloPages.com и Penny Arcade не являются корпоративными приложениями. Конечно, они могут иметь большое количество пользователей и хитов в минуту, но это относительно простые приложения.

Корпоративное приложение - это приложение, которое используется для управления предприятием - обычно это крупная многопрофильная, многопрофильная компания. SAP - это корпоративная система, а BaseCamp - нет.

Вот некоторые характеристики, которые вы обычно видите в корпоративных приложениях:

  • Они большие и сложные. Типичная система ERP должна иметь дело с сотнями типов объектов.
  • Они часто должны интегрироваться с другими системами и должны предоставлять точки интеграции для третьих сторон.
  • Они имеют большое количество разных типов пользователей и ролей, в значительной степени отражающих разные типы заданий в большой организации.

Чтобы ответить на ваш вопрос, я бы сказал, что да, Rails готов. В настоящее время мы разрабатываем большую систему управления финансовыми ресурсами для компании, насчитывающей более 1000 пользователей в 20 отделах. Масштабируемость не является большой проблемой для нас, но надежность и доступность есть. Решение этой проблемы одно и то же, независимо от технологического стека.

Я бы повторил точку зрения, высказанную другими о опытных разработчиках, но это опять же относится к любому технологическому стеку. Это может быть нормально, если среднестатистический разработчик работает на некритической небольшой системе, но если вы серьезно относитесь к разработке критически важного и общеорганизационного приложения, лучше всего, чтобы над ним работали самые умные ребята.

25
3.10.2008 13:18:12
На самом деле, наибольший объем пользователей не является определяющим фактором для определения системы, такой как предприятие. HA - это вопрос, который следует учитывать в архитектуре. Тем не менее, количество точек интеграции и т. Д. Сложность является ключевым моментом.
Eduardo Fabricio 20.10.2016 21:35:37

Мы используем Ruby on Rails прежде всего для критически важных бизнес-приложений. И нам было намного проще интегрировать Ruby с другими «корпоративными» системами, например:

  • мы используем Rails поверх базы данных Oracle
  • мы интегрируем наши Rails-приложения с Oracle E-Business Suite (ERP и CRM-система)
  • мы интегрируем аутентификацию пользователей с каталогами LDAP, аутентификацию домена Windows NTLM, аутентификацию пакета Oracle E-Business
  • мы создаем веб-сервисы REST и SOAP для интеграции с другими системами

Существует множество «корпоративных» интеграционных платформ, которые должны делать такие вещи, но они, как правило, довольно дороги, и также вы часто зависаете в какой-то проблеме, а затем зависите от поставщика, решит ли он проблему или нет.

С Ruby и другими компонентами с открытым исходным кодом вы всегда можете решить проблему самостоятельно, поскольку вы можете найти причину проблемы, и ничто не скрыто от вас.

Так что если у вас есть умные разработчики, которые любят решать сложные задачи, то Ruby станет для них отличным инструментом. Но если у вас есть среднестатистические разработчики, которые не хотят изучать что-то новое и надеются, что продавцы сделают свою работу, то, вероятно, Ruby не для них. Но я сомневаюсь, что среднестатистические разработчики смогут создавать отличные программы с помощью любого инструмента.

9
9.12.2008 22:15:21

Вот мой взгляд на это. Моя компания (в которой работает 120 000 человек) имеет преимущественно стек Java / J2EE для внутренних ИТ. Они также используют Sharepoint для управления документами / знаниями и приложения Oracle для рабочих процессов и т. Д. В течение последних 2 лет я возглавлял небольшую группу энтузиастов Ruby on Rails / Python-Django / PHP, чтобы активно пропагандировать принятие этих сред на предприятии. , Обычные (часто неверные) аргументы, с которыми мы столкнулись

  1. Это не масштабируется
  2. Это недостаточно безопасно для предприятия

Но нам удалось протолкнуть несколько приложений (Wordpress для блогов, пользовательские ответы Yahoo, такие как внутреннее социальное приложение для вопросов и ответов и приложение Idea / Innovation mgmt на основе Rails в стиле Digg), и все очень быстро изменилось. В настоящее время существует серьезный интерес к тому факту, что Rails / Django и его аналог могут на самом деле быть лучше для определенного класса корпоративных приложений, особенно простых, легких приложений в области управления знаниями, рабочих процессов и т. Д.

6
20.12.2008 06:14:49

Поскольку моя ежедневная работа связана с корпоративной архитектурой, я считаю, что слово «предприятие» в настоящее время не означает размер или масштаб, а скорее относится к тому, как продается программный продукт.

Например, Ruby on Rails не является предприятием, потому что нет ни одного поставщика, который бы заходил в ваш магазин и неоднократно проводил презентации Powerpoint для сообщества разработчиков. В Ruby on Rails нет менеджера по продажам, который отвезет меня на поле для гольфа или в мой любимый ресторан на обед. Ruby on Rails также глубоко не освещается такими аналитическими фирмами, как Gartner.

Ruby on Rails никогда не будет считаться "предприятием", пока эти вещи не произойдут ...

12
18.04.2009 12:00:41
Я считаю, что корпоративный уровень означает больше, если организация с миллионами в сети или с большими проблемами с имиджем может поставить себя в руки конкретных платформ или продуктов
Gonçalo Veiga 7.01.2012 00:43:21

Я веб-разработчик, и я уже создал несколько сайтов Ruby on Rails для различных компаний (от интрасетей до средних сайтов), но я не использовал его для действительно крупномасштабных приложений.

Люди всегда отмечают, что он медленный, не масштабируется и его сложно развернуть. «Проблема масштабируемости» больше не является проблемой. Это все еще немного медленнее, чем большинство других фреймворков, но я надеюсь, что rails 3 это исправит. Это не очень сложно развернуть благодаря Capistrano и mod_rails .

Реальные проблемы, которые я могу видеть с рельсами в крупных проектах:

  • Не так много людей, знающих Rails. Если у вас есть приложение PHP, вы можете быть уверены, что 66% веб-разработчиков смогут его поддерживать. С рельсами это не то же самое.
  • Это все еще медленнее, и если скорость критична, это может быть проблемой
  • Ему все еще нужно больше компонентов для электронной коммерции и так далее. Это происходит, особенно после shopify , но, к примеру, не так готово, как Java.

Кроме того, я думаю, что Rails готов.

Часто это просто вопрос выбора правильной технологии для проекта, а иногда это могут быть рельсы. У каждого языка / фреймворка есть свои недостатки, поэтому в некоторых случаях Rails не будет самым умным выбором, но в других случаях он будет работать правильно.

Кроме того, просто дождитесь Rails 3 , это будет круто :)

5
16.07.2009 16:19:35

Я использую рельсы в корпоративной среде, и это работает довольно хорошо. Вам просто нужно создать приложение для работы в среде. В моем случае мы являемся Java-домом, поэтому jRuby является предпочтительным методом развертывания.

Я также перестал использовать рельсы для рендеринга реальных страниц, но использую его для модулей, инструментов и быстрых и грязных сервисов, которые ссылаются на инструменты. Наши Java-сервисы не имеют никакого внутреннего инструмента, который бы взаимодействовал с ними.

Наш сайт имеет сотни (возможно, тысячу) страниц, поэтому рельсы, вероятно, будут плохим кандидатом на замену этой архитектуры. С другой стороны, если я интегрирую рельсы в сайт Java, то смогу решить довольно много проблем, которые были бы очень сложными с конца Java.

Архитектура вашего приложения является ключевой, если вы не спроектируете приложение для хорошего масштабирования, у вас будут проблемы, независимо от того, какой фреймворк / язык вы выберете.

Я создал приложение для нескольких страниц, которое получает сотни тысяч просмотров в месяц. Rails работал отлично, но большая часть контента была кеширована. У нас был один случай, когда Yahoo показывал на первой полосе историю, связанную с нами. На этой странице было не кешированное содержание rails, поэтому огромный трафик привел к отключению приложения rails, но это была моя вина, что я не оптимизировал лучше.

1
16.08.2009 01:57:22

Я не знаю, буду ли я считать это предприятием ... но я думаю, это говорит о том, что и твиттер, и хулу построены на рельсах.

1
15.11.2009 21:53:05

В настоящее время мы успешно используем Rails для сайта с более чем 5 миллионами уникальных записей в месяц, поэтому если предприятие = масштабирование, тогда да.

1
19.06.2010 17:08:28

Я определенно прочитал бы этот пример использования Ruby On Rails

В этой статье я расскажу, как мы используем Ruby on Rails для создания сайта. Вы увидите основные функции, которые мы используем, а также основные плагины, от которых мы зависим каждый день. Большинство наших технологий на самом деле не ошеломляет, но я надеюсь дать вам представление о наших повседневных операциях. Моя цель - дать вам общее представление о работе команды, технологиях, которым мы доверяем в производственной среде, инструментах, которые мы используем, и средах Rails, которые наиболее важны для нас. Я буду ссылаться на ресурс, а не вдаваться в подробности в какой-либо отдельной области, но если вы хотите узнать больше о какой-либо его части, оставьте комментарий.

1
30.06.2010 11:53:12

Да, у нас есть несколько крупных клиентов, использующих наши приложения на основе Rails (интранет и облако). Стабильность была потрясающей. Например, на ум приходят два из них с наибольшим объемом трафика и сложностью: одно из наших приложений работает в течение 2,5 лет с 0 проблемами, а еще 6 месяцев - также с 0 проблемами.

3
5.01.2011 17:42:31