🔥

Тред (Назим Гафаров)


Начнем с BFF. ⬇️

BFF - это адаптер к внешним API, который агрегирует запросы из разных источников и отдает на фронт в удобном для фронта виде. В Яндексе BFF используется повсеместно. Подробнее в статье от @amel_true - habr.com/ru/company/yan…

BFF - это отличное решение, но только если у вас очень сильная команда инфры. Деплоить, мониторить, балансировать, логировать - все это не так просто, как кажется. Если у вас нет выделенной команды инфраструктуры (или сильных DevOps), не стоит в это ввязываться.

Соло фронтэнд-команда может затащить BFF только в публичное облако. Взять какой-нибудь Serverless Framework и задеплоить в AWS. Будет дорого, но без облака такой же производительности, надежности и масштабируемости добиться почти невозможно.

Однако даже в этом случае вам, скорее всего, нужен будет Cloud DevOps.

Из РФ-провайдеров поддержку Serverless.com я знаю только от Yandex Cloud Functions (github.com/yandex-cloud/s…). Большой минус для остальных провайдеров.

И последнее про serverless. В 2020 году хорошо выстрелил workers.cloudflare.com За 5$ вы получаете 10 млн. запросов, 1 GB key-value storage и все это автоматически доступно на всех Cloudflare локациях, прямо как CDN. Только не забывайте, что многие подсети все еще в бане РНК.

В итоге, если у вас нет выделенной инфра-команды или вы не чувствуете в себе силы заехать на serverless, разумнее всего не начинать BFF. Я видел кучу примеров, когда команда из двух фронтов начинает играться в бэкендеров. Получается как на картинке:
notion image

Отсутствие серверного приложения под фронтом дает кучу преимуществ. Например, mcs.mail.ru - это "голая" статика. Ее можно задеплоить в любой CDN или даже просто в S3. Стенд на каждую git-ветку, никаких пятисоток, здоровый сон, крепкий аппетит.