Однако в ИТ-компаниях произошла смена парадигмы после ускоренного развития ИТ-сектора и технологий. Принцип DevOps является идеальной связью между ИТ-разработкой и операциями и в последние годы стал обычным подходом к разработке программного обеспечения.
Функциональным командам DevOps нужны люди с уникальными навыками. В этой статье рассматриваются несколько вопросов на собеседовании для DevOps инженеров, которые вы можете задать, и ответы, которых следует ожидать от подходящих кандидатов.
Кто такой DevOps инженер?
По сути,
DevOps инженер - это ИТ специалист, который сотрудничает с командой системных администраторов, разработчиками программного обеспечения и другими продуктовыми ИТ командами для контроля за выпусками и развертыванием кода.
Группа разработки и эксплуатации использует непрерывную интеграцию, непрерывную поставку и тестирование, чтобы регулярно улучшать существующий код. Эта роль требует, чтобы кто-то с соответствующими профессиональными навыками преодолевал обычные барьеры между разработкой программного обеспечения, QA, тестированием и ИТ персоналом, а также содействовал созданию благоприятных и целостных рабочих условий.
Термин «DevOps» возник в результате слияния двух основных коррелирующих тенденций. Первый ранее назывался «agile infrastructure» или «agile operations», основанный на применении принципов гибкости и бережливого производства к операционным задачам.
Второй - это детальное понимание важности сотрудничества между группами разработки и эксплуатации на каждом этапе жизненного цикла разработки при создании или эксплуатации сервиса.
Популярные вопросы на собеседовании
Ниже приведены некоторые из основных вопросов, которые нужно задать IT рекрутерам во время собеседования DevOps инженеру:
Вопрос 1: Зачем нужен DevOps?
Кандидаты могут начать с описания текущих тенденций в ИТ-индустрии. Вместо того, чтобы развертывать большие наборы функций, компании экспериментируют с предоставлением небольших функций через несколько серий выпусков.
Это означает, что компаниям необходимо ускорить выпуск программных продуктов с низким уровнем отказов и предоставить быстрые исправления, чтобы обеспечить быстрое восстановление в случае сбоя новой версии. Преимущества этого подхода включают лучшее качество программного обеспечения и оперативную обратную связь с клиентами, что обеспечивает их большее удовлетворение.
Для этого необходимо создать синергию между группами разработки и эксплуатации. Инженеры по разработке и эксплуатации будут сотрудничать на протяжении всего жизненного цикла продукта или услуги, от этапа проектирования до развертывания.
DevOps справляется с этим и помогает обеспечить бесперебойную доставку программного обеспечения. Многим компаниям, внедряющим DevOps, удалось достичь уровня производительности, который несколько лет назад мог быть непрактичным. Теперь они могут ежедневно развертывать десятки или сотни кодов с более высокой эффективностью, безопасностью и стабильностью.
Вопрос 2: В чем разница между DevOps и Agile?
Объяснение может принимать разные формы, но сводится к следующему:
Agile - это набор ценностей и принципов в отношении производственных методов, таких как разработка ПО. Например, если у кого-то есть идея и он хочет преобразовать концепцию в практическое программное обеспечение, он может использовать ценности и принципы Agile для достижения этой цели. Однако программное обеспечение может работать только на компьютере разработчика или в тестовой среде. Чтобы легко и быстро перенести ПО в производственную инфраструктуру безопасным и простым способом, им потребуются инструменты и методы DevOps.
Резюмируя, можно сказать, что метод гибкой метологии разработки программного обеспечения касается разработки программного обеспечения, в то время как DevOps, с другой стороны, занимается мего разработкой и развертыванием, используя самый простой, самый безопасный и надежный из возможных методов.
Вопрос 3. Какие инструменты вы считаете лучшими для DevOps и как они работают вместе?
Наиболее распространенные инструменты включают:
- Git - для системы контроля версий
- Selenium - для непрерывного тестирования
- Jenkins - для непрерывной интеграции
- Nagios - для постоянного мониторинга
- Puppet, Chef, Ansible - для управления конфигурацией и развертывания
- Docker - для контейнеризации
Кандидаты могут также упомянуть другие инструменты, но они самые популярные. Они могут рассказать о своем опыте работы с некоторыми или всеми инструментами для разработки и развертывания.
Вторая часть вопроса не имеет стандартного ответа. Ответы могут отличаться, потому что разные компании по-разному используют DevOps. Ниже приводится общая логика, которая позволяет автоматизировать операции и упростить доставку.
- Разработчики создают код и управляют им с помощью инструментов системы контроля версий, таких как Git.
- Разработчики направляют исходный код в репозиторий Git и фиксируют любые изменения кода в репозитории.
- С помощью подключаемого модуля Git дженкинс может взять код из репозитория и собрать его с помощью такого инструмента, как Ant или Maven.
- Инструменты управления конфигурацией, такие как Puppet, развертывают и предоставляют среду тестирования. Дженкинс отправляет код в тестовую среду, и такой инструмент, как Selenium, выполняет тестирование.
- После тестирования кода дженкинс направляет его для развертывания на производственном сервере, который может быть подготовлен и управляться с помощью такого инструмента, как Puppet.
- Такой инструмент, как Nagios, обеспечивает непрерывный мониторинг после развертывания.
- Функции сборки тестируются с использованием тестовой среды, предоставляемой Docker.
Вопрос 4. Как бы вы описали свой опыт в облачных технологиях?
Хороший инженер DevOps должен быть знаком с облачными технологиями.
В связи с тем, что мир обращается к облаку, растет спрос на инженеров с опытом работы с облачными технологиями, включая популярные Amazon Web Server (AWS) и RackSpace, Microsoft Azure, Google Elastic Cloud и OpenStack.
Дело не только в количестве технологий, с которыми работал кандидат, но и в степени его опыта на предыдущей работе. Несколько лет назад AWS, вероятно, была единственной технологией, которую знали большинство инженеров DevOps. В настоящее время опыта работы с AWS недостаточно; спросите об их опыте работы с S3, EC, Glacier, Redshift, Route53 и другими.
Хорошие кандидаты будет рад описать количество облачных экземпляров, с которыми они работают в настоящее время, и часы, которые они проводят, работая в облаке в различных средах. Они также могут упомянуть, работали ли они над проектированием, внедрением и переносом в облако или увеличивали масштаб среды с малого до большого в предыдущих работах.
Вопрос 5: Что такое контроль версий и каковы его преимущества?
Это, наверное, один из самых простых вопросов на собеседовании.
Контроль версий - это система, которая отслеживает и сохраняет изменения в файле или наборе файлов с течением времени, чтобы пользователи могли позже получить определенные версии. Системы контроля версий имеют центральный общий репозиторий, который позволяет членам группы сохранять изменения в файле или наборе файлов.
С помощью систем управления версиями (VCS) каждый член команды может неограниченно работать с любым файлом в любое время. Затем VCS позволит им объединить все изменения и данные в единую версию. Все предыдущие версии и варианты тщательно упорядочены в VCS. При необходимости пользователи могут получить любую версию и сразу получить снимок всего проекта.
Каждый раз, когда кто-то сохраняет новую версию проекта, VCS просит человека предоставить краткое описание изменений. Кроме того, другие пользователи могут видеть, что было изменено в содержимом файла. Распределенная VCS, такая как Git, предлагает полную историю проекта каждому члену команды. Это означает, что вы можете использовать любой из локальных репозиториев Git члена команды, если на центральном сервере произойдет сбой. Преимущества использования VCS:
- Восстановить предыдущую версию файла
- Вернуть весь проект к более ранней версии
- Сравнивайте и отслеживайте изменения
- Определите изменения, которые могли вызвать проблему
Вопрос 6. Каковы лучшие практики внедрения DevOps?
Реализация DevOps уникальна для разных организаций. Поскольку организации хотят предоставлять программное обеспечение быстро и эффективно, инженер DevOps должен знать, как обеспечить эффективную связь, обмен данными и сотрудничество между всеми заинтересованными сторонами, включая операционную группу.
- У каждой компании есть определенные бизнес-цели и задачи. Реализация DevOps должна соответствовать этому и способствовать необходимым изменениям.
- Содействовать общению и сотрудничеству, особенно между разработкой и производством.
- Автоматизация важна, и ее следует обрабатывать и выполнять везде, где это возможно, на этапах SDLC, чтобы гарантировать эффективную работу DevOps.
- Должна быть эффективная интеграция всех инструментов, используемых в DevOps.
- Без практик CI и CD реализация DevOps не может быть успешной. Поэтому постоянная интеграция кода, тщательное тестирование и выполнение непрерывной доставки жизненно важны для успешной реализации.
- Операционная группа должна гарантировать, что приложения работают эффективно на должном уровне. При необходимости им потребуется сотрудничать с группами разработчиков для создания любого инструмента, который поможет внедрить в приложения надлежащие функции мониторинга.
- Наконец, поощряйте обратную связь от клиентов, чтобы гарантировать постоянное улучшение, что имеет решающее значение для эффективного процесса и предоставления услуг.
В заключение
Этот список вопросов, которые следует задать во время собеседования при общении с DevOps инженером, никоим образом не является исчерпывающим. Как рекрутер, вы знаете, что
подбор ит персонала требует больших трудозатрат и хотите сразу найти кандидатов, которые будут обладать необходимыми навыками и знаниями для безупречной работы. В дополнение к обычным вопросам собеседования вы можете использовать тесты технической оценки для оценки компетентности кандидата. Инженер DevOps должен хорошо разбираться в процессах, инструментах и применяемых технологиях. Они также должны иметь представление о продуктах, системах и услугах передачи данных. Все это может показаться немного сложным, но эти вопросы на собеседовании помогут вам не сбиться с пути. Также рекомендуем прочитать нашу статью
16 вопросов для разработчиков, которые должен задать IT рекрутер, они будут отличным дополнением к собеседованию.