Системный администратор / DevOps Engineer

Местоположение и тип занятости

МоскваПолный рабочий день

Компания

Разработка IT-решений для сложных проблем

Описание вакансии

Условия работы

IT-компания Smartex ищет инженера DevOps на полный рабочий день.

Мы проектируем, разрабатываем и поддерживаем информационные системы. Главные направления — автоматизация бизнес-процессов, корпоративные и веб-приложения.

Задачи

Инженер DevOps планирует, поддерживает и развивает инфраструктуру заказчиков компании:

  • Отвечает за деплоймент служб и их бесперебойную работу.
  • Тесно взаимодействует с разработчиками, глубоко вникая в архитектуру и особенности поддерживаемых продуктов.
  • Вдумчиво и аккуратно планирует архитектуру систем при их запуске, обновлении или расширении.
  • Обеспечивает защиту данных и восстановление систем при сбоях.
  • Использует системный подход при решении инцидентов, всегда добираясь до первопричины.
  • Стандартизирует и автоматизирует процессы — от развертывания служб до их мониторинга.
  • Постоянно актуализирует и улучшает документацию по системам.

Задачи очень разноплановые: у нас используются как технологии Microsoft, так и свободное ПО. В один момент нужно организовать работу отказоустойчивого MS SQL Server, а в другой — разобраться, почему на группе веб-серверов php-fpm создает всплески загрузки CPU два-три раза в сутки. Вот несколько реальных примеров:

  • Разработать автоматизацию развертывания окружения веб-проекта — приложения, веб-серверов, СУБД и вспомогательных служб — при помощи SaltStack. Код должен быть универсальным для окружений разработки, тестирования и продакшна. На локальных машинах разработчиков, где используется Vagrant, клонирование репозитория и выполнение команды vagrant up дает результат в виде работающего веб-приложения без дополнительных шагов.
  • Развернуть ферму Microsoft SharePoint со вспомогательными службами — Active Directory, SQL Server, Search Services, Managed Metadata — в отказоустойчивой конфигурации. Разработать процедуры развертывания и обновления разрабатываемого решения для платформы SharePoint (SharePoint Solution). Задокументировать инфраструктуру, особенности конфигурации служб и инструкции по часто выполняемым действиям.
  • Спланировать и реализовать отказоустойчивую архитектуру для служб memcached и Redis, обеспечивающих работу высоконагруженного веб-проекта. Требуется разработать архитектуру, подробный пошаговый план ее внедрения с планом отката изменений, протестировать ее в окружении разработки и обновить конфигурацию в продакшне.
  • Выявить причины проблем в работе веб-приложения ASP.NET: 10-20% запросов выполняются с задержкой, превышающую норму в 3-4 раза. Вторая проблема — иногда при запросе страницы с каталогом продукции отображается сырой код шаблона JavaScript.
  • В рамках договора поддержки инфраструктуры одного из заказчиков раз в месяц составлять отчет по мониторингу инфраструктуры. В отчет входят ключевые метрики системы мониторинга, соответствующие комментарии и рекомендации.
  • Подготовить для зарубежного заказчика техническую часть коммерческого предложения на проведение регулярного нагрузочного тестирования веб-проекта при внесении изменений. Предложение включает в себя пример отчета по результатам тестирования. Все материалы составляются на английском языке.
  • Используя HashiCorp Terraform, разработать и протестировать развертывание виртуальной инфраструктуры для веб-приложения на инфраструктуре Amazon Web Services.
  • Автоматизировать регулярное резервное копирование виртуальных машин на четырех хостах Hyper-V. Корректность выполнения резервного копирования должна отслеживаться центральной системой мониторинга. В документации, помимо описания схемы и особенностей конфигурации, требуется описать процедуру проверки резервной копии восстановлением.

Технологии проектов:

  • Бизнес-приложения: Microsoft SharePoint
  • Веб-приложения: PHP / Битрикс, Python / Django
  • СУБД: PostgreSQL, MySQL, Microsoft SQL Server
  • Облачные службы: Amazon Web Services, Hetzner, CloudFlare
  • Средства автоматизации: SaltStack, bash / Python scripting, PowerShell
  • ОС : Linux (Ubuntu, CentOS), Windows Server
  • Мониторинг: InfluxDB, Grafana, Telegraf, Nagios / Icinga

