Группа Астра
Job description
REST API и CLI для управления ресурсами и кластерами. Асинхронное выполнение операций бэкапа и восстановления через распределённых агентов.
Tantor XData — это программно-аппаратный комплекс (ПАК) корпоративного уровня от компании «Тантор Лабс» (входит в «Группу Астра»).
Его ключевая идея в том, чтобы объединить аппаратную мощность и программную логику в единый оптимизированный комплекс для работы с базами данных. Решение создано для высоконагруженных систем, где критичны скорость обработки, отказоустойчивость и масштабируемость.
В Департаменте разработки XData открыта вакансия:
Senior+ Go/Python Developer (Backend)
О проекте
Мы развиваем платформу Backman — управляемую службу для автоматизированного резервного копирования и восстановления TantorDB.
Ключевая задача системы — обеспечение надёжного управления жизненным циклом бэкапов PostgreSQL-кластеров в мультиарендной среде. Платформа выполняет функции control-plane: управляет состояниями ресурсов, планированием асинхронных операций бэкапа и безопасным доступом к хранилищу, абстрагируя сложность инфраструктурных операций и предоставляя единый API для работы с кластерами.
Проект реализован на Python с перспективой перехода на Go стек.
Система фокусируется на автоматизации процессов управления данными и обеспечивает:
- REST API и CLI для управления ресурсами и кластерами;
- Асинхронное выполнение операций бэкапа и восстановления через распределённых агентов;
- Высокую доступность и отказоустойчивость control-plane с использованием PostgreSQL в качестве основного хранилища;
- Безопасность на уровне API и инфраструктуры (JWT, TLS/mTLS, RBAC, SigV4-валидация);
- S3-compatible storage для долговременного хранения бэкапов через прокси-сервис.
Основные задачи
- Проектирование и разработка control-plane компонентов платформы на Python/Go: API эндпоинтов, сервисов управления состояниями, планировщиков асинхронных операций.
- Разработка и поддержка агентов автоматизации жизненного цикла бэкапов PostgreSQL-кластеров:
- инициирование и конфигурация WAL-архивирования;
- управление full/incremental/differential бэкапами с поддержкой WAL-G;
- восстановление данных (point-in-time recovery);
- мониторинг состояния операций в реальном времени.
- Реализация механизмов оркестрации ресурсов с учётом мультиарендности, изоляции namespace'ов и RBAC прав доступа.
- Интеграция мониторинга и логирования (OpenTelemetry, Prometheus, Grafana) для контроля работы платформы.
- Разработка и поддержка S3 proxy сервиса для валидации SigV4 подписей и безопасного доступа к объектным хранилищам.
- Участие в архитектурных обсуждениях, проработка компромиссов и технических решений, влияющих на надёжность и эволюцию системы бэкапов.
- Взаимодействие с командами разработки БД и DevOps для интеграции платформы с инфраструктурными компонентами.
- Проведение code review и участие в формировании инженерных стандартов команды.
Требования
- Уверенный коммерческий опыт разработки на Python и Go.
- Умение писать поддерживаемый, читаемый и структурированный код, следование принципам чистого дизайна и Python/Go-идиомам.
- Опыт разработки long-running сервисов и control-plane компонентов (scheduler orchestration, job management).
- Понимание PostgreSQL как управляемого сервиса:
- репликация (Patroni);
- WAL-архивирование и point-in-time recovery;
- резервное копирование и восстановление (WAL-G, pg_basebackup).
- Опыт работы с облачными хранилищами и S3-compatible API (MinIO, AWS S3, Cygnustech).
- Опыт работы с CI/CD пайплайнами и Docker.
- Опыт интеграции мониторинга и логирования (OpenTelemetry, Prometheus, Grafana или аналоги).
- Понимание базовых принципов сетевой изоляции, безопасной передачи данных и аутентификации в распределённых системах.
- Способность самостоятельно разбирать сложные инженерные задачи и принимать технически обоснованные решения в контексте надежности системы бэкапов.
- Знания Python и Go - для поддержки и миграции существующего решения.
Желательно (будет плюсом):
- Практический опыт разработки Kubernetes-операторов или аналогичных control-plane компонентов для оркестрации СУБД.
- Опыт работы с паттерном Controller-Operator и CRD в контексте автоматизации бэкапов.
- Понимание принципов работы WAL (Write-Ahead Log) и механизмов репликации в PostgreSQL.
- Опыт интеграции мультитенантных систем с RBAC и namespace-based изоляцией данных.
- Опыт работы с распределёнными файловыми системами (Ceph, GlusterFS, MinIO и аналоги).
- Опыт работы с инструментами управления конфигурациями Infrastructure as Code.
- Практический опыт эксплуатации или автоматизации PostgreSQL (Patroni, pgBouncer, Pgpool-II).
- Общее понимание DevOps-подходов и жизненного цикла инфраструктурных платформ для баз данных.
- Понимание принципа compute storage separation.
Что важно понимать о роли
- Это Senior+ позиция с фокусом на Go и системную инженерию распределённых сервисов.
- PostgreSQL, WAL-G, S3 storage и security — прикладные домены, глубина погружения в которые определяется решаемой задачей по обеспечению надёжности бэкапов.
- Роль предполагает активное участие в развитии архитектуры платформы управления бэкапами, включая выбор стека.
Условия:
- Уверенность в будущем. Мы чтим ТК РФ: у нас стабильный и прозрачный "белый" доход
- Забота о здоровье. Оформим полис ДМС (со стоматологией).
- Спорт — это про нас. У нас многие увлекаются сноубордом, лыжами, дайвингом, бегом и пр. – найти кого-то для afterwork-активностей не проблема. Мы спонсируем тренировки футбольной и волейбольной команд, поддерживаем инициативы по киберспорту и проводим турниры по настольному футболу.
- Конкурентная заработная плата, обсуждается с успешным кандидатом.
- Режим работы на выбор: удаленно, гибрид или офис в Москве.