Единый стек технологий против нескольких технологий для крупномасштабного сайта - PullRequest
0 голосов
/ 07 октября 2010

Недавно я пришел за советом по идее переписать существующий сайт из-за серьезных проблем с обслуживанием в их старом дизайне.

По сути, компания рассматривает возможность полной перезаписи aprox.90% их сайта, который в настоящее время написан на PHP с использованием собственной инфраструктуры.

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

Мы придумали несколько возможных архитектур, некоторые из которых включают переписывание всего сайтаиспользование существующей веб-инфраструктуры сценариев, такой как Cake, Django или RoR, и некоторых скомпилированных языковых сред на Java или даже .Net.Кроме того, мы придумали несколько кросс-технологических решений, таких как веб-приложение, созданное в Django с бэкэндом Scala.

Мне было интересно, какова будет польза от использования одного технологического стека (например, RoR)в отличие от использования сочетания двух (таких как RoR со Scala, как сейчас делают Twitter) и тисков против.

Примите во внимание тот факт, что сайт этой компании является сайтом с высоким трафиком с более 1миллион уникальных посетителей в день , которые будут постепенно переходить на новую архитектуру в течение длительного периода (от нескольких месяцев до года) ...

Спасибо

Ответы [ 4 ]

1 голос
/ 07 октября 2010

Вообще говоря, я не думаю, что какой-либо конкретный технологический стек лучше, чем любой другой, с точки зрения производительности; Facebook работает на PHP, и я знаю, что Java и .Net хорошо масштабируются. Исходя из того, что вы сказали, я сейчас буду больше беспокоиться о проблемах, связанных с ремонтопригодностью, чем о производительности и масштабируемости.

Вообще говоря, я бы по возможности уложился в один хорошо известный стек технологий:

  • Будет легче найти (хороший) персонал для хорошо известного стека платформ / технологий; на рынке их будет больше, и цены не будут такими дорогими, как навыки слишком редки.
  • Разделение вашей технологии означает, что вам нужен более широкий спектр знаний; придерживаясь единого технологического стека, вы можете сосредоточиться на нем с лучшими / более быстрыми результатами.
  • Люди стремятся сосредоточиться на одной платформе / стеке технологий, поэтому будет проще найти разработчиков для технологии X, а не технологий X, Y и Z.
  • Членам команды легче работать над разными частями системы, поскольку все они написаны с использованием одной и той же технологии, предположительно похожим образом.
  • С точки зрения интеграции, элементы одного и того же технологического стека играют вместе лучше, переход в разные стеки может быстро стать более трудным и трудным для поддержки.
  • В тех случаях, когда вы хотите использовать разные технологии, убедитесь, что границы чистые - то, что основано на стандартах или не зависит от технологий, например, вызовы веб-службы / JSON.
0 голосов
/ 08 октября 2010

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

0 голосов
/ 07 октября 2010

Получение правильной архитектуры и чистого кода проще всего с Smalltalk и Seaside, особенно если вы сохраняете постоянство с Gemstone. В таких масштабах вам придется поговорить с ними о стоимости лицензии. Вы можете знать их по работе с Ruby, которую они выполняют с Маглевым.

0 голосов
/ 07 октября 2010

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

  1. Количество платформ. Чтобы свести к минимуму сложность этой задачи и управлять ею, совершенно необходимо, чтобы вы снизили умственную нагрузку, используя как можно меньше новых технологий / платформ. Например, преимущество RoR перед PHP + Smarty, которое часто цитируется, заключается в том, что с RoR вам не нужно изучать новый язык представления.

  2. Требуются командные усилия для изучения новых технологий. Если ваша существующая команда уже работает с PHP, Django и т. Д., Но не с RoR, то вам, возможно, будет лучше использовать существующие навыки, так как умственное напряжение для разработчиков будет меньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...