Вакансия: DevOps-инженер::Журнал СА 3.2017
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6413
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7117
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4395
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3086
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3881
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3897
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6385
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3233
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3529
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7364
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10725
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12445
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14096
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9192
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7141
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5446
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4683
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3495
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3212
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3449
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3090
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Вакансия: DevOps-инженер

Архив номеров / 2017 / Выпуск №3 (172) / Вакансия: DevOps-инженер

Рубрика: Карьера/Образование /  Рынок труда

Вакансия: DevOps-инженер

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

  1. DevOps-инженер: какими знаниями и навыками он должен обладать?
  2. Каков инструментарий DevOps-инженера?
  3. Каковы требования компании к уровню образования потенциальных сотрудников?
  4. Какие требования предъявляются к опыту работы?
  5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?

Александр Орловский, системный архитектор Tribuna Digital (Sports.ru + Tribuna.com)

Александр Орловский

Сначала очень хотел бы кое-что прояснить. DevOps – это в первую очередь движение, направленное в сторону смычки города и деревни (зачеркнуто) – разработки и эксплуатации. Движение DevOps – ответвление (и продолжение) Agile-движения. Можно долго рассказывать, как оно появилось и почему, но в интернете об этом уже достаточно информации. ВВикипедии вроде бы неплохо написано. Есть как минимум две хорошие книги по теме: одна – переведенная: «Проект «Феникс», и одна на английском языке: «Site Reliability Engineering», доступная по ссылке https://landing.google.com/sre/book.html.

Если вернуться к вопросу, то, кажется, понятно, откуда он появился. Сейчас есть множество вакансий на DevOps-инженера – это следствие как шумихи (хайпа) вокруг термина, так инепонимания бизнесом, что такое DevOps и зачем он нужен. За такими вакансиями может скрываться как позиция настройщика CI/CD-инструментария, так и классическая позиция сисадмина со знанием какого-нибудь скриптового языка, кроме Bash, и умением писать плейбуки в Ansible, например.

Давайте, учитывая cпецифику журнала, договоримся, что все вопросы ниже, где фигурирует DevOps-инженер, – это вопросы про системного администратора, который строит иподдерживает современную ИT-инфраструктуру. Венцом технической карьеры такого специалиста является роль Site Reliability Engineer (SRE) – наиболее строгая к уровню знаний инавыков специальность, востребованная в современных Big Scale ИT-архитектурах (Google, Netflix, Amazon, Uber и т.п.).

1. Знание базовых сетевых протоколов (TCP/UDP) и устройства интернета;

  • знание популярных современных протоколов высокого уровня (например, HTTP1.1/2);
  • устройство современных операционных систем (обычно Linux), знание того, как работают ядро, файловая система, подсистема памяти;
  • уметь писать и особенно читать код на каком-нибудь из языков, на которых пишут современное ПО (Python/Go/Java/C);
  • устройство баз данных.

2. Главный инструментарий – развитый мыслительный аппарат, хорошо заточенный на решение проблем. Технический тулинг без хороших базовых знаний будет непросто или даже невозможно правильно применять.

