Возможный дубликат:
Можете ли вы помочь мне с планированием моей мощности?
Надеюсь, кто-то из присутствующих будет достаточно любезен, чтобы дать совет о том, какие настройки нам следует использовать. Я не системный администратор, а просто разработчик, поэтому я не совсем уверен, что всем нужно будет задействовать для масштабирования создаваемого нами веб-приложения.
Мы создаем веб-приложение SaaS с использованием Silverlight с базой данных MS SQL на бэкэнде и вызовами служб WCF. Само приложение silverlight, в настоящее время, составляет 6 МБ (в любом случае еще не обфусцировано и не сжато) и не будет намного больше. Мы потенциально смотрим на сотни тысяч, если не миллионы, в конечном итоге, клиентов, использующих сайт, и большое количество из них присоединяются, как только сайт запускается. Поскольку это приложение SaaS, оно будет работать круглосуточно, без выходных, 365 дней в году.
В настоящее время у нас есть половина стойки выделенного оборудования в локальном центре обработки данных с 3 серверами. Два из них в настоящее время исчерпаны и больше не могут справляться с нагрузкой, но у нашего третьего очень мало, и его характеристики: Proliant DL360 G7, 12 x 2,666 ГГц, Xeon E5650 @ 2,67 ГГц, 49141,38 МБ памяти. У нас есть соединение 2 МБ, идущее ко всем 3 серверам, с возможностью увеличения до 100 МБ, но мы планируем увеличить этот размер. Все 3 сервера работают под управлением vSphere 4 Advanced, поэтому на нем можно запускать несколько виртуальных машин.
Самому серверу не потребуется хранилище из веб-приложения, но он должен будет иметь возможность обрабатывать все вызовы базы данных и сервер приложения Silverlight. Вызовы базы данных будут состоять из обычных вещей, таких как проверка учетных данных пользователя, сохранение и загрузка некоторых данных (типичная запись в базу данных никогда не будет превышать 1 МБ для самой большой сохраняемой информации) и т. Д.
Мы рассмотрели и Azure, и Amazon как альтернативу собственному хостингу, потому что чего мы не хотим, так это того, что после того, как это будет запущено, N количество людей подписывается на сервис, и мы не можем справиться со всей пропускной способностью для загрузки. приложение и все вызовы базы данных. Тем не менее, Azure очень дорогая, и Amazon не так уж и сильно отстает от нее, но оба кажутся хорошим решением проблем масштабируемости, вместо того, чтобы добавлять X серверов в нашу стойку и решать все это самостоятельно. В настоящее время мы склоняемся к Amazon, поскольку это кажется лучшим облачным решением, чем Azure, помимо того, что оно немного дешевле.
Не лучше ли добавить еще один сервер и увеличить пропускную способность? Стоит ли нам искать 2 дополнительных сервера, 2 для размещения сайта и их балансировки нагрузки, а затем 3-й сервер для нашей базы данных MS SQL? Или мы должны просто пойти с Amazon и позволить им разместить все? Я действительно не понимаю, какое лучшее решение, спасибо, ребята.
Вы сказали, что ваша максимальная транзакция WCF не будет больше 1 МБ, но как насчет средней? Это 0,95 МБ или 25 КБ? Исходя из предположения, что ваша текущая инфраструктура может справиться с ожидаемой нагрузкой WCF, и вы больше всего беспокоитесь о развертывании вашего .xap, я настоятельно рекомендую вам развернуть свой 6-мегабайтный .xap в Amazon или Azure CDN (если вы действительно уверены, что миллионы посетителей в первые дни). Это сэкономит пропускную способность, а также избавит вас от управления какими-либо облачными виртуальными машинами. Возможно, вам даже удастся обойтись хранилищем S3 вместо CDN в зависимости от ваших требований к производительности.
Таким образом, вы размещаете свои веб-компоненты приложения ASP.NET на своем веб-сервере вместе со своими службами WCF. Этот сервер должен иметь доступ к серверу базы данных по локальной сети. Это дает вам преимущества внутреннего управления приложениями без требований к пропускной способности, связанных с размещением большого файла .xap для миллионов клиентов.