Когда разрабатывать для масштабируемости? - PullRequest
4 голосов
/ 16 февраля 2012

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

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

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

Очевидно, у меня нет опыта работы с масштабируемыми веб-сайтами. В настоящее время я склоняюсь к Scala / Play! Акка. Из того, что я могу почерпнуть на веб-сайте Akka, он очень подходит для такого рода проектов (поскольку он предоставляет набор инструментов, который позволяет разрабатывать на одной машине и масштабировать до произвольного числа машин).

Проект представляет собой ориентированный на потребителя веб-сайт, который предполагает некоторое взаимодействие с пользователем (комментарии, сообщения, голосование и т. Д.). Тем не менее, основное внимание уделяется редакционной. Это не Фейсбук:)

Не имея опыта ни в одной из этих технологий (мой опыт в основном приходит из PHP, AS3, Objective-C), у меня сейчас, наверное, слишком много на моем планшете. Но тогда я не собираюсь идти на это сразу. Я знаю, что мне нужно получить некоторый опыт использования Scala и Play! первый.

Любой совет с благодарностью.

Ответы [ 2 ]

4 голосов
/ 16 февраля 2012

Начните с простого проектирования вашей модели, создания модульных тестов для нее, а затем установите уровень презентации поверх нее. Пока ваша модель разумна, будет легко масштабировать Play на любое количество машин. Если вы идете за сборкой в ​​поддержку JPA, вы всегда можете решить вопрос о том, какую БД использовать.

У вас есть большие вещи на тарелке в настоящее время. Так что просто убедитесь, что ваш дизайн последовательный и разумный, тогда масштабирование не будет проблемой.

2 голосов
/ 16 февраля 2012

Вы получили преимущество, используя веб-фреймворк без сохранения состояния, такой как Play!это не будет мешать, когда вам нужно масштабировать.Как говорит ExxKA, держите вашу модель чистой и разумной.Это поможет вам сохранить преимущество в сложности.

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

Есть неизбежные вещи, которые вы узнаете в процессе написания проекта, поэтому не пытайтесь предвидеть их все в порядкеТеперь.

...