Системный администратор / DevOps Engineer
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
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-часового рабочего дня. Однако, специфика работы с инфраструктурой может требовать выполнения действий в выходные дни или ночное время.
- Сами сроки — сжатые, объемы задач — большие, требования к качеству — высокие. Чтобы с этим справляться, мы постоянно работаем над продуктивностью работы каждого.
- Командная работа строится на регулярном и структурированном общении сотрудника и руководителя.
- Разработка происходит по заранее составленным спецификациям требований и макетам интерфейса.
- Корпоративные ноутбуки, внешний монитор на рабочем месте.