Каковы возможные варианты архитектуры для крупномасштабных веб-приложений - PullRequest
4 голосов
/ 01 июля 2011

Мне поручено разработать крупномасштабное социальное веб-приложение, такое как Facebook, Twitter и т. Д., С использованием ASP.net с C #

. До этого моя разработка была основана на трехуровневой архитектуре (т. Е. Уровень представления, бизнеслогический уровень и уровень доступа к данным) но для этого проекта я запутался, потому что это мой первый крупномасштабный проект: (

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

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

Ответы [ 4 ]

2 голосов
/ 01 июля 2011

Вы должны проверить Windows Azure. он предлагает хостинг, 3 типа масштабируемого (но не реляционного) хранилища в форме BLOB-объектов (или файлов / изображений / raw), очередей (для распределенной связи) и табличного хранилища (для поддержки данных «сущностей» нереляционным способом ).

Существует также SQL Azure для реляционного хранилища и AppFabric для гибридной (локальная / облачная) адресация приложений и контроль доступа для управления идентификацией на основе утверждений.

Он имеет встроенную диагностику, и если вы знаете C # / ASP.NET / ASP.NET MVC, вам не понадобятся новые навыки, чтобы воспользоваться этой платформой. Он также работает с Java и PHP.

windows.azure.com

1 голос
/ 01 июля 2011

Я бы выбрал сервис-ориентированную архитектуру.Вся бизнес-логика и DAL на хорошем сервере для выполнения всех ресурсоемких операций, логика.Здесь есть все шаблоны архитектуры, разработанные для нас лучшими практиками и шаблонами Microsoft Team.Прочтите о Web Service Software Factory и выберите его для выполнения BLL и DAL, а также просто вызывайте сервисы с сервера, на котором размещен веб-сайт.На другом сервере вы должны разместить слой представления - страницы.Это откажется от следующих преимуществ:1. Лучшие практики и архитектура2. Если вы разрабатываете с кем-то еще, вы можете легко разделить работу.3. Производительность, вся работа выполняется на сервере.Это основные перспективы, которых более чем достаточно.С Уважением,Серджиу.

1 голос
/ 01 июля 2011

Что касается архитектуры, вы все равно можете поддерживать свои 3 уровня. То, что вы хотите сделать, это легко масштабировать чтение базы данных и в идеале иметь слой кэширования, такой как memcached или membase. Facebook, YouTube и другие приложения с высоким трафиком используют эти кэши.

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

0 голосов
/ 12 марта 2016

Я думаю, что при проектировании крупной веб-архитектуры важна не только производительность, вы должны смотреть широко, как на ресурс, так и на архитектуру данных, легко реорганизовывать и просматривать различные службы обработки (многоуровневые), см. Мой блог о крупной сети. Архитектура с использованием JavaScript. http://faizalpribadi.github.io/web-architecture-for-large-scale-application/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...