Более 50 вопросов и ответов на интервью для DevOps инженера

DevOps, что означает "Разработка и эксплуатация", произвела революцию в способах разработки и распространения программных продуктов.

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

Здесь мы перечислим лучшие вопросы и ответы на собеседовании для Девопс инженера. Мы разделили вопросы на базовые вопросы для интервью с DevOps и расширенные вопросы.

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

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

3. С какой методологией связан DevOps?
DevOps связан с гибкой методологией.

4. Каковы основные приоритеты DevOps?
Приоритеты в DevOps включают управление ресурсами, командную работу и коммуникацию.

5. Каковы преимущества DevOps?
Различные преимущества DevOps включают инновации, стабильность, функциональность и скорость.

6. Каковы различные этапы DevOps?
DevOps обычно подразделяется на 6 этапов. Однако этапы не разделены жесткими границами, и ни один этап не начинается, даже если предыдущий полностью завершился.

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

2. Разработка
На этом этапе проект создается путем проектирования инфраструктуры, написания кодов, определения тестов или процесса автоматизации.

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

4. Автоматическое развертывание
DevOps стимулирует автоматизацию развертываний с помощью инструментов и сценариев с конечной целью решения всего процесса с помощью активации функции.

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

6. Мониторинг
Этот этап является постоянным этапом процесса DevOps. DevOps отслеживает и анализирует информацию, которая отображает текущее состояние приложения.

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

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

8. Что такое Ansible и Puppet?
Puppet и Ansible - это инструменты, которые используются для управления большим количеством серверов. Их также называют инструментами удаленного выполнения и управления конфигурацией, и они позволяют администратору выполнять или выполнять команды на многих серверах одновременно. Его основная функция, как правило, заключается в одновременном обслуживании и настройке тысяч серверов.

9. Каковы преимущества использования системы контроля версий (VCS)?
Основные преимущества контроля версий заключаются в следующем:

  • Благодаря системе контроля версий (VCS) всем сотрудникам разрешен свободный доступ к файлу в любое время. Это также позволяет объединить все изменения, внесенные в общую версию.
  • Он разработан, чтобы помочь нескольким людям совместно редактировать текстовые файлы, что упрощает совместное использование между несколькими компьютерами.
  • Это важно для документов, требующих много изменений и доработок, поскольку они предоставляют контрольный журнал для изменения и обновления окончательных версий.
  • Это позволяет всем членам команды иметь доступ к полной истории проекта, чтобы в случае какой-либо поломки на центральном сервере мы могли использовать хранилище любого товарища по команде.
  • Все предыдущие версии и варианты продуманно упакованы внутри VCS. Любая версия запрашивается в любое время, чтобы получить информацию о предыдущих завершенных проектах.

10. Каковы различные компоненты Selenium?
Selenium - это инструмент с открытым исходным кодом, который используется для автоматизации различных веб-приложений. Он состоит в основном из четырех основных компонентов, которые помогают запускать несколько тестовых примеров и предоставляют услуги для использования различных браузеров и языков для автоматизации. Компоненты Selenium следующие:

1. Selenium IDE
Selenium IDE (интегрированная среда разработки) - одна из самых простых платформ в пакете selenium. Он имеет простую функцию записи и воспроизведения, которая помогает определить инструмент, обеспечивающий легкое обучение.

2. Selenium RC
Selenium RC (дистанционное управление) - это инструмент, который помогает понимать тестовые сценарии и обеспечивает поддержку различных языков программирования, таких как Ruby, PHP, Java и др.

3. Selenium WebDriver
В основном это расширение selenium RC, но оно поддерживает все новейшие браузеры и многие платформы. Он создан для поддержки жизненно важных веб-страниц, в которых элементы, присутствующие на странице, могут изменяться без перезагрузки страницы, и он напрямую вызывает браузер для автоматизации.

4. Selenium GRID
Selenium GRID - это инструмент, который параллельно запускает несколько тестовых примеров для разных браузеров и компьютеров. Несколько узлов не зафиксированы в сетке, и ее можно запускать в различных браузерах и платформах. Он используется вместе с Selenium RC.

