DevOps-инженер (Kubernetes, CI/CD)
Summary
DevOps engineer managing Kubernetes clusters, CI/CD pipelines, and observability for a digital marketplace, focusing on reliable deployments, network security, and database/queue management.
Зарплата: от 300000 RUR (на руки)
Playerok — это маркетплейс цифровых товаров и услуг. Мы соединяем покупателей и продавцов, берём на себя безопасность сделки и запускаем собственные продукты. Строим масштабный бизнес на быстрорастущем рынке, на стыке гейминга, финтеха и e-commerce.
Про эту роль:
Эксплуатация кластеров и путь кода в прод: релизы, чарты, пайплайны, наблюдаемость, ограничения на краю, изменения схемы боевой базы. Внутренности Deckhouse разбирать не придётся — дистрибутив управляемый. Две вещи на ближайшее время: своя страница статуса — пока внутренняя (саму страницу пишет команда, за тобой сигналы, агрегация и автоматика) и повторяемость выкатки — сервисы разъезжаются по окружениям одинаково, окружение поднимается из кода без ручных шагов.
Чем придется заниматься:
-
Управление релизами и конфигурацией: Обеспечивать повторяемые и безопасные выкатки через единые чарты (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-часовым рабочим днем.
-
Команда профи— работаешь с инициативными и увлеченными коллегами.
-
Пауза на восстановление — «перезагрузиться» можно в оплачиваемом отпуске или на больничном.
Откликайся на вакансию — это первый шаг к тому, чтобы стать частью команды, которая меняет правила игры. Ваш ход! 🎮