Внутри команды:

  • Постановка и отслеживание задач: Atlassian JIRA, Zendesk Support
  • Ведение документации: Sphinx / reStructuredText, Atlassian Confluence
  • Размещение кода: GitHub
  • CI: Jenkins
  • Оперативное общение: Slack

Мы считаем, что правильный подход и базовые принципы работы важнее конкретных технологий, которые появляются и исчезают. Это можно проиллюстрировать списком книг, которые по нашему мнению являются фундаментальными:

  • The Practice of System and Network Administration by Tom Limoncelli, Christina Hogan
  • Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems by David J Agans
  • TCP Illustrated by W. Richard Stevens
  • DNS and BIND by Paul Albitz, Cricket Liu
  • Network Warrior by Gary Donahue

Требования

Мы ожидаем, что:

  • Вы работали с отказоустойчивыми системами в продакшне. Соблюдаете соответствующую технику безопасности. Уже наступали на стандартные грабли и умеете их аккуратно обходить.
  • У вас есть глубокие знания внутреннего устройства операционных систем, сетевых протоколов, систем хранения данных, а также принципов обеспечения отказоустойчивости
  • Вы быстро осваиваете новые технологии. Готовы работать с широким набором поддерживаемых систем и приложений. Для вас нет вопросов «Linux против Windows» — вы блестяще примените тот инструмент, который лучше решает задачу.
  • Вы любите и умеете автоматизировать свою работу. Понимаете связанные с автоматизацией проблемы и умеете их обходить.
  • У вас отличный технический английский. Hacker News вам ближе, чем Хабрахабр. Вы постоянно читаете, знаете идиоматические выражения, используемые в письме, и можете составить текст, который не стыдно отправить заказчику из англоговорящей страны.
  • Идеально, если вы закончили высшее учебное заведение по технической специальности — нам будет гораздо проще общаться и понимать друг друга.
  • Вы стремитесь сделать — доставить результат — вместо того, чтобы просто делать
  • У вас есть здоровый перфекционизм. Делать любую работу некачественно вам противно.
  • Вы проявляете разумную инициативу. Если что-то кажется вам неправильным, вы не вздохнете с досадой, а будете действовать.

Обратите внимание, что наша вакансия не подойдет вам, если:

  • У вас нет или очень мало опыта. Мы ищем инженера, который будет готов в сжатые сроки взять на себя уже работающие в продакшне системы.
  • Вы не освоили хотя бы один язык программирования на уровне, достаточном для автоматизации развертывания служб. Без этого будет очень сложно работать с существующими системами и запускать новые.
  • Вы не хотите работать с технологиями, которые вам по какой-то причине не нравятся или неудобны. Вы замыкаетесь на какой-то области, не желая выходить за ее пределы. Наш метод такой: есть задача, есть наши навыки, опыт, базовые принципы работы и инженерная находчивость. Используя этот арсенал, решаем задачу красиво, с системным подходом, какая бы технология или ситуация это ни была.
  • Вы противопоставляете себя «пользователям», «разработчикам», «админам заказчика» или ищете границы своей ответственности. Роль DevOps предполагает командную работу и достижение результатов — несмотря на все проблемы и трудности.

Условия

  • Оформление с полным соблюдением ТК РФ. 100% оклада выплачивается «в белую».
  • Полный рабочий день. Мы не приветствуем переработки и планируем все сроки, исходя из стандартного 8-часового рабочего дня. Однако, специфика работы с инфраструктурой может требовать выполнения действий в выходные дни или ночное время.
  • Сами сроки — сжатые, объемы задач — большие, требования к качеству — высокие. Чтобы с этим справляться, мы постоянно работаем над продуктивностью работы каждого.
  • Командная работа строится на регулярном и структурированном общении сотрудника и руководителя.
  • Разработка происходит по заранее составленным спецификациям требований и макетам интерфейса.
  • Корпоративные ноутбуки, внешний монитор на рабочем месте.