Назад | Перейти на главную страницу

Предлагаемые или лучшие практики сетевой архитектуры для веб-приложения ASP.net

В настоящее время у меня есть один сервер, на котором Веб-приложение ASP.net (в IIS), и это также работает База данных SQL Server.

Я получаю все больше и больше трафика, и вскоре мне нужно будет увеличить объем трафика, который я могу обрабатывать, чтобы не нарушать работу пользователя. Я не говорю о трафике типа Google или Amazon.

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

Я хотел бы свести время простоя к разумному минимуму, но не ожидаю, что решение будет на 100% постоянно доступным.

Я рассматривал что-то вроде брандмауэра, балансировщика нагрузки, двух веб-серверов с IIS и одного SQL-сервера с разумной спецификацией (возможно, Dell R710 с 16 ГБ или более оперативной памяти) и, возможно, второго SQL-сервера, который мы можем объединить в кластер с другим.

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

Любые предложения или ссылки, указывающие мне в правильном направлении, идеальны.

Примечание: я просматривал highscalability.com, но большинство этих тематических исследований и статей относятся к мега-сайтам, таким как StackOverflow, Amazon и другим супер-огромным сайтам с гигантскими объемами трафика. Я еще не в этой лодке.

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

То, что вы предложили, - хорошее начало. У меня был подобный опыт, и я сейчас нахожусь в таком состоянии:

  • 2 веб-сервера IIS 7.5 с общей конфигурацией IIS и DFS-R для репликации каталогов веб-содержимого.
  • 2 базы данных SQL 2008 R2 в кластере MSCS
  • 2 сервера AD / DNS для поддержки кластера
  • 2x балансировщика нагрузки HaProxy перед веб-серверами

Очевидно, вы можете обойтись без AD и без единого сервера SQL, если вас не заботит доступность.

Когда SQL станет узким местом, я (после устранения проблем в приложении) приобрету оборудование большего размера для серверов SQL. Когда IIS становится узким местом, я могу просто купить больше ящиков IIS и добавить их. Нередко можно увидеть приложения с парой больших ящиков баз данных сзади с массой веб-серверов, сидящих впереди.

Другой основной проблемой здесь является стоимость лицензирования. Во многих случаях стоимость оборудования становится несущественной, потому что количество лицензий на программное обеспечение, необходимых для его запуска, становится намного больше. Я считаю, что для кластеризации SQL-сервера вам понадобятся SQL Server Enterprise и Windows Enterprise Edition - это намного больше, чем стандартные версии.

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