Бэкенд-разработка и API

Бэкенд-разработка и создание API: серверная часть, которая держит нагрузку, не теряет данные и обновляется без остановки сервиса. Берём проект отдельным этапом или отдаём разработчика в вашу команду.

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

Проектируем мы от вопросов, которые бизнес обычно задаёт позже, а стоит раньше. Сколько людей будет работать одновременно через год. Что должно происходить, если внешний сервис не ответил. Кто и что имеет право видеть. Что делать с данными, когда сотрудник уволился. Ответы на них определяют архитектуру сильнее, чем выбор языка.

Отдельная тема это обновления без простоя. На Ubix.Exchange систему нельзя было остановить и на считанные минуты: там чужие деньги и чужая репутация. Обратная совместимость, план отката и переключение по частям стоят дороже обычного релиза, поэтому мы называем эту статью расходов до начала работ, а не в середине проекта.

И наоборот, новое не всегда стоит строить с нуля. SignItNow вырос надстройкой над API Silent Notary, а не вторым сервисом рядом. Если у вас уже есть работающая часть, сначала смотрим, что можно переиспользовать.

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

01

Что входит в услугу

Можно взять любой набор из перечисленного.

API и интеграции

REST и GraphQL для ваших приложений, обмен с внешними сервисами, платёжными системами и CRM, в том числе с теми, у которых документация неполная.

Базы данных и хранение

Проектирование схемы, миграции, индексы, резервные копии и проверка того, что копии действительно разворачиваются.

Права доступа и безопасность

Роли, разграничение доступа, журналы действий, шифрование чувствительных полей, разумная работа с персональными данными.

Нагрузка и отказоустойчивость

Кэширование, горизонтальное масштабирование, поведение при отказе внешнего сервиса, обновления без простоя.

Фоновые задачи и очереди

Расчёты, рассылки, отчёты по расписанию, обработка событий с понятным журналом и повторными попытками.

Подхват и модернизация

Заходим в существующий бэкенд, разбираемся в устройстве, закрываем узкие места и переносим на поддерживаемый стек по частям.

02

Как мы работаем

01
Разбор задачи

Разбираем сценарии, объёмы, требования к доступу и к сохранности данных. На выходе постановка, риски и оценка.

3-5 дней
02
Архитектура и схема данных

Описываем компоненты, хранение, договор API и порядок обновлений. Здесь же решаем, что писать самим, а что закрыть готовым решением.

1-2 недели
03
Разработка

Двухнедельные итерации, каждая с работающим API и документацией к нему.

от 3 недель
04
Тестирование и нагрузка

Автотесты, проверка на объёмах, близких к боевым, поведение при отказах и восстановление из резервной копии.

параллельно
05
Запуск и поддержка

Развёртывание, наблюдение, оповещения, дежурство первые недели и план развития.

постоянно
03

Стек и инструменты

C#.NETTypeScriptNode.jsPythonPostgreSQLMariaDBMongoDBRedisRabbitMQgRPCRESTGraphQLDockerKubernetes
04

Кейсы по услуге

05

Частые вопросы

Да, это частый сценарий. Работаем с вашим фронтендом или мобильным приложением, отдаём документированное API и берём на себя серверную часть целиком.

Основные для нас C# с .NET и Node.js с TypeScript. Python используем там, где он оправдан задачей. Если у вас свой стек, скажем честно, где понадобится время на вход, и учтём это в оценке.

Зависит от размера команды и от того, как продукт будет расти. Небольшому продукту микросервисы добавляют сложности и расходов без пользы, поэтому решение принимается на архитектуре, а не по моде.

Требования к нагрузке фиксируем на старте и проверяем до запуска, а не после первой рекламной кампании. Если цифр пока нет, закладываем запас и путь роста.

Подхватываем, в том числе без документации. Сначала разбираемся, что построено, оцениваем состояние и говорим прямо, что дешевле доработать, а что переписать.

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

Да, отдельной договорённостью: дежурство, наблюдение, обновления и развитие.

06

Смежные услуги

Обсудим вашу задачу?

Расскажите, что нужно сделать - вернёмся с оценкой сроков, составом команды и планом первых двух недель.