Я планирую начать новое веб-приложение с нуля, но мне интересно, не слишком ли я слишком много одержим масштабируемостью. Должен ли я беспокоиться об этом с самого начала или лучше сначала сосредоточиться на самом приложении и scale later, если мне действительно удастся?Сколько я должен беспокоиться о масштабировании?
ответ
Вообще говоря, преждевременно и отвлекать внимание на масштабируемость для начала по нескольким причинам.
Решите проблему, когда вы есть проблема.
Беспокойство относительно масштабируемости слишком рано, как правило, задерживает вас за то, что вы делаете что-то не так сильно. Часто вы действительно не понимаете влияния производительности, пока что-то не используется в реальном мире.
«преждевременная оптимизация» и весь этот джаз, да. У вас нет такой вещи, как «преждевременная безопасность». –
@jae: безопасность! = Масштабируемость. – cletus
Но плохие архитектурные решения могут препятствовать масштабируемости. Таким образом, важно, по крайней мере, иметь это в виду и понимать последствия решений, которые вы принимаете. –
Определите себе некоторые цели, такие как, например, количество пользователей в секунду, которое вы хотели бы, чтобы ваше приложение могло служить в начале. Затем разработайте приложение и выполните нагрузочное тестирование, чтобы убедиться, что ваша цель выполнена. Если это так, вы можете запустить его для публики и посмотреть, что произойдет.
Точно. Зачем делать дикие догадки, когда вы можете оценить, и почему оценить, когда вы можете измерить? Аргумент «преждевременной оптимизации» применяется только тогда, когда оптимизация не требуется. Выясните, сколько вам нужно для масштабирования, а затем создайте для этого масштаба. – Aaronaught
Мне тоже нравится этот ответ. Сосредоточьтесь на запуске и посмотрите, сможете ли вы вообще плавать, прежде чем сделать его идеальным. Настройте тестовую среду, чтобы проверить, что вы можете справиться с разумной нагрузкой и забудете масштабируемость 1000x на данный момент. – Christian
Для веб-приложения, которое не имеет существующей большой пользовательской базы, функциональность, безусловно, более важна, чем масштабируемость в начале. Дело не в том, что вам не следует использовать передовые методы, которые также помогают масштабируемость - просто вы не должны делать исключениями для некоторых лучших практик, потому что они повреждают масштабируемость. Вы можете просто сосредоточиться на правильности и правильном программировании, а затем, если ваше приложение начнет показывать проблемы с масштабируемостью, вы можете исправить их по мере необходимости.
Теперь, если вы являетесь Google и выходите с Gmail или Google Maps, я думаю, что масштабируемость должна быть приоритетной с самого начала. Если вы почти уверены, что миллионы людей будут его использовать, вам следует подумать над этим (и определенно проверить).
Теперь вы должны сосредоточиться на презентации, функциональности и безопасности вашего приложения. Масштабируемость приходит, когда вам это нужно, но сделайте себе одолжение и напишите чистый код, чтобы упростить масштабирование вашего приложения в будущем. Вместо того, чтобы думать о своем дизайне с точки зрения масштабируемости, подумайте об этом с точки зрения модульности и возможности повторного использования, так что, когда придет время, не будет ужасно сложно масштабировать занятые части вашего приложения.
- 1. Должен ли я беспокоиться о sqlite-файле?
- 2. Должен ли я беспокоиться о поддержке javascript?
- 3. Должен ли я беспокоиться о HTML 5?
- 4. Когда я должен беспокоиться о размере транзакции?
- 5. Должен ли я беспокоиться о переполнении трубы?
- 6. Должен ли я беспокоиться о безопасности паролей?
- 7. Должен ли я беспокоиться о загрузке базы данных MySQL?
- 8. Должен ли я беспокоиться о запутывании моего .NET-кода?
- 9. Должен ли я беспокоиться о накладных расходах на «Rc»?
- 10. Должен ли я беспокоиться о выпуске ресурсов в этом случае?
- 11. Должен ли я беспокоиться о количестве обращений к издеваемому объекту
- 12. Должен ли я беспокоиться о круговых ссылках на Python?
- 13. Должен ли я беспокоиться о опции gcc -pedantic сейчас?
- 14. Должен ли я беспокоиться о RSS-адресах для SEO?
- 15. Haskell: Должен ли я беспокоиться о компиляции регулярных выражений?
- 16. Должен ли я беспокоиться о бит-рейдах на Amazon S3?
- 17. Должен ли я беспокоиться о декомпиляции моего программного обеспечения?
- 18. Должен ли я беспокоиться о высокой кэшированной памяти?
- 19. Должен ли я беспокоиться о sandboxd deny file-write-data '
- 20. Должен ли я беспокоиться о избыточных, не работающих, докерных контейнерах?
- 21. Должен ли я беспокоиться о безопасности потоков во флеше?
- 22. Должен ли я беспокоиться о неэффективности шаблона Django?
- 23. Должен ли я беспокоиться о столкновениях в NSUserDefaults?
- 24. Должен ли я беспокоиться о модульном тестировании моего уровня репозитория
- 25. Должен ли я беспокоиться о кодировании во время сериализации?
- 26. Должен ли я беспокоиться о ленивой загрузке в веб-приложении?
- 27. Должен ли я беспокоиться о типе массива в Python?
- 28. Должен ли я беспокоиться о обучении Windows Workflow?
- 29. Должен ли я беспокоиться о размере сообщения при публикации событий?
- 30. Asp.net MVC Почему я должен беспокоиться о прокси-провайдере?
Нет общего ответа на этот вопрос. Это полностью зависит от того, что является вашей проблемной областью и соображениями вашего бизнеса. – bmargulies
Если вы задаете этот вопрос на SO, тогда да, вы слишком много одержимы. Гораздо быстрее «выпускать на раннем этапе, часто выпускать» и фактически видеть, есть ли трафик. Сосредоточьтесь на архитектуре хорошего качества, а часть масштабирования будет намного проще. – gahooa
Лучший вопрос: сколько людей, которые говорят «не волнуйтесь о масштабируемости сейчас», когда-либо приходилось зацикливать всю исходную базу и начинать только потому, что они не использовали здравого смысла, когда они начали? –