Skip to content
15 / 15

Зачем разделять систему на уровни edge, приложения и данных?

Потому что у этих уровней принципиально разные свойства. Edge (CDN, обратный прокси, шлюз) работает с огромным числом дешёвых запросов, масштабируется провайдером почти бесконечно и должен отсекать мусор до того, как тот дойдёт до вашего кода. Приложение stateless, масштабируется добавлением инстансов, переживает перезапуск и держит бизнес-логику. Данные stateful, масштабируются тяжело и дорого, их нельзя терять, и доступ к ним обязан быть закрыт извне. Смешение уровней бьёт по всем трём: логика на edge не тестируется, кэш в приложении рассогласован между инстансами, прямой доступ к базе делает схему публичным API. Разделение даёт возможность масштабировать и защищать каждый уровень по своим правилам.

Зачем разделять систему на уровни edge, приложения и данных? | JScriptiser