В традиционном смысле N-уровень означает разделение приложения на «уровни» и размещение каждого «уровня» на разных серверах.Это было сделано по крайней мере по 3 причинам:
Обслуживание:
a) Обслуживание кода: проще делать исправления ошибок и дополнения функций.
b) Обслуживание оборудования: отключение одного сервера не нарушает обслуживание другого уровня.
Производительность: один сервер часто был недостаточно быстрым для обработки веб-запросов, вычислений бизнес-логики и базы данных / файлаодновременный доступприложение может функционировать как единое целое.
b) Распределение нагрузки: наличие нескольких экземпляров уровня помогает обслуживать большое количество запросов.
В настоящее время оборудованиеи сети достаточно быстры, чтобы обслуживать тысячи запросов в секунду на одном сервере.Кроме того, модное слово для ИТ сейчас - «консолидация».Поэтому, даже если приложение разбито на уровни, они, вероятно, в конечном итоге будут размещаться на виртуальных машинах на одном сервере.
Я думаю, что сейчас, когда люди говорят об архитектуре N-уровня, они говорят о разделении интересов внутриприложение.Это скорее логическое разделение, чем физическое.Я думаю, что до тех пор, пока мы достигнем хорошего разделения проблем и слабой связи, приложения не должны быть N-уровня.Похоже, что многие программисты считают, что N-уровневая архитектура - это золотой стандарт, которому должно соответствовать каждое веб-приложение.
Итак, что для вас сегодня является N-уровневой архитектурой?