Архитектура системы, как и физическая архитектура здания или города, должна приспосабливаться к контексту существования артефакта, созданного на основе этой архитектуры. В физической архитектуре контекст включает в себя историческое окружение, климат, возможности местных художников и доступные строительные материалы, а также предполагаемое использование здания. В программной архитектуре контекст включает не только приложения, которые будут использовать архитектуру, но и программистов, работающих с архитектурой, и ограничения, действующие в созданных системах.
При построении архитектуры Darkstar мы прежде всего поняли, что любая архитектура, ориентированная на масштабирование, должна быть развернута на множестве компьютеров. Даже самые крупные современные компьютеры вряд ли справятся с потребностями современных онлайновых игр (например, World of Warcraft имеет пять миллионов подписчиков, сотни тысяч из которых могут быть активны в отдельный момент времени). Даже если бы существовал компьютер, способный справиться с такой нагрузкой, было бы экономически нереально ожидать, что игра окажется настолько успешной, чтобы оправдать такие изначальные затраты на оборудование. Подобные приложения должны начинать с малого, постепенно наращивать мощность с ростом пользовательской базы и снижать ее по мере падения интереса к игре. Такая схема хорошо соответствует концепции распределенной системы, в которой компьютеры (относительно небольшие) добавляются по мере роста спроса и отключаются с его снижением. Итак, мы с самого начала знали, что архитектура в целом должна представлять собой распределенную систему.
No related posts.