DevOps-инженер (Terraform, Ansible)
Описание
Playerok — это маркетплейс цифровых товаров и услуг. Мы соединяем покупателей и продавцов, берём на себя безопасность сделки и запускаем собственные продукты. Строим масштабный бизнес на быстрорастущем рынке, на стыке гейминга, финтеха и e-commerce. Инфраструктуре несколько лет, она под нагрузкой, есть технический долг — это не Greenfield. Мы ищем инженера (middle/senior) с опытом коммерческой эксплуатации от 3 лет, который умеет принимать самостоятельные решения и готов отвечать за них в проде. Чем придется заниматься: Воспроизводимая инфраструктура как кодВсё, что касается окружений, описываем в коде (Terraform, Ansible, YAML-спеки). Твоя задача — довести контуры до состояния, когда любое окружение можно поднять с нуля одной командой. Работа с TerraformУправление состоянием, импорт созданных вручную ресурсов, перемещение ресурсов без пересоздания (moved), использование for_each вместо копипаста модулей. У нас версия Terraform 1.5+. Фабрика стендовОписания стендов в YAML → автоматическое развёртывание ресурсов в облаке. Валидация описаний до применения, синхронизация стендов с продакшеном. Второе облако (Selectel)Там находятся внутренние сервисы компании (SSO, VPN-оверлей, бастион-хосты, dev/QA-стенды, раннеры). Нужно будет настраивать сеть, доступы и всю сопутствующую инфраструктуру. Управление AnsibleУ нас парк из нескольких десятков ролей (PostgreSQL, Kafka, Elasticsearch, ClickHouse, Sentry, VictoriaMetrics, GitLab, Netbird, Teleport и др.). Ожидаем, что ты умеешь писать идемпотентные роли, понимаешь приоритеты переменных, используешь --check и --diff, не злоупотребляешь shell без проверки изменений. Развитие внутреннего движка раскатки на PythonЭто наш самописный инструмент, который оркестрирует Terraform и Ansible через Python API (ansible-runner, ansible-vault). Нужно будет вникать в существующий код, дописывать новые фичи, поддерживать тесты и CI. Аналитическое хранилище и CDC-потокиПринять под эксплуатацию аналитику, описать её кодом, настроить доступы, бэкапы и оркестрацию. Бэкапы и восстановлениеПроектирование стратегии бэкапов с чёткими RPO/RTO. Главный принцип: бэкап считается рабочим только после успешного восстановления и проверки данных. Учёт затрат в облакахНастроить тегирование, раскладку расходов по проектам и владельцам, чтобы на любой вопрос «сколько стоит этот проект» был готовый ответ. Эксплуатационная рутинаРотация логов, мониторинг дисков, репликационных лагов, блокировок БД, рост баз — постоянный контроль состояния. Доступы и VPNВыдача и отзыв доступа к внутренним ресурсам по процедуре. Инфраструктурный код в монорепозиторииЦентрализованное хранение секретов — нужно будет спроектировать и поддерживать. Что мы ждём от кандидата Опыт работы с Terraform на уровне состояния — понимаешь, чем import отличается от пересоздания, зачем нужен moved, как работает for_each при смене ключа, что такое ForceNew в плане. Умеешь валидировать сложные фабрики на fileset/try. Глубокое знание Ansible — приоритеты переменных, работа с --check/--diff, использование --limit для страховки. Отличаешь идемпотентный модуль от небезопасного shell. Быстро разбираешься в чужих ролях и видишь, что сломается на втором прогоне. Python — обязательный навык. Наш движок раскатки написан на Python, поэтому нужна способность вникать в чужой код, разбираться в документации, писать свои части с тестами и проходить ревью. Linux и сети — уверенное владение ss, strace, tcpdump, dig, systemd, работа с лимитами, дисками, маршрутами. Понимаешь разницу между drop и reject в iptables и как это влияет на диагностику. PostgreSQL как эксплуатант — знаешь про блокировки, очередь ожидания, lock_timeout перед DDL, последствия упавшего CONCURRENTLY, цену массовых UPDATE без батчей. Умеешь оценивать миграции (например, CREATE INDEX без CONCURRENTLY на горячей таблице) и проверять их до прода. Kubernetes и Helm — не в роли администратора кластеров, но понимаешь, как работают чарты, умеешь рендерить helm template, разбираешься в каскадах values по окружениям. Kafka и Redis — понимаешь цену ребаланса, лаг, идемпотентность обработки, умеешь читать сообщения из топика вручную. Знаешь про проблемы с горячими ключами и поведение клиента Redis при недоступности. TypeScript — уметь читать и дебажить, чтобы ревьюить миграции или разбирать инциденты в коде разработки (писать самому не нужно). Наблюдаемость и бэкапы — работа с метриками, логами, трейсами, уверенное составление PromQL, проектирование алертов с действиями. Бэкапы — в терминах RPO/RTO и проверенного восстановления. Секреты — работа с ansible-vault и шифрованными значениями, ротация, что делать при утечке в git. Самоорганизация и коммуникация — умеешь сообщать о проблемах и срыве сроков заранее, не ждёшь подсказки на каждом шагу, после ошибки участвуешь в разборе, не исчезаешь. Инциденты случаются, мы разбираем их вместе. Будет плюсом Опыт с ClickHouse (бэкапы, Keeper, TTL, обновления между мажорами). Работа с аналитическим контуром (Airflow, dbt, CDC, оркестрация). Умение поднимать окружение с чистого облачного аккаунта целиком и доказывать это учениями. Опыт учёта облачных расходов (теги, проекты, утилизация). Знание werf (сборка, рендер, секреты). Администрирование самохоста GitLab, Sentry, Elasticsearch, Netbird, Teleport или аналогичных решений. Что предлагаем Удаленный формат сотрудничества с редкими встречами в Москве (местонахождение в Москве очень желательно). 300 000 руб — стартовая вилка, итоговая сумма обсуждается по опыту. Возможность выбрать форму сотрудничества и оплаты (все налоги — наша забота). Онбординг-квест — не бросим в бой без подготовки, введем в курс дела и подключим к команде. Занятость 5/2 с 8-часовым рабочим днем. Команда профи— работаешь с инициативными и увлеченными коллегами. Пауза на восстановление — «перезагрузиться» можно в оплачиваемом отпуске или на больничном. Откликайся на вакансию — это первый шаг к тому, чтобы стать частью команды, которая меняет правила игры. Ваш ход! 🎮