Каким baas пользуетесь и почему?

 Публичный пост

Недавно участвовал в хакатоне и потребовалось для него поднять несложный бекенд. Взял xano по первой ссылке в Гугле, но уже в середине хакатона понял, что слишком много времени уделяется бекенду (а это ещё и 67 долларов стоит).

Немного погуглив нашел back4app и весь хакатон удивлялся как все красиво, быстро, с кучей плюшек (админки, пабсаб, хостинг, интеграция либы parse) да и за 5 долларов. В итоге стал использовать его для нескольких своих проектов и очень прям доволен.

Но вот что меня удивило, выглядит как будто back4app не очень популярен и я не понимаю почему, как будто где-то есть ещё более крутое решение. Поэтому вот такой вопрос, что используете и почему.

24 комментария 👇
Dima Ollyak софтваре инжениир 5 июля 2021

Что такое BaaS и для каких кейсов используется? Существование таких сервисов оказалось для меня сюпризом. Голова не работает дальше цепочки «нужен бэкенд -> подними что-то на Next/Laravel/RoR/т.п.»

  Развернуть 1 комментарий

@ollyak, backen as a service. Если читал пост вастрика про но код, это он и есть. Я все свои инди проекты, фриланс и хакатоны делаю сейчас с baas'ом, так как это очень сильно ускоряет разработку. Понятно, что для большого проекта не подойдёт, но для малого, среднего, очень даже.

На том же последнем хакатоне использование Баас позволило сконцентрироваться на мобильном приложении и почти не беспокоиться за бекенд ( не считая прокола с xano)

Пример использование. Есть сервис, который продает некоторые услуги, на back4app у меня автоматически сгенерированная на основе базы данных админка, через которую вносятся переводы (интернационализация), стоимости услуг и сохраняются сами заказы. На бекенд ушло минут 30, а покрывает на данный все нужные мне кейсы

  Развернуть 1 комментарий

@AChabatareuski, звучит неплохо, спасибо.

  Развернуть 1 комментарий

Google Firebase почти на всех проектах, где не критична скорость обработки данных. А то лямбда-функции порой по 3-5 секунд могут только подниматься прежде чем обработать запрос. В остальном крайне доволен, в 90% умещаюсь в бесплатные лимиты.

  Развернуть 1 комментарий

@artyom-space, то бишь, лямбды предназначены для асинхронных вычислений, или там для выполнения работ по крону?

  Развернуть 1 комментарий

@ganqqwerty, мне проще ответить что лямбда на языке обычного бэкэнда - это endpoint. Туда можно послать запрос и выполнить операции - собрать что-то из базы, отфильтровать, добавить и тд. Как контроллер, проще говоря.

Крон ни разу не настраивал на лямбдах, но думаю что тоже можно.

  Развернуть 1 комментарий

@artyom-space, ну одно дело эндпойнт, а другое - эндпойнт, который отвечает 3 секунды

  Развернуть 1 комментарий

@ganqqwerty, но и нагрузку держит любую, не нужно заморачиваться насчёт скэйла серверов и тд. Свои плюсы, свои минусы 🤷‍♂️

  Развернуть 1 комментарий

@artyom-space, а приведи, пожалуйста, пример работ, которые ты швыряешь в лямбду. У меня прям в голове три секунды не помещаются.

  Развернуть 1 комментарий

@ganqqwerty, например, викторина. 100к пользователей отвечают на вопросы. Это в моменте примерно 30-50k RPS. Настраивать под это дело nginx и делать ребалансировку мне не хочется. Я разворачиваю лямбду, которая будет получать ответ от каждого юзера и класть в БД. Ответ от сервера Юзеру не нужен в этом случае, достаточно просто пульнуть данные. А потом мне нужно подсчитать кто отвечал правильнее всех из этих 100к человек - тут мне тоже скорость ответа в 1.5-3 сек не критична.

  Развернуть 1 комментарий

@ganqqwerty, там есть ещё realtime database на сокетах например, на ней чаты удобно делать. Там наоборот можно очень быстро оповещать много людей об изменениях. В общем, разные инструменты под разные задачи.

  Развернуть 1 комментарий

Google Firebase. Аутентификация действительно работает за один клик, а клиентские библиотеки Firestore вроде бы берут всю синхронизацию данных на себя — в боевых условиях я это лично пока не проверял, но репутация у него действительно хорошая.

