Backend-разработка для сервисов под нагрузкой
Проектируем серверную часть, API и интеграции — от модели данных до развёртывания. Язык выбираем под задачу и под команду, которой потом поддерживать код.
Архитектуру и оценку фиксируем до начала разработки
Сервер не выдерживает рост
Ситуации, с которыми к нам приходят чаще всего.
Под нагрузкой всё падает
Пока пользователей было немного, монолит справлялся. Теперь каждая распродажа или рассылка заканчивается таймаутами.
Интеграции держатся на честном слове
Обмен с 1С, CRM и платёжными сервисами написан на скорую руку: данные теряются, а о сбое узнают от клиентов.
Никто не знает, как всё устроено
Документации нет, схема базы менялась годами, и любая доработка превращается в раскопки.
Отчёты строятся часами
Аналитические запросы идут в ту же базу, что и продакшен, и тормозят работу пользователей.
Технологии backend-разработки
Берём проверенные инструменты, под которые легко найти разработчиков. Вот что используем чаще всего.
Языки
Python для данных и ML, Go для нагруженных сервисов, Node.js и PHP для веб-продуктов.
- Python
- Go
- Node.js
- TypeScript
- PHP
Фреймворки
Зрелые фреймворки с большим сообществом и понятной поддержкой.
- FastAPI
- Django
- NestJS
- Express
- Laravel
Базы данных
Транзакции, аналитика, кэш и полнотекстовый поиск.
- PostgreSQL
- MySQL
- ClickHouse
- Redis
- Elasticsearch
- MongoDB
Очереди и интеграции
Асинхронная обработка и обмен с внешними системами.
- Kafka
- RabbitMQ
- Celery
- REST
- gRPC
- GraphQL
Инфраструктура
Контейнеры, автоматический деплой, метрики и алерты.
- Docker
- Kubernetes
- GitLab CI
- Terraform
- Prometheus
- Grafana
Что делаем
Новую систему с нуля или развитие той, что уже работает.
API для веба и мобильных приложений
REST, GraphQL или gRPC с документацией в OpenAPI, авторизацией и версионированием.
Обмен с 1С, CRM, ERP и платёжками
Очереди, повторные попытки и журнал ошибок, чтобы данные не терялись между системами.
Сервисы для больших потоков данных
Проектируем обработку так, чтобы рост трафика решался добавлением серверов, а не переписыванием кода.
Хранилища и аналитика
Выносим отчёты в ClickHouse или отдельное хранилище, настраиваем выгрузки и ETL.
Разделение монолита
Выделяем сервисы по частям, не останавливая продукт. Начинаем с узких мест, которые мешают больше всего.
Инфраструктура и поддержка
Настраиваем CI/CD, мониторинг и алерты, после запуска дежурим по договорённости.
Как идёт работа
Аудит и архитектура
Разбираем требования, ожидаемую нагрузку и текущие системы. Описываем архитектуру, модель данных и контракты API.
1–2 неделиКаркас и инфраструктура
Репозиторий, окружения, CI/CD, логирование. Первые эндпоинты фронтенд получает уже на этом этапе.
1–2 неделиРазработка спринтами
Реализуем функции по приоритету, покрываем тестами и каждые две недели выкатываем на тестовый стенд.
спринты по 2 неделиНагрузочные тесты и запуск
Проверяем сервис на расчётной нагрузке, настраиваем алерты и передаём документацию. Дальше поддерживаем сами или передаём вашей команде.
по договорённостиОпишите систему — предложим архитектуру
Расскажите, что должен делать сервис и с чем интегрироваться. В ответ пришлём схему, стек, оценку сроков и состав команды.
Серверная часть, которая работает годами
Платформы обработки данных, внутренние порталы и сервисы с внешними интеграциями.
Кейсы Strikt
Проекты, где основная работа скрыта от пользователя — в обработке данных и интеграциях.
Вопросы про backend-разработку
На каком языке будете писать?
Зависит от задачи и от того, кто будет поддерживать систему. Для обработки данных и ML обычно Python, для нагруженных сервисов — Go, для веб-продуктов — Node.js или PHP. Если у вас уже есть команда со своим стеком, пишем на нём.
Можете доработать существующую систему?
Да. Начинаем с аудита кода, базы и инфраструктуры, затем предлагаем план: что чинить сразу, что переписывать постепенно, а что лучше не трогать.
Работаете с 1С и российскими сервисами?
Да, интеграции с 1С, Битрикс24, amoCRM, банками и платёжными сервисами — обычная часть наших проектов.
Где будет размещена система?
В вашем облаке, у российского провайдера или на ваших серверах. Можем развернуть в закрытом контуре без внешнего доступа.
Кому принадлежит код?
Заказчику. Исключительные права фиксируются в договоре, репозиторий, документация и доступы к инфраструктуре остаются у вас.