Каковы возможные варианты архитектуры для крупномасштабных веб-приложений
Мне поручено разработать крупномасштабное социальное веб-приложение, такое как Facebook, Twitter и т. Д., Используя ASP.net с C#
До этого моя разработка была основана на трехуровневой архитектуре (то есть уровне представления, уровне бизнес-логики и уровне доступа к данным), но для этого проекта я запутался, потому что это мой первый крупномасштабный проект:(
Я просто хочу знать, какие у меня есть другие архитектурные решения?
Я знаю, что трудно ответить на такой вопрос, но я только хочу иметь хороший ресурс, затем я изучаю каждый возможный вариант и, наконец, выбираю тот, который соответствует моим требованиям. Я сделал немного RnD через Интернет, но не преуспел много.
4 ответа
Вы должны проверить Windows Azure. он предлагает хостинг, 3 типа масштабируемого (но не реляционного) хранилища в форме BLOB-объектов (или файлов / изображений / raw), очередей (для распределенной связи) и табличного хранилища (для поддержки данных "сущностей" нереляционным способом).).
Существует также SQL Azure для реляционного хранения и AppFabric для гибридной (локальная / облачная) адресация приложений и Access Control для управления идентификацией на основе утверждений.
Он имеет встроенную диагностику, и если вы знаете C#/ASP.NET/ASP.NET MVC, вам не понадобятся новые навыки, чтобы воспользоваться этой платформой. Он также работает с Java и PHP.
windows.azure.com
Что касается архитектуры, вы все равно можете поддерживать свои 3 уровня. То, что вы хотите сделать, это легко масштабировать чтение базы данных и в идеале иметь слой кэширования, такой как memcached или membase. Facebook, YouTube и другие приложения с высоким трафиком используют эти кэши.
После этого он оптимизирует загрузку страницы и время доставки - это широкая задача, но гораздо проще, чем попытка выяснить, как изменить таблицу со 100 миллионами записей.
Я бы выбрал сервис-ориентированную архитектуру. Вся бизнес-логика и DAL на хорошем сервере для выполнения всех ресурсоемких и ресурсоемких операций, логика. Есть все шаблоны архитектуры, разработанные для нас лучшими практиками и шаблонами Microsoft Team. Прочтите о Web Service Software Factory и выберите его для выполнения BLL и DAL, а также просто вызывайте сервисы с сервера, на котором размещен веб-сайт. На другом сервере вы должны разместить слой представления - страницы.
Это откажется от следующих преимуществ:
1. Лучшие практики и архитектура
2. Если вы разрабатываете с кем-то еще, вы можете легко разделить работу.
3. Производительность, вся работа выполняется на сервере.
Это основные перспективы, которых более чем достаточно.
С Уважением,
Серджиу.
Я думаю, что при проектировании крупной веб-архитектуры не только производительность, вы должны смотреть широко, как на ресурс, так и на архитектуру данных, легко реорганизовывать и просматривать различные сервисы обработки (многослойные), см. Мой блог о большой веб-архитектуре с использованием javascript., http://faizalpribadi.github.io/web-architecture-for-large-scale-application/