Как мой ИИ-продукт с 14 микросервисами и 7 базами postgres стоит в обслуживании 0$ в месяц, но не приносит мне доход
Всем привет! Я Виктор, работаю инженером более 6 лет и фанатею от образования. Обожаю собирать вокруг себя учеников, и маньячиться вместе с ними в развитии. Но кажется, желание достигнуть технического идеала в какой-то момент вышло из-под контроля. Так, пока нормальные люди строят no-code MVP и тестируют свои идеи уже через неделю работы, я вместе с командой потратил два года на построение масштабируемой системы из 7 баз данных и 14 бизнес-модулей.
В итоге у меня есть крутой ИИ-продукт, на обслуживание которого я трачу 0 рублей в месяц... но он приносит 0 рублей дохода. Рассказываю, как и зачем я это сделал, не жалея потраченного времени (но второй раз не стану так же делать).
Вместо пустых обещаний “успешного успеха” мечтаю открыть «черный ящик» обучения и сделать процесс прозрачным
Всю свою сознательную жизнь я и учусь, и учу. И не смотря на то, что я постоянно нахожусь в двух ролях, ученика и учителя, всегда удивляюсь непрозрачности результата. Студент платит деньги, проходит уроки, но рано или поздно у него появляется вопрос: «Я реально становлюсь лучше или мы просто весело проводим время? Как понять, что мои навыки улучшаются?».
И здесь я говорю не про глобальный результат, когда можно устроиться на работу после двухлетнего обучения, я говорю про небольшие промежуточные результаты, которые в реальной жизни сложно оценить.
Именно так зародилась идея проекта, который сможет подстроить обучение под каждого человека, не требуя огромных вложений со стороны ученика. Я хотел создать систему, которая будет декомпозировать любую цель и отображать “НЕпрогресс”. Все верно! Я не ошибся! Ведь разработанная программа анализирует темп обучения и честно говорит:
“Друг, с таким подходом ты выучишь это к 2055 году. Давай скорее менять план или даже учителя!”
Создаю прокачанную среду для обучения, но сложный лабиринт для бизнеса из 14 модулей и 7 баз данных
Как уже говорил, я постоянно собираю вокруг себя учеников, которые хотят получить новые знания. И когда проект стартанул, у меня был выбор – пойти классическим путем маркетинга с тестированием идеи на пустых лендингах или превратить проект в в реальную образовательную возможность роста для моей команды. Конечно же я выбрал второй вариант (а кто ошибки не совершал?). Я хотел, чтобы мои ученики понимали, как может выглядеть сложная и неподъемная в одиночку система.
Сейчас, спустя месяцы работы над проектом, я жалею о некоторых моих решениях, многое я бы переделал… Да, правила бизнеса все время били меня по рукам, пока мы с командой обсуждали сложную архитектуру, клиенты не стучали в двери, бизнес-партнеры отваливались, а проект мог остановиться в любой момент. Но это был осознанный вызов – построить гиганта, который будет работать без вложений на сервера.
В чем же трюк? Все просто! Есть куча бесплатных сервисов, и конечно там лимиты очень ограничены, но все можно оптимизировать.
Итак, что в итоге получилось:
- Сервер - облака часто предлагают free tier для очень слабых серваков. Например, я выбрал Google cloud platform - тут 1Gb оперативы, 0.25CPU и целых 30Gb бесплатного (старого и медленного HDD) на диске. Заодно GCP дает бесплатно публичный IP!
- Используем компилируемый язык для бэк а не требующий runtime среды - все что компилируется в бинарник подойдет - в моем случае golang. (Это одна из ключевых вещей!) Финальный контейнер с артефактом для микросервиса занимает на golang 20-30Мб. Все что можно вынести - всю статику - картинки, front-end артефакты - все тащим в CDN - много бесплатных. Можно даже на google Drive просто сложить - у него и API удобная. Но я выбрал netlify.com.
- На таком тормознутом диске даже 100 Мб база будет читаться вечность - сжимаем все что находится в оперативке с помощью zram.
- Даже с сжатой памятью 1Gb - Это мало, на всякий случай добавляем swap - 1 или 2 Gb от диска общего можно откусить.
- Доменное имя - пара баксов, но и тут можно сэкономить - много бесплатных поддоменов например на cloudflare, netlify, я взял поддомен для front-end на netlify.
- Нужно еще DNS для нашего ip на сервере - уже все придумали - бесплатный DNS - duckdns.org - спасибо ребятам, просто зарегистрировался и все работает.
- CICD развертка - тут для микросервисов и дальнейшего потенциального масштабирования идеально подойдет обычный docker-compose + простые bash скрипты на компе или в github Actions.
- Если команда и активность большая - лимиты CICD быстро закончатся - тут выносим тогда CI/DI на комп разработчиков - в этом нам поможет husky или что-то аналогичное с git hooks.
- Чтобы не замучить сервер запросами - делаем простое кеширование на клиенте с чем-то наподобие tan stack (react query) - это ослабит нагрузку для некоторых приложений на сервер в несколько раз или даже в несколько десятков раз и заодно увеличит скорость работы сайта.
- CRM система - о, тут с free tier сложнее, но есть opensource решения - я развернул у себя на компе EspoCRM и с помощью tailscale tunnel за 1 минуту сделал его доступным для всех моих ребят работающих с клиентами. Да, они не могли пользоваться CRM если мой комп отключить, но у меня комп 24/7 работает.
- ИИшка… Раньше у google был API разрешающий сотни бесплатных запросов в день, но в какой-то момент они отключили это и оставили 20 запросов в день, что никуда не годится! Тут 2 решения в зависимости от того какой ИИ хотим - есть free tiers на всяких openRouter и других агрегаторах. Но токенов мало. Можно через tailscale network (или какой-нибудь VPN) соединить сервер с домашним компом и на домашнем лаптопе запустить нейронку (например с ollama). В принципе c MoE архитектурой уже локально неплохо для многих операций нейросетки работают. Для надежности тут придется добавить очередь на выполнение на сервере, но для прототипа или даже MVP это не обязательно.
- Скажу честно - postgres - это ошибка в данной экономной архитектуре. Надо брать sqlite - практически без вариантов. Когда Будут деньги -> будем масштабировать -> мигрируем на postgres.
- Для https нам нужен будет tls сертификат. Тут по классике можно взять nginx (как reverse proxy для наших микросервисов) и подключить certbot. Можно чтобы не возиться с сертификатами вообще сразу caddy reverse proxy поставить - идеально работает, сразу https подключается, сам сертификаты обновляет.
- Не забываем бесплатно google analytics добавить.
Этот список может на первый взгляд показаться большим и сложным, но обычный fullstack инженер сделает все это за пару дней, по сути каждый пункт выполняется в пару кликов или пару команд в терминале.
Победил технологии, но не психологию...
После долгого технологического марафона я пришел к парадоксальному выводу: построить масштабируемую систему за 0 рублей — реально, а вот распространить новую идею и раскрыть преимущества честного взгляда на свой «прогресс или НЕпрогресс» — задача куда сложнее.
Конечно, я привлекаю людей на платформу. Но объяснить преимущества платформы оказалось ох как непросто! Я понял, что образование - это не только про знания, но и про человеческую поддержку. Моя же система, хоть и максимально лояльно, показывает реальность как она есть. В этом, как оказалось, главный вызов для такого продукта.
Жалею ли я о таком результате? Конечно, но немного! Пока что я не достиг моей цели, но я не опускаю руки. Я очень горд, что на этом проекте выросла очень крутая команда инженеров, дизайнеров, и других специалистов. И может быть я немного зазнаюсь, но кажется, это один из лучших образовательных проектов в моей жизни. На сегодня пока! Пойду и я взгляну правде в глаза, ведь как постоянно говорит мне система –
“Виктор, вы недостаточно уделяете время маркетинговым задачам! Откорректируйте план или смените ментора!”
P.S. Технически проект жив, но все еще ждет своего звездного часа. Если вы чувствуете, что вашему бизнесу или продукту не хватает именно такой честной инженерной магии или вы хотите обсудить сотрудничество с нашей командой — пишите мне на viktarveratsennikau@gmail.com. Мы открыты к новым вызовам!
Связанные статьи
- Masters Way - ссылка на собственно сам проект
- Серия статей об архитектуре взаимодействия с данными — погружение в архитектурные паттерны, от stateless до reactive с EDA
- Советы новичку в IT — что стоит знать, начиная путь в разработке
- План обучения фронтенд-инженера — образовательный роадмап
- Linux-инструменты для работы — полезные утилиты и тулы