11. Какова цель управления конфигурацией в DevOps?
Управление конфигурацией помогает автоматизировать задачи, которые в противном случае отнимают много времени и утомительны, и повышает гибкость организации. Это обеспечивает согласованность и улучшает процесс разработки продукта / услуги за счет оптимизации проектирования, документации, контроля и внедрения изменений на различных этапах проекта.

12. Какова цель AWS в DevOps?
Сервисы Amazon Web Services (AWS) поддерживают автоматизацию ручных задач и процессов, которые помогают разработчикам создавать приложения быстрее и эффективнее. Этими процессами могут быть развертывание, разработка, рабочие процессы тестирования, управление конфигурацией и управление контейнерами.

13. В чем разница между централизованной и распределенной системой контроля версий (VCS)?
В централизованной системе репозиториев репозиторий расположен в центральном месте, и клиенты обращаются к этой системе, когда им что-то нужно. В такой системе контроля версий репозиторий всегда обновляется последними изменениями, поскольку изменения напрямую передаются в центральную систему; поэтому все клиенты всегда имеют доступ к последнему коду. Резюме и SVN являются примерами централизованных венчурных капиталистов.

В распределенной VCS у каждого в команде есть свой репозиторий, который является зеркалом центрального репозитория. Это обеспечивает гибкость, поскольку можно работать в автономном режиме. Вам нужно быть в Сети только тогда, когда изменения должны быть внесены в центральную систему. Это ускоряет работу распределенных венчурных капиталистов. Git и Mercurial являются распределенными венчурными капиталистами.

14. В чем различия между git pull и git fetch?
Git fetch — это команда, которая позволяет загружать файлы из другого репозитория.
Git pull — это команда, которая позволяет вам извлекать данные из другого репозитория или локальной ветки git и объединять их с вашими собственными.

15. Что такое git stash?
Команда Git stash используется для временного сохранения изменений в рабочем каталоге. Это дает разработчикам чистый каталог для работы. Позже они могут объединить изменения в рабочем процессе git. Если используется эта команда, изменения в отслеживаемых файлах объединяются в рабочий каталог. Команда Git stash может использоваться много раз в каталоге git.

16. Что такое конфликт слияния в Git и как его можно разрешить?
Конфликты слияния возникают, когда изменения вносятся в один файл несколькими людьми одновременно. Из-за этого Git не сможет определить, какая из нескольких версий является правильной версией. Чтобы разрешить конфликты, мы должны создать новое репозиторий Git, добавить файл, создать ветку, внести правки и зафиксировать изменения.

Следующий шаг - объединить новую ветку с master. Как только это будет сделано, Git четко покажет различия в разных версиях файла и где необходимо внести изменения, чтобы устранить конфликты.

17. Каковы фундаментальные различия между DevOps и Agile?
Хотя DevOps имеет некоторое сходство с методологией Agile, которая является одной из самых популярных методологий SDLC, обе они представляют собой принципиально разные подходы к разработке программного обеспечения. Ниже приведены различные фундаментальные различия между ними:
Гибкий подход: гибкий подход предназначен только для разработки в Agile, в то время как гибкий подход предназначен как для разработки, так и для операций в DevOps.
Практики и процессы: В то время как agile включает в себя такие практики, как Agile Scrum и Agile Kanban, DevOps включает в себя такие процессы, как CD (непрерывная доставка), CI (непрерывная интеграция) и CT (непрерывное тестирование).
Приоритет: Agile уделяет приоритетное внимание своевременности, тогда как DevOps уделяет равное внимание своевременности и качеству.
Циклы выпуска: DevOps предлагает меньшие циклы выпуска с немедленной обратной связью, в то время как Agile предлагает только меньшие циклы выпуска без немедленной обратной связи.
Источник обратной связи: Agile полагается на отзывы клиентов, в то время как обратная связь от self (инструменты мониторинга) задействована в DevOps.
Объем работы: для Agile объем работы - это только гибкость, но для DevOps это гибкость и необходимость автоматизации.

18. Зачем нам нужен DevOps?
В наши дни организации пытаются донести небольшие функции до клиентов с помощью серии выпусков, вместо того, чтобы выпускать большие наборы функций. Это дает несколько преимуществ, в том числе более высокое качество программного обеспечения и быструю обратную связь с клиентами. Благодаря внедрению методологии DevOps организации могут выполнять от десятков до тысяч развертываний за один день. Более того, это обеспечивает первоклассную надежность, безопасность и стабильность.

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

19. Каковы важные деловые и технические преимущества использования DevOps?
DevOps приносит много деловых и технических преимуществ. Некоторые из наиболее важных перечислены ниже.

Преимущества для бизнеса:
  • Повышенная стабильность операционной среды.
  • Более быстрое предоставление функций.
  • Больше времени для повышения ценности продукта.

Технические преимущества:
  • Непрерывная поставка программного обеспечения.
  • Более быстрое решение проблем.
  • Меньше сложных проблем.

20. Назовите некоторые из наиболее часто используемых инструментов DevOps.
Ниже приведен список некоторых наиболее широко используемых инструментов DevOps:

  • Ansible - инструмент для управления конфигурацией и развертывания приложений
  • Chef: инструмент для управления конфигурацией и развертывания приложений
  • Docker: инструмент контейнеризации
  • Git: инструмент системы контроля версий (VCS)
  • Дженкинс инструмент непрерывной интеграции (CI)
  • Jira: гибкий инструмент для совместной работы в команде
  • Nagios: инструмент непрерывного мониторинга
  • Puppet: инструмент для управления конфигурацией и развертывания приложений
  • Selenium: инструмент непрерывного тестирования (CT)

21. Для чего используется Selenium?
Selenium используется для непрерывного тестирования в DevOps. Инструмент специализируется на функциональном и регрессионном тестировании.

22. Что вы понимаете об антишаблонах?
Когда шаблон DevOps, обычно используемый другими организациями, не работает в определенном контексте, и все же организация продолжает его использовать, это приводит к принятию анти-шаблона. Некоторые из известных анти-шаблонов:
  • В организации должна быть отдельная группа DevOps
  • Agile равен DevOps
  • DevOps - это процесс
  • DevOps - это управление релизами, ориентированное на разработку
  • DevOps невозможен, потому что организация уникальна
  • DevOps невозможен, потому что доступные люди не подходят
  • DevOps означает разработчиков, управляющих производством
  • DevOps решит все проблемы
  • Неспособность включить все аспекты организации в текущий переход на DevOps
  • Не определены ключевые показатели эффективности в начале перехода на DevOps
  • Сократите изолированность разработки и операций с помощью новой команды DevOps, изолированной от других подразделений организации

23. Что означает CAMS?
Аббревиатура CAMS обычно используется для описания основных принципов методологии DevOps. Это означает: Culture, Automation, Measurement и Sharing.

24. Какие ключевые показатели эффективности используются для оценки успеха DevOps?
Чтобы измерить успех процесса DevOps, можно использовать несколько ключевых показателей эффективности. Некоторые из самых популярных:

  • Производительность приложений
  • Использование приложений и трафик
  • Процент прохождения автоматизированного теста
  • Доступность
  • Изменить громкость
  • Билеты для клиентов
  • Частота устранения дефектов
  • Частота развертывания
  • Время развертывания
  • Частота ошибок
  • Неудачные развертывания
  • Время выполнения
  • Среднее время до обнаружения (MTTD)
  • Время к восстановлению (MTTR)

25. Что вы понимаете в контейнерах?
Контейнеры - это форма упрощенной виртуализации, которая помогает обеспечить изоляцию между процессами. Контейнеры тяжелее, чем chroot, но легче, чем гипервизор.

26. Микросервисы являются основной частью DevOps. Можете ли вы назвать любые две популярные платформы разработки Java для создания микросервисов?
Существует несколько фреймворков Java, которые позволяют создавать микросервисы. Однако Eclipse MicroProfile и Spring Boot выделяются из общего ряда как две ведущие платформы разработки Java, используемые в DevOps для создания микросервисов.

27. Что такое посмертные собрания?
Иногда возникает необходимость обсудить, что пошло не так во время процесса DevOps. Для этого организуются посмертные встречи. На этих встречах излагаются шаги, которые следует предпринять, чтобы избежать того же сбоя или набора сбоев в будущем, для которых встреча была организована в первую очередь.

28. Проведите сравнение между управлением активами и управлением конфигурацией.
Процесс мониторинга, а также поддержания ценностей, представляющих ценность для организации или группы, называется управлением активами. Управление конфигурацией относится к процессу контроля, идентификации, планирования и проверки элементов конфигурации в рамках сервиса в поддержку управления изменениями.

29. Можем ли мы создать новую копию существующей работы Дженкинса?
Да, мы можем создать новую копию существующего задания Jenkins, создав клон каталога с другим именем.

30. Что такое Ansible?
Ansible work - это инструмент автоматизации с открытым исходным кодом, используемый в DevOps.

31. Каковы категории Ansible в DevOps?
В DevOps есть две категории Ansible:

  • Управление машинами.
  • Узлы.

32. Можем ли мы установить Ansible на управляющие машины?
Да, мы можем установить Ansible на управляющую машину, используя узлы машины, которые управляются с помощью SSH.

33. Является ли Ansible инструментом без агентов? В чем его преимущества?
Да, Ansible - это инструмент без агентов, потому что он не требует какой-либо обязательной установки на удаленных узлах. Преимущества инструмента Ansible включают следующее:

  • Автоматизация задач
  • Управление конфигурацией
  • Развертывание приложений

34. Что такое рабочий процесс разветвления?
Разветвленный рабочий процесс предоставляет репозитории для всех разработчиков, тем самым поддерживая проекты с открытым исходным кодом.

35. Чем рабочий процесс Forking лучше рабочего процесса Git?
Рабочий процесс разветвления лучше, чем рабочий процесс Git, потому что он помогает интегрировать вклад разных разработчиков, не требуя, чтобы все отправлялись в единый центральный репозиторий для очистки истории проекта. Таким образом, разработчикам разрешено размещать свои серверные репозитории, а сопровождающий проекта будет размещать их в официальном репозитории.

36. Что такое Git rebase?
Git rebase - это команда, которая предназначена для интеграции изменений из одной ветки в другую.

37. Чем Git rebase отличается от Git merge?
Git rebase отличается от Git merge тем, что в случае Git rebase функциональная ветвь переносится в конечную точку главной ветви. Однако в случае слияния Git слияние добавляет к новой фиксации в истории, в которой история не меняется, но изменяется основная ветвь.

Расширенные вопросы интервью DevOps

38. Что такое CI и какова его цель?
CI означает непрерывную интеграцию. Это практика разработки, при которой разработчики интегрируют код в общий репозиторий несколько раз за один день. Это повышает качество программного обеспечения, а также сокращает общее время, необходимое для доставки.

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

39. Какой сдвиг остался в DevOps?
Традиционный жизненный цикл разработки программного обеспечения, отображенный на бумаге, имеет две стороны, левую и правую. В то время как левая часть графика включает проектирование и разработку, правая часть включает стадию производства, стресс-тестирование и принятие пользователями. Сдвиг влево в DevOps просто означает необходимость выполнения как можно большего количества задач справа, т. Е. Это обычно происходит ближе к концу процесса разработки приложения и включает их в более ранние этапы методологии DevOps. Есть несколько способов добиться изменений в DevOps, в первую очередь:
  • Создавайте готовые к работе артефакты в конце каждого гибкого спринта
  • Включите процедуры статического анализа кода в каждую сборку

40. Каковы основные преимущества внедрения автоматизации DevOps?
Ниже приведены основные преимущества внедрения автоматизации DevOps:

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

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

  • Путем создания нового коммита для отмены всех изменений, внесенных в коммит, который уже был отправлен и опубликован. Команда для этого:
  • git revert
  • Исправив или удалив поврежденный файл в новом коммите, а затем отправив его в удаленный репозиторий. После внесения необходимых изменений в файл зафиксируйте его в удаленном репозитории с помощью команды:
  • git commit -m "сообщение о фиксации"

42. Можете ли вы указать и объяснить ключевые элементы непрерывного тестирования?
Ключевыми элементами непрерывного тестирования являются:

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

43. Каковы основные операции DevOps с точки зрения разработки и инфраструктуры?
Основными операциями DevOps с точки зрения разработки и инфраструктуры являются:

  • Разработка приложений: разработка продукта, способного удовлетворить все требования клиентов и обеспечивающего замечательный уровень качества.
  • Охват кода: измерение общего количества блоков, строк или дуг кода, выполняемых во время выполнения автоматических тестов.
  • Разработка кода: подготовка кодовой базы, необходимой для разработки продукта.
  • Конфигурация: позволяет оптимально использовать продукт.
  • Развертывание: установка программного обеспечения, которое будет использоваться конечным пользователем.
  • Оркестровка: организация нескольких автоматизированных задач.
  • Упаковка: действия, связанные с выпуском, готовым к развертыванию.
  • Подготовка: обеспечение того, чтобы изменения инфраструктуры поступали точно в срок с кодом, который этого требует.
  • Модульное тестирование: предназначено для тестирования отдельных модулей или компонентов.

44. Каковы различные преимущества Git?
Git обладает следующими преимуществами:

  • Это помогает в избыточности и репликации данных.
  • Он легко доступен.
  • Это поддерживает сотрудничество.
  • Его можно использовать для различных проектов.
  • Он использует только один каталог Git для каждого репозитория.
  • Он поддерживает использование диска.
  • Он обеспечивает более высокую производительность сети.

45. Можем ли мы обрабатывать конфликты слияния в Git?
Да, мы можем справиться с конфликтом слияния, выполнив следующие три шага:
Шаг 1: Выработка четкого понимания конфликта путем проверки всего с помощью Git status.
Шаг 2: отметьте и устраните конфликт, применив инструмент слияния.
Шаг 3: выполнение фиксации и слияние с текущей веткой вместе с основной веткой.

46. Можем ли мы переместить или скопировать Jenkins с одного сервера на другой?
Да, мы можем переместить или скопировать Jenkins с одного сервера на другой. Например, путем копирования каталог Jenkins jobs можно переместить со старого сервера на новый сервер.

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

48. Какова роль сетки Selenium?
Роль Selenium Grid заключается в выполнении одних и тех же или разных тестовых сценариев на разных платформах и браузерах. Это помогает в тестировании в различных средах и экономит время выполнения.

49. Можем ли мы обеспечить безопасность Дженкинса?
Да, мы можем обеспечить Дженкинса:
  • Обеспечение глобальной безопасности включено.
  • Проверка, интегрирован ли Jenkins.
  • Убедитесь, что матрица проекта включена.
  • Автоматизация процесса настройки прав и привилегий.
  • Ограничение физического доступа к данным Jenkins.
  • Регулярное проведение аудитов безопасности.

50. Что такое конвейер Дженкинса?
Jenkins pipeline - это набор плагинов, который поддерживает реализацию и интеграцию конвейера непрерывной доставки Jenkins.

51. Что такое кукольный модуль?
Кукольный модуль представляет собой набор манифестов и данных, включая файлы, шаблоны и факты, которые имеют определенную структуру каталогов.

52. Чем модуль Puppet отличается от Puppet Manifest?
В манифестах Puppet используется расширение .pp. Это кукольные программы, которые состоят из кукольного кода. С другой стороны, Puppet Modules организует различные виды кукольных манифестов, которые могут разделять с ним кукольный код.

Ищите Девопс инженера? Мы знаем где найти! Закрываем вакансии под ключ за 2 недели и без предоплаты. Гарантируем поиск самого сильного, а не самого дорогого кандидата!
https://itanddigital.ru/
Помощники для IT рекрутеров в проведения интервью с кандидатами!
Тщательно отобранные 100+ вопросов в каждом направлении и все твои. Теперь все самое главное под рукой!
HR Блог для IT рекрутера в Телеграм
Хочешь всегда получать новые статьи, бесплатные материалы и полезные HR лайфхаки! Подписывайся на нас в Telegram! С нами подбор ит персонала становится проще ;)

Расскажите, каких специалистов вы ищете: мы обязательно поможем их найти

работаем 24 на 7