На самом деле есть очень хорошая книга Brendan Gregg, где довольно много написано про инструментарий и о том, что надо знать людям, эксплуатирующим современные системы: «Systems Performance: Enterprise and the Cloud» (http://www.brendangregg.com/sysperfbook.html).

На сайте http://www.brendangregg.com Брэндана есть очень много интересного по данной тематике, и он постоянно обновляется. Очень известна его схема с обзором инструментария SRE для Linux (вот тут можно посмотреть ее последнюю версию: http://www.brendangregg.com/linuxperf.html).

3. Хочется работать рядом с людьми, у которых есть какой-то кругозор и знания об окружающем мире, которые умеют учиться и делать выводы сами. Ну и, конечно, надо знать илюбить то, чем занимаешься. Звучит банально, но сложно ответить лучше.

В общем, обычно так получается, что это люди с законченным высшим техническим образованием.

4. Зависит от позиции. Обычно не обязательно иметь богатый трудовой стаж, достаточно продемонстрировать хорошие знания в тех областях, которые описаны в вакансии.

Для нас это знание одного из динамических языков программирования Perl/Python/PHP, понимание того, как работает и устроен веб, основы баз данных и знание Linux. Знакомство сконкретными технологиями типа Nginx, Postges, Ansible – это плюс, но не является обязательным.

5. Да, у нас есть как минимум одно такое условие – хотя бы немного интересоваться спортом, причем киберспорт тоже очень даже считается. Так будет интереснее работать надпроектами компании и проще найти общий язык с коллегами.


Евгений Буданов, системный инженер компании ООО «Прогресс софт»

АЕвгений Буданов

1. В первую очередь Linux и его устройство. Обязательны навыки написания скриптов на любом скриптовом языке и систем CI/CD. Нередко требуется знание сетей.

2. Jenkins, Ansible, Docker в первую очередь. Ну и утилиты Linux: от всем знакомого ping до strace. Ну и мониторинг в обязательном порядке.

3. У нас в компании кого только нет. В отделе девопсов кто только не работает, если смотреть по диплому. Поэтому четких требований не существует. В первую очередь требуются знания и опыт.

4. Опыт развертывания приложений в больших проектах. От сотни машин и выше. Умение анализировать.

5. Нет. Разве что желательна универсальность, иногда требуется разворачивать и настраивать разные операционные системы.


Александр Мишин, главный эксперт департамента разработки решений «Энвижн Груп»

Александр Мишин

1. DevOps (Development Operations) – это методология тесного взаимодействия между разработчиками и системными администраторами, поэтому от DevOps-инженера требуется комплекс навыков из областей системного администрирования, разработки, автоматизации процессов в крупных инфраструктурах, в том числе знание облачных технологий, понимание принципа Continuous integration и Continues Delivery. Конечно, конкретные требования к DevOps-инженеру могут варьироваться в зависимости от размера инфраструктуры, используемых технологий, но можно выделить ряд ключевых критериев:

  • глубокие навыки администрирования операционных систем (Linux и Windows);
  • умение работать с различными системами виртуализации и облачными технологиями VMware, KVM, Linux-контейнерами (OpenVZ, Docker) для автоматического развертывания операционных систем, приложений и баз данных. Опыт развертывания приложений в Amazon AWS, Google или Azure станет дополнительным преимуществом;
  • администрирование баз данных;
  • экспертные знания в области сетевого взаимодействия, аппаратных сред и систем хранения данных, это необходимо для проектирования инфраструктуры длявысоконагруженных приложений и систем уровня mission critical со значительными объемами хранения и обработки информации;
  • знание принципов и технологий отказоустойчивости, навыки нагрузочного тестирования;
  • уверенные знания скриптовых языков для автоматизации процессов и обращения к RESTful API. Обычно требуется знание хотя бы двух скриптовых языков, таких как Bash, Python, JavaScript, Perl, Ruby;
  • большим преимуществом будет знание языков программирования (С++, С#, Java);
  • знание инструментов управления автоматическим развертыванием приложений, конфигураций (Puppet, Chef, Ansible, SaltStack) и систем CI (TeamCity, Jenkins);
  • навыки работы с системами мониторинга.

Личные качества кандидата не менее важны для DevOps-инженера.

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

Коммуникабельность, поскольку придется налаживать взаимодействие с различными подразделениями: разработчиками, тестировщиками, проектными менеджерами.

Но самое важное – это высокий уровень ответственности, ведь одна небольшая оплошность в работе DevOps-инженера может привести к многочасовому простою и большим финансовым и репутационным потерям.

2. Системы управления автоматическим развертыванием конфигураций (Puppet, Chief, Ansible, SaltStack);

  • системы Continious Integration (Teamcity, Jenkins, Gitlab CI);
  • системы сборки (Ant, Maven, Gradle);
  • облачные платформы (Amazon AWS, Microsoft Azure, Rackspace, OpenStack);
  • платформы виртуализации (VMWare, KVM, Xen) и контейнеры (Docker, OpenVZ, LXC);
  • системы сбора логов (Splunk, Greylog, Logstash);
  • системы мониторинга (Zabbix, Nagios, Cacti, Splunk);
  • Orchestration – системы автоматического управления, масштабирования и развертывания контейнеров (Kubernetes, Apache Mesos);
  • системы контроля версий Git, Hg, Svn;
  • трекинговые системы JIRA и другие.

3. Обычно в требованиях к соискателю на должность DevOps-инженера указывается высшее техническое образование.

4. Основные требования предъявляемые к опыту работы соискателя:

  • опыт администрирования Linux систем от 3 лет;
  • опыт администрирования высоконагруженных систем;
  • опыт работы с системами виртуализации и Linux-контейнерами;
  • хорошее знание скриптовых языков Bash, Python;
  • знание методологий Continues Integration и Continues Delivery;
  • опыт настройки систем CI (Teamcity, Jenkins, Gitlab CI);
  • опыт настройки систем управления автоматическим развертыванием конфигураций (Puppet, Chief, Ansible, SaltStack);
  • опыт работы с системами контроля версий кода;
  • опыт настройки систем мониторинга (Zabbix, Nagios, Cacti, Splunk).

Дополнительно:

  • опыт программирования на одном из языков (С++, С#, Java).

Личные качества:

  • стремление к новым знаниям;
  • ответственность;
  • готовность к ненормированному графику работы;
  • умение находить общий язык с различными ИТ-подразделениями.

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


Татьяна Колесникова, старший инженер по верификации ПО ГК РЕЛЭКС

Татьяна Колесникова

1. DevOps-инженер – это специалист с навыками разработчика и системного администратора, целью которого является реализация потока непрерывной поставки продукта, упрощение поддержки и эксплуатации продукта. Основная задача DevOps-инженера – обеспечить максимальную эффективность и непрерывность процесса разработки программного обеспечения. DevOps – это стык разработки и эксплуатации, необходимо глубокое понимание и владение инструментарием в обеих сферах. Полезным будет знание концепции облачных вычислений и основных облачных технологий, поскольку сегодня все больше компаний переводят свои продукты и инфраструктуру в облака.

2. DevOps-инженер в своей работе использует широкий набор инструментов для реализации Continuous Integration (Bamboo, Jenkins, TeamCity), управления конфигурациями (Chef, Ansible, Puppet), логирования и мониторинга (Graylog, Logstash), а также скриптинг, облачные технологии, системы контроля версий, сети, безопасность, технологии виртуализации, Agile, архитектура ПО, документирование.

3. Конечно, желательно высшее техническое образование. Однако у нас есть своя программа стажировок, практик и других образовательных мероприятий, которые может пройти любой кандидат.

4. Особых требований к опыту работы кандидата на позицию DevOps-инженера у нас нет. Естественно, чем дольше человек работает, тем разнообразнее его опыт, тем больше навыков он приобретает. Иногда не так важно количество лет работы, сколько количество проектов, в которых кандидат принимал участие. В каждом случае это индивидуальный подход к специалисту и его опыту работы.

5. Особых требований, обусловленных спецификой компании, у нас нет. Однако не лишним для DevOps-инженера будут такие качества, как гибкость, ориентированность на продукт, коммуникабельность, желание работать в команде на результат.


Николай Добровольский, вице-президент Parallels

Николай Добровольский

1. В создании любой программы, приложения или сервиса принимают участие различные ИТ-специалисты: разработчики, пишущие код, системные администраторы, отвечающие заработу серверной инфраструктуры, и DevOps-инженеры, обеспечивающие корректное развертывание и функциональность созданного продукта на базе специальных хранилищ/депозитариев. На мой взгляд, хороший DevOps-инженер должен быть отличным программистом и хорошим системным администратором. Их задача не столько администрировать работу «железа», сколько стараться автоматизировать процессы на базе билдовых систем. При этом знания в области системного администрирования также важны. Именно поэтому, как правило, хорошие DevOps-инженеры в прошлом системные администраторы. Наряду с алгоритмами и программированием для них важно понимать внутренние системные процессы. Если мы говорим про веб-сервисы, то им важно знать, как работают высоконагруженные системы.

2. К основным инструментам DevOps-инженеров можно отнести системы разворачивания и конфигурирования различных сервисов и приложений. Нужно отлично знать и работать ссистемами управления конфигурациями, Chef и Ansible. Первая достаточно глобальная и сложная, вторая существенно проще, но ее возможности скромнее. Кроме того, важно уметь пользоваться планировщиком заданий Jenkins.

3. У нас достаточно высокие требования к кандидатам. Хороших DevOps-инженеров мало. Специалисты высокого уровня имеют достаточно опыта в обеих областях и крайне востребованы. Во-первых, они хорошие сисадмины, во-вторых, замечательные разработчики. В вузах на данном этапе никто целенаправленно DevOps-инженеров не готовит. Какправило, это люди, которые имеют значительный личный опыт и эволюционируют постепенно.

4. Знание Chef, Ansible и Jenkins. Без знания этих трех слов мы не рассматриваем человека как DevOps. Возможно, он хороший человек, но это гигиенический минимум. Без него никак. Поскольку скрипты у нас пишутся в основном на Python, его знание будет плюсом соискателю.

5. Обычно нет. Как правило, мы смотрим на опыт программирования и системного администрирования. Если есть и то и другое плюс реальная история в DevOps, человек нам интересен. Кроме того, важна способность работать в команде, поскольку от команды DevOps зависит продуктивность большого числа людей. Плохой DevOps-инженер способен свести на нет усилия команды разработчиков из пятидесяти и более человек. Некорректно работающая система способна затормозить производственный процесс.


Левон Авакян, Live Operations Team Lead в СООО «Гейм Стрим», минском центре разработки Wargaming

Левон Авакян

1. DevOps – это набор практик на стыке разработки, тестирования и системного администрирования. Поэтому, во-первых, DevOps-инженер должен понимать, как функционирует ОС: от устройства подсистем процессора, памяти и сети до файловых систем. Для DevOps важно знать системные утилиты, которые помогают управлять, мониторить и отлаживать приложения. Еще сейчас часто используется виртуализация, поэтому нужно изучить, какая она бывает, когда и как ее применять.

Во-вторых, хороший DevOps-инженер имеет представление о работе основных веб-сервисов, реляционных и нереляционных СУБД, очередей сообщений.

Есть еще блок навыков, связанных с программированием. DevOps должен уметь писать код на каком-нибудь современном языке. Также важно знать SQL и основные сетевые протоколы, понимать принципы работы репозиториев.

2. Главная задача DevOps – стандартизация окружений, автоматизация сборки и выпуска продуктов.

Когда задумываются об автоматизации каких-то рутинных процессов, то всегда вспоминают про старые добрые командные оболочки. Но автоматизация шагнула далеко вперед, сейчас основными утилитами для DevOps являются системы управления конфигурацией (Puppet, Chief, Ansible, etc) и CI-системы (TeamCity, Jenkins, Bamboo). Очень распространены контейнеры, соответственно, различные системы оркестрации теперь тоже на службе у DevOps.

На этом можно было бы и закончить, но обычно «из коробки» ничего не годится. Приходится либо разрабатывать что-то для себя, либо расширять уже существующие утилиты.

Также не стоит забывать, что мониторинг является одной из задач DevOps. Тут на помощь приходят специальные системы, обычно это Nagios, Zabbix, Graphite/Graphana, Prometeos ит. д.

3. Исходя из того, что кругозор DevOps-инженера должен быть очень широк, высшее образование в сфере программирования дает преимущество кандидату. Но если человек самостоятельно освоил материал, то препятствий для приема на работу нет.

4. Честно говоря, вопрос достаточно неоднозначный. Измерять опыт в годах глупо, ведь неизвестно, чем точно занимался человек на прежнем месте работы. Кто-то 10 лет поддерживал одну монолитную систему и имеет очень узкую специализацию, а кто-то за 2 года автоматизировал 3-5 проектов.

5. Разработка в Wargaming занимается разными приложениями: серверное мультикластерное Big World Tech для самих игр; мобильные, Desktop Windows, Mac OS, PS4, Xbox. Огромный пласт занимает веб. Каждое из направлений использует свой стек технологий, языков программирования: С++, Python, AS3, Erlang, JavaScript, PHP. Разнятся и СУБД (PostgreSQL, MySQL). Поэтому говорить о специфике можно только в рамках определенного подразделения.


Андрей Сизов, ведущий DevOps-инженер в компании JetBrains

Андрей Сизов

1. Это достаточно новое направление в ИT, и для него нет устоявшихся требований, т.к. каждая компания понимает и внедряет DevOps по-своему. Прежде всего DevOps-инженер должен иметь хороший технический кругозор, т.к. это работа на стыке программирования и администрирования. В идеале нужно иметь опыт программиста, помноженный на опыт администратора, но таких специалистов на рынке крайне мало. В основном текущие DevOps-инженеры – это те администраторы, которые последние несколько лет плотно занимались поддержкой веб-приложений и накопили опыт в этом направлении. С появлением Сloud-провайдеров архитектура веб-приложений претерпела существенные изменения. В процессе разделения монолитных приложений на микросервисы появляются новые шаблоны проектирования приложений, которые программисты вместе с DevOps-инженерами могут использовать для создания распределенных высоконагруженных систем.

2. Повторюсь, профессия новая и устоявшегося «джентльменского набора» не существует. Почти весь инструментарий для DevOps – это продукты с открытым исходным кодом совсеми преимуществами данного подхода. Сейчас в тренде контейнеризация, автоматизация и оркестрация. Мы выбрали Docker, Ansible и Kubernetes. В качестве Сloud-провайдера выбрали AWS. Также мы используем собственные продукты: IntelliJ IDEA – для разработки и поддержки скриптов деплоймента, Upsource – для Code Review в команде, на TeamCity полностью построен процесс CI/CD.

3. Нам важно понимание, как работают распределенные системы в интернете. Что касается образования, то мы смотрим на то, как человек самообучается, какие информационные ресурсы он посещает, что его интересует в ИT-индустрии. Большим плюсом является наличие собственных проектов, код которых можно посмотреть, например, на GitHub.

4. Нет ничего ценнее опыта, и нас очень интересуют проекты, над которыми человек работал. Мы хотим узнать подходы, которые используют другие компании, хотим сравнить их снашими и выбрать наилучшие решение. Нам хочется увидеть реальный опыт развертывания публичных веб-приложений начиная от выбора площадки до вывода в эксплуатацию.

5. Нашей основной целью является предоставление сервисов для разработчиков, доступных 24/7. Одно из основных требований – это ответственность за свою часть проекта. Если что-то пойдет не так, то нужно уметь разобраться в проблеме и вернуть сервис в рабочее состояние.

Если неофициально – хочется, чтобы человеку было интересно этим заниматься, чтобы он получал удовольствие от такой работы.


Виктор Востряков, менеджер группы системного администрирования Acronis

Виктор Востряков

1. Прежде всего давайте разберемся, что такое DevOps. DevOps – это акроним от development и operations, за которым скрывается подход к разработке ПО, подразумевающий активное взаимодействие программистов, тестировщиков и системных администраторов при разработке продукта.

Исходя из этого можно представить, что DevOps-инженер должен обладать хотя бы начальными знаниями каждого из перечисленных выше специалистов, чтобы находить с ними общий язык, хорошо понимать все этапы разработки ПО и контролировать их.

Если задаться целью перечислить необходимые навыки, то получится следующий список:

  • Linux (администрирование, программирование);
  • виртуализация (Docker, VZ, LXC);
  • основы СУБД;
  • основы LAN;
  • практики DevOps;
  • цикл поставки и жизненный цикл продукта;
  • навыки автоматизации процессов.

2. Разобравшись со знаниями, можно переходить непосредственно к «рабочим инструментам» DevOps-инженера. Как уже отмечалось выше, его зона ответственности лежит напересечении того, что делают в отделе разработки, тестирования и системного администрирования, а следовательно, и инструменты, которыми он пользуется, будут аналогичны тем, что используются в каждом из отделов.

В must have входят системы управления конфигурациями вроде Puppet и Ansible, такие системы контроля версиями, как SVN и Git, и CI-системы.

К этому же списку необходимо добавить еще и знание языков программирования Python и Bash. Переходя от must have к допам, можно упомянуть системы для развертывания наголом «железе», системы оркестрации и управления серверами вроде Ansible Tower. Это минимальный набор инструментария DevOps-инженера.

3-5. Если говорить конкретно про Acronis, то в дополнение к описанным выше навыкам и умениям к нашим инженерам мы предъявляем следующий набор требований:

  • высшее образование;
  • опыт работы в качестве DevOps-инженера/разработчика/администратора от 3 лет, а также участие в реальных проектах;
  • знание английского языка на уровне Advance;
  • готовность к зарубежным командировкам.

От себя могу добавить, что работа в DevOps – очень интересный опыт для любого ИТ-специалиста, так как она лежит на пересечении нескольких направлений и позволяет взглянуть на процесс разработки гораздо шире.


Александр Бородин, Performance & QA manager Virtuozzo

Александр Бородин

1. DevOps-инженер, как я его понимаю, – это такой разработчик, который разбирается в том, как поддерживается разрабатываемый продукт в production-окружении, и участвует вэтой поддержке – т.е. в развертываниях, обновлениях и т.д.

Такой инженер может не обладать детальными знаниями технологий, используемых в продукте, и не очень хорошо разбираться в его внутреннем устройстве – до тех пор, пока этознание не будет необходимо для troubleshooting или тонкой настройки в production.

Также DevOps-инженер может посредственно разбираться во всяких тонкостях администрирования окружения, в котором развертывается продукт, – до тех пор, пока это несказывается на его поддержке.

Проще всего определить DevOps через противопоставление – а именно противопоставление большому классу разработчиков (видела таких не раз, более того, в части компаний таких большинство), которые продукт видели живым разве что на тестовом стенде, и представление о том, какие предосторожности предпринимает администратор при егоразвертывании. – на уровне небезызвестного сферического коня в вакууме. Часто DevOps-инженеры участвуют в настройке системы непрерывного развертывания (или хотя бы интеграции) и потому обычно представляют, что такое конфигурационное управление.

2. Про какой-то специальный инструментарий DevOps мне сказать сложно, часто это просто adhoc-скрипты по развертыванию и мониторингу, при чуть большей подкованности – всевозможные средства непрерывной интеграции, мониторинга и т.д. Их очень много, и описывать нет смысла.

3. При поиске DevOps (недавно приходилось) для меня в первую очередь был важен кругозор (желателен был широкой, но с должной специализацией в технологиях продукта), опыт администрирования и настройки непрерывной интеграции (CI). Образование, конечно, желательно высшее, но на этом, пожалуй, все.

4. В компании требования к опыту работы для разных позиций, разумеется, разные, в компании Virtuozzo есть и программа стажировки для студентов Физтеха, но для DevOps очевидно важен опыт администрирования/настройки CI. Я отбирала кандидатов с не менее чем двухлетним опытом.

5. Специфические требования, конечно, есть – нужно понимать, что такое виртуализация, и почему она такая.


Сергей Фомин, системный администратор компании Southbridge

1. Если кратко, DevOps-инженер – тот, кто создает инструментарий для Dev. Если немного подробнее, DevOps-инженер – это администратор, разбирающийся в программировании, или разработчик, разбирающийся в администрировании. Он обладает достаточной компетенцией, чтобы понимать программный код, и отлично владеет архитектурной стороной вопроса. DevOps-инженер знает, как программный код будет работать под нагрузкой, а это крайне важно: часто локально работающее приложение не способно выдержать высокие или даже средние нагрузки, и это нужно учитывать.

2. В основном это Git, системы управления конфигурациями (Ansible, Сhef, Puppet), системы деплоя и непрерывной интеграции CI/CD (GitLab, Jenkins, TeamCity), языки программирования Bash/Python/Ruby. С недавних пор добавился Docker. Также DevOps-инженеру немаловажно иметь опыт работы с Cloud-провайдерами, такими как AWS, Azure.

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

4. Просто соискатель с опытом работы нам малоинтересен. Он должен продемонстрировать, что умеет. Привести конкретные примеры успешной автоматизации процессов и выкатки кода (развертывания приложений). Уровень восприятия информации у всех разный, поэтому мерить опыт годами не стоит. Правильнее оценивать непосредственно навыки кандидата и его способность к обучению. Практика показывает, что один сотрудник может достаточно серьезно вырасти и наработать десятки успешных проектов всего за год. Другому длятого же условного успеха может понадобиться 5 или 10 лет, а может, и больше.

5. У каждой компании свои методы и правила работы, свое ПО, которое нужно знать, и свои команды разработки, с которыми нужно уметь находить общий язык. Наш DevOps-инженер должен понимать узкие места продукта, уметь решать архитектурные вопросы. Он должен нацеленно работать на результат – на скорость и количество релизов в день, атакже стабильную работу проекта (выкатки кода не должны влиять на боевой проект). Сотрудник с таким подходом к задачам, несомненно, будет полезен нам и нашим клиентам.

Подготовил Игорь Штомпель


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru