Playerok — это маркетплейс цифровых товаров и услуг. Мы соединяем покупателей и продавцов, берём на себя безопасность сделки и запускаем собственные продукты. Строим масштабный бизнес на быстрорастущем рынке, на стыке гейминга, финтеха и e-commerce. Про эту роль: Эксплуатация кластеров и путь кода в прод: релизы, чарты, пайплайны, наблюдаемость, ограничения на краю, изменения схемы боевой базы.
DevOps-инженер маркетплейса цифровых товаров
подготовься к отклику
ai-инструментыЧтобы адаптировать резюме под вакансию или составить сопроводительное письмо, загрузи резюме
описание
задачи
- Обеспечивать повторяемые и безопасные выкатки через единые чарты (Helm) и пайплайны.
- Отвечать за процедуру отката — она должна быть отрепетирована и проверена до того, как что-то пойдёт не так.
- Настраивать политики ограничения скорости (per-IP rate limit) на входе, разделять публичный и административный контуры.
- Грамотно реагировать на внезапные всплески трафика, отличая их от реального отказа сервиса.
- Настраивать единые стандарты сбора метрик и алертов (PromQL, Alertmanager).
- Важно, чтобы каждый алерт имел чёткого адресата и инструкцию к действию.
- Участвовать в развитии внутренней страницы статуса — автоматизация без необходимости дежурного у кнопки.
- Сопровождать изменения схемы PostgreSQL (без блокировок, с применением expand/contract), отслеживать блокировки и стоимость массовых операций.
- Управлять Kafka (ребалансы, лаги) и Redis (предотвращать stampede-эффекты на горячих ключах).
- Важно понимать, как клиент Redis ведёт себя при недоступности.
- Управлять конфигурацией кластеров через код (ModuleConfig, Ingress, cert-manager с DNS-01).
- Настраивать сертификаты с чётким ответом на вопросы «когда истекает» и «что делать, если продление не сработало».
- Если дефект относится к целому классу клиентов или чартов — мы чиним весь класс, а не конкретный случай.
- Вы будете участвовать в разборе падений (включая код на TypeScript/NestJS) и проверять изменения профиля нагрузки на ревью (например, влияние резолверов без DataLoader, отсутствие пагинации, ретраи без джиттера).
требования
- Глубокое понимание Linux и сетей: уверенно работаете с ss, strace, tcpdump, dig, systemd.
- Понимаете разницу между drop и reject и объясняете, почему выбор этих стратегий меняет диагностику инцидента.
- Опыт с Kubernetes и Helm на уровне повседневного эксплуатанта.
- Понимаете, почему readyz, завязанный на базу, брокер и кэш, может превратить частичный отказ в полный.
- Умеете смотреть дифф релиза через рендер (знаете про опасность «молчаливой» подстановки значений из-за опечаток).
- PostgreSQL как эксплуатант: знаете про блокировки, lock_timeout перед DDL, последствия падения CONCURRENTLY, цену массовых UPDATE.
- Умеете ревьюить миграции на предмет CREATE INDEX без CONCURRENTLY — и до выката проверять, что будет с записью.
- Kafka и Redis: понимаете цену ребаланса, умеете работать с лагами, знаете про идемпотентность и чтение сообщений руками.
- Понимаете проблему stampede при истечении горячего ключа.
- Боевой TypeScript: готовы читать, дебажить и ревьюить код (писать продакшн-фичи не нужно, это делают команды разработки).
- Сможете по стеку разобрать ночной инцидент в чужом NestJS.
- Python обязателен: наш внутренний движок раскатки написан на Python (ansible-runner, ansible-vault через API).
- Нужно уметь вникнуть в существующий проект по коду и документации и дописать свою часть так, чтобы она прошла ревью.
- CI/CD (GitHub Actions): опыт с reusable workflows, управлением артефактами и секретами.
- Умеете объяснить, из чего складывается разница между «CI зелёный» и «в проде работает».
- Наблюдаемость: различаете метрику, лог и трейс по назначению.
- Пишете PromQL-запросы вручную, настраиваете правила алертов с адресатом и действием.
- Секреты и безопасность: опыт работы с ansible-vault и шифрованными значениями в werf, знаете процедуру ротации и что делать, если секреты уже утекли в git.
- Ответственность и связность.
- О проблемах и сорванных сроках сообщаете сами, до того как спросят.
- Задача не встаёт на первом препятствии в ожидании подсказки.
- После своей ошибки остаётесь в разборе — уронить прод может каждый, но исчезнуть после этого непростительно.
- Будет плюсом: Опыт разработки статус-страниц и работы с SLO (сигналы деградации, объявление инцидентов); Глубокое знание werf (не только чтение werf.yaml), опыт с Deckhouse, Terraform; Работа с Elasticsearch (логи), Sentry как код, диагностика ребалансирующейся Kafka на живом трафике; Тюнинг PostgreSQL и опыт онлайн-изменения схемы на высоконагруженной баз
условия
- Удаленный формат сотрудничества с редкими встречами в Москве (местонахождение в Москве очень желательно).
- 300 000 руб — стартовая вилка, итоговая сумма обсуждается по опыту.
- Возможность выбрать форму сотрудничества и оплаты (все налоги — наша забота).
- Онбординг-квест — не бросим в бой без подготовки, введем в курс дела и подключим к команде.
- Занятость 5/2 с 8-часовым рабочим днем.
- Команда профи— работаешь с инициативными и увлеченными коллегами.
- Пауза на восстановление — «перезагрузиться» можно в оплачиваемом отпуске или на больничном.
навыки
Если просят выйти из iCloud, прислать код из SMS, запустить или установить что-то, перевести деньги — не соглашайся: это мошенничество.