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