Вам только что поручили собрать команду DevOps для вашей организации. Или вы заинтересованы в том, чтобы принять участие в инициативе DevOps. Какие навыки необходимы для этого в первую очередь? Опыт разработки специализированного ПО или системного инжиниринга? Или более общее знание технологии бизнеса?
Ответ — все это необходимо наряду с изрядной дозой нетрадиционного опыта. Лучшие кандидаты — это те, кто обладает опытом или знаниями в области как разработки приложений, так и администрирования систем. Но в какой мере нужны те или иные навыки, зависит от типа вашей организации, от того, является она стартапом или крупным устоявшимся предприятием. Так утверждается в новейшем руководстве Франклина Морриса DevOps Hiring in a Nutshell: How to Build a Winning DevOps Team («Краткий курс по подбору персонала для DevOps: как собрать команду-победительницу для DevOps»), опубликованном компанией Rackspace.
DevOps выдвигается на первый план, поскольку организациям совершенно необходимо быстро выдавать ПО и продукты. Творческие натуры — разработчики и дизайнеры — не обязательно соблюдают жесткие сроки в своей инновационной деятельности, а придерживаются собственных графиков. Поэтому им следует тесно сотрудничать с теми, кто занимается текущими операциями. Последние уделяют большое внимание тому, когда и как новые решения и продукты тестируются, проверяются и предоставляются внутренним и внешним клиентам. В эпоху облаков каждый, разумеется, вдруг стал предоставлять сервисы 24 часа в сутки 7 дней в неделю. Это требует координации во взаимодействии с идеями, которые вызывают у клиентов желание платить за них.
Новичкам недостаточно просто иметь в резюме упоминание о DevOps, пишет Моррис. Для поступления на работу им нужно обладать некоторым опытом по всем аспектам DevOps — инжиниринг систем, системное администрирование, инжиниринг ПО и общая эрудиция в области ИТ. «Разработчики, ставшие администраторами инфраструктуры и систем и обладающие большим опытом написания программного кода, будут наиболее подходящими кандидатами на эти должности», — отмечает Моррис.
Фактически квалифицированные участники команды DevOps должны быть «энциклопедистами с нетрадиционным опытом работы», утверждает Моррис. Вместо того, чтобы специализироваться на чем-то одном и в этой области подниматься вверх по служебной лестнице, кандидат может быть программистом, который на каком-то этапе своей карьеры совершил зигзаг и заинтересовался инфраструктурой. Занятия во внеслужебное время или хобби (например, администратор, которому нравится программирование) могут оказаться полезны для DevOps.
Подумайте также о навыках общения, которые позволяют участникам DevOps добиваться успеха, добавляет Моррис. Успех DevOps в значительной мере определяется решением проблем. Иначе говоря, достижением консенсуса различных групп, имеющихся на предприятии.
Определенную роль играет и характер бизнеса. «Если вы работаете в стартапе, находящемся на ранней стадии развития, то, вероятно, будете подыскивать энциклопедиста, способного выполнять множество функций», — пишет Моррис. Действительно, добавляет он, «росту популярности DevOps способствовал также бум стартапов». Здесь разработчик может делать несколько дел, от создания и отправки заказчику программного кода до управления инфраструктурой и тесного взаимодействия с клиентами«.
Крупным организациям не помешает, если они сделают все возможное для появления у них культуры стартапа. «Даже если вы работаете на предприятии из списка Fortune 500, будьте готовы ломать барьеры и быстро пошевеливаться, чтобы сохранить конкурентоспособность в мире DevOps, — пишет Моррис. — Так должны быть готовы работать и инженеры, которых вы наймете».
С учетом сказанного зрелым компаниям с обширными инфраструктурами все-таки важно стремиться к углублению специализации. Крупные предприятия испытывают необходимость в «программистах, особых специалистах для ответов на вопросы и даже в команде, которая будет заниматься исключительно инструментами управления конфигурацией», — утверждает Моррис.
Идеальные кандидаты должны обладать также опытом работы с инструментами автоматизации — Chef, Puppet, Ansible, SaltStack или Windows PowerShell DSC. «Такие инструменты составляют основу работы любой успешной команды DevOps. Поэтому при наличии опыта их использования для развертывания кода резюме кандидата должно оказаться первым в стопке», — пишет Моррис. Помните, однако, что такие навыки встречаются редко, добавляет он.