Мне интересно, как все подходят к вопросу следующего характера:
'нам нужно создать Приложение A (например, сайт электронной коммерции). Он будет использовать технологию B (например, Java). Он должен поддерживать C (например, 200) число одновременных пользователей. Какое оборудование нам нужно? '
Спецификация оборудования будет включать количество требуемого ЦП и, возможно, объем памяти для базового ответа.
Чтобы упростить мой пример, я остановлюсь на технологии Java в своем вопросе, но мне бы очень хотелось получить технологически нейтральный совет.
Я понимаю, что такой вопрос связан со многими дополнительными факторами. Например, другая структура (архитектура Wicket vs Struts vs Spring против pure EJB J2EE), количество распределенных уровней (одна настройка блока или 3 уровня настройки).
Но, учитывая, что у человека может не быть предшествующего опыта работы с данной технологией (или, возможно, нет возможности провести нагрузочный тест, чтобы выяснить, какое требуется оборудование), и такой вопрос всегда возникает во время первоначального обсуждения проекта ( и ответ необходим в качестве основы для продвижения вперед), как вы собираетесь дать ответ?
Я думал о решении проблемы требуемой памяти, оценивая объем памяти, который может занять каждый пользовательский сеанс, но определенно будут накладные расходы фреймворка / виртуальной машины.
Но в общем, я просто не могу найти хорошее решение этого вопроса, который, кажется, всегда всплывает. Нагрузочный тест определенно поможет решить его, но к этому моменту проект уже готов, и на этот вопрос клиент обычно хочет получить ответ, прежде чем приступить к проекту.
Надеюсь, что сообщество сможет посоветовать хорошие подходы к этому.
Спасибо.