Конечно, не для всех проектов такое подходит. Но если у вас, например, SAAS с документной (а не реляционной) моделью данных, где обычно каждый кусочек данных редактируется одним человеком и эти изменения не надо в течение 100мс синронизировать с другими клиентами — выглядит как способ сэкономить много времени и сил на начальном этапе. Я тут пару месяцев назад делал личный хобби-проект, где сначала начал писать бэкенд сам, по старинке, на постгресе, и очень потом кусал локти и проклинал себя, когда понял, насколько быстрее и эффективнее можно было это сделать.

Подписался на комментарии, очень любопытно узнать про другие варианты и чужой опыт. Если вы не согласны с моим отзывом на Firebase, тем более пишите и расскажите мне, почему и как я неправ: я только открываю для себя это всё, так что скорее всего, вы будете правы.

  Развернуть 1 комментарий
Seva Oparin программист 5 июля 2021

Интересная штука. Нашел тут ссылку на сравнение firebase с back4app, parse и другими сервисами.

Единственное, что пугает. Клиент какой-то жирный по логике получается.

Небольшая плюшка в сторону back4app/parse. Если на первом этапе можно просто запилить все на back4app, потом, наверное, можно съехать на свой условный lightsail с parse на борту. Минус, наверное, что бекенд на js-е.

  Развернуть 1 комментарий

@smileijp, а в чём минус? Работал с разными бэкендами, после опыта на Node/Typescript трогать ничего больше для обычной IO-bound бизнес-логики вообще не хочется

  Развернуть 1 комментарий

@golergka, у меня привычка переживать за перформанс :) * хотя стоило бы за число пользователей.

  Развернуть 1 комментарий

@smileijp, так в том-то и дело, что с точки зрения перфоманса обычная бизнес-логика практически всегда IO-bound, а не CPU-bound, и модель асинхронности Node для таких задач прям очень хороша по сравнению с аналогами типа питона, руби и шарпов.

На плюсах или расте, конечно, быстрее, но это не актуальный масштаб нагрузки для большинства даже успешных коммерчески проектов, и то — до такого уровня оптимизации обычно доходят уже после того, как вся архитектура перенесена на асинхронные work queues

  Развернуть 1 комментарий

@golergka, ну, наверное да. Я думаю, что нагрузку на CPU мог бы сгрузить в отдельный модуль, написанный на быстром языке, и как-нибудь его дергать.

  Развернуть 1 комментарий

@smileijp, как будет миллиард юзеров, наймешь кодомразей, которые перепишут все на ассемблере!

  Развернуть 1 комментарий

@ganqqwerty, единственно верный подход, нечего упарываться в идеальный инженерные решения, когда цель совсем не про сделать идеальное инженерное решение =)

  Развернуть 1 комментарий

@smileijp, имеешь ввиду, что бизнес логика переносится на фронт? Мне кажется когда мы говорим о приложениях для среднего и малого бизнеса (инди, хакатоны, стартапы туда же), там и не будет сложной бизнес логики, чаще всего это обычные крудлы в разных модификациях, а если она где-то все-таки есть, то ту же ноду можно в бэк4апп пихнуть =)

  Развернуть 1 комментарий

@AChabatareuski, ага, я про это. Т.е. мне было бы интересно, как аккуратно организовать валидацию логики. Там есть какой-то beforeSave для облачной части. Возможно, тоже самое нужно повторять на клиенте.

P.S. Если что, я пока ничем не пользовался. Но вот как раз есть небольшой проект, думаю попробовать. Выбираю между back4app и firebase.

  Развернуть 1 комментарий

@smileijp, я бы смотрел в сторону back4app, он дико нафарширован, одна лишь возможность создать приемлемую админку двумя кликами уже много чего стоит

  Развернуть 1 комментарий
Artsem Chabatareuski Lead Frontend Developer автор 5 июля 2021

Кстати да. Я связал back4app с интегроматом, подключил телеграм бот и сижу думаю, как-то слишко просто и ловлю приходу от того, что не может быть все так просто =)

  Развернуть 1 комментарий

https://strapi.io - opensource headless cms. Можно накликать схему, UI для редактирования которой готов сразу из коробки, для фронтенда есть REST и GraphQL api, доступна масса плагинов.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб