46 часто задаваемых вопросов и ответов из интервью DevOps [2023]
Опубликовано: 2023-01-12Хотите знать, какие вопросы задать во время следующего собеседования по DevOps? Начните с нашего удобного руководства.
Термин DevOps был придуман в 2007–2008 годах, но сейчас он стал одним из самых популярных направлений в разработке программного обеспечения. DevOps — это культурный сдвиг, который затрагивает все аспекты разработки и эксплуатации.
Две команды (разработка и эксплуатация) работают вместе от планирования и создания до мониторинга и итерации. Это наиболее распространенные вопросы, с которыми вы, вероятно, столкнетесь, если ищете роль инженера DevOps.
Что такое DevOps?
DevOps — это краткая форма разработки и эксплуатации. Эта практика разработки программного обеспечения объединяет группы разработки и эксплуатации для автоматизации каждого этапа проекта. Команда DevOps занимается управлением ресурсами, общением и командной работой.
Каковы различные этапы методологии DevOps
- Непрерывное развитие. Это этап планирования и кодирования.
- Непрерывная интеграция. На этом этапе команда разработчиков интегрирует различные компоненты и гарантирует, что код не сломается.
- Непрерывное тестирование. Это этап запланированного и автоматизированного тестирования.
- Непрерывное развертывание. Этот этап обеспечивает беспроблемную разработку, которая не влияет на производительность всего приложения.
- Непрерывный мониторинг. Этот этап обеспечивает общую эффективность приложения.
- Непрерывная обратная связь. Анализируются проблемы и производительность, о которых сообщают конечные пользователи.
- Непрерывные операции. Позволяет разработчикам создавать улучшенные версии продукта и быстро обнаруживать проблемы.
Каковы преимущества DevOps?
- Более быстрая и качественная доставка продукции
- Большая масштабируемость
- Быстрое решение проблемы
- Лучшее использование ресурсов
Назовите некоторые инструменты DevOps
- Инструменты непрерывной интеграции, такие как Jenkins
- Контроль версий, такой как Git
- Инструменты сборки, такие как Maven
- Инструменты управления конфигурацией, такие как Chef
- Контейнерные платформы, такие как Docker
Назовите некоторые KPI DevOps
- Частота развертывания
- Изменить громкость
- Время развертывания
- Количество неудачных развертываний
- Обнаружение времени
- Скорость выхода дефекта
Разница между DevOps и Agile
DevOps — это культура, которая способствует сотрудничеству между всеми членами команды, участвующими в разработке и обслуживании программного обеспечения.
Agile — это методология разработки, предназначенная для повышения продуктивности команд и запуска релизов на основе меняющихся потребностей.
Какова роль AWS в DevOps
AWS предлагает набор гибких сервисов, которые помогают компаниям надежно и быстро разрабатывать приложения. Сервисы AWS упрощают развертывание кода, подготовку и упрощение инфраструктуры, автоматизацию процессов выпуска программного обеспечения и мониторинг производительности инфраструктуры.
Какая польза от SSH?
SSH (Secure Shell) — это протокол, обеспечивающий безопасное соединение между различными компьютерами. SSH служит различным целям, таким как предложение; надежная аутентификация, надежное шифрование, поддержание целостности соединения, надежное соединение и безопасность.
Что такое непрерывная интеграция?
Непрерывная интеграция позволяет разработчикам программного обеспечения объединять свой код в центральный репозиторий. Затем код проходит через автоматизированные сборки и тесты.
Что такое управление конфигурацией?
Это процесс разработки системы, направленный на установление и поддержание согласованности производительности системы/продукта, функциональных и физических характеристик на протяжении всего жизненного цикла.
Что такое непрерывное тестирование?
Это предварительно запланированное и автоматизированное тестирование приложения по ходу разработки.
Что такое Гит?
Это бесплатный инструмент с открытым исходным кодом для управления исходным кодом. Этот инструмент предназначен для работы с малыми и большими проектами.
Упомяните некоторые основные команды Git
- Git-клон
git clone <https://name-of-the-repository-link>
- Git-ветка
git branch <branch-name>
- Git оформить заказ
git checkout <name-of-your-branch>
- Git добавить
git add <file>
- Git коммит
git commit -m "commit message"
- Git толчок
git push <remote> <branch-name>
- Git тянуть
git pull <remote>
Объясните разницу между слиянием Git и перебазированием Git.
Команда Git merge позволяет разработчикам объединять разные ветки Git, при этом журналы коммитов соответствующих веток остаются нетронутыми.
Команда Git rebase позволяет разработчикам интегрировать изменения из одной ветки в другую, а журналы изменяются после завершения процесса.
Объясните разницу между Git fetch и Git pull
Git fetch указывает git получить/проверить последние метаданные из оригинала. Однако он не выполняет передачу файлов, а просто проверяет.
Git pull проверяет и переносит изменения из удаленного репозитория в локальный проект.
Что такое конфликт слияния?
Конфликты слияния возникают, когда вы объединяете две ветки с конкурирующими фиксациями. Конфликты слияния обычно возникают, когда разные разработчики изменяют одну и ту же строку кода или файл.
Что такое контроль версий и какие существуют типы?
Контроль версий (контроль версий) — это процесс отслеживания и управления изменениями в программном коде.
Это различные типы контроля версий;
- Централизованный — иметь единую «центральную» копию исходного кода на сервере, и все изменения фиксируются в «центральной» копии. Subversion (SVN) и Perforce являются примерами централизованного управления версиями.
- Распределенный (DVCS) — не имеет центрального сервера для хранения всех файлов проекта. Git и Mercurial являются примерами DVCS.
Каковы преимущества использования контроля версий?
- Помогает разработчикам сохранить эффективность и гибкость
- Дает полный журнал всех изменений в проекте/файле
- Улучшить отслеживаемость
- Помогает в управлении слиянием и ветвлением
- Обеспечивает совместную работу
Что такое ветвление?
Ветвление относится к созданию отдельной/новой версии основного репозитория. Ветки позволяют вам работать над различными частями проекта, не затрагивая основную ветку.
Что такое стратегии ветвления?
Стратегии слияния — это методологии, которые команды разработчиков программного обеспечения используют при написании, слиянии и развертывании кода. Такой подход гарантирует, что баги и ошибки будут исправлены на этапе ветки, прежде чем они будут объединены с основным проектом.
Что такое автоматизированное тестирование и как автоматизировать тестирование в DevOps?
Автоматизированное тестирование — это метод автоматической проверки и проверки кода. Автоматизированное тестирование проводится для проверки соблюдения стандартов качества в отношении функциональности (бизнес-логики), стиля кода и взаимодействия с пользователем.
Автоматизированное тестирование выполняется с помощью таких инструментов, как Selenium и Katalon.
Что такое Дженкинсфайл?
Jenkinsfile — это текстовый файл, содержащий определение конвейера Jenkins. Jenkinsfile проверяется в репозитории системы управления версиями. Некоторые из его применений; он обеспечивает контрольный журнал для конвейера, позволяет просматривать код и выполнять итерации в конвейере и предоставляет единый источник достоверной информации в конвейере.
Объясните архитектуру в Jenkins
У Дженкинса архитектура master-slave. Это означает, что на одного «хозяина» работает много «рабов». Таким образом, Jenkins Distributed Build может запускать идентичные тесты в разных средах, при этом результаты собираются и объединяются на главном узле для мониторинга.
Каковы лучшие плагины Jenkins?
- Плагин Blue Ocean для Jenkins
- Почтовый плагин для Jenkins
- Плагин Git для Дженкинса
- Плагин Jira для Jenkins
- Плагин Docker для Jenkins
- Плагин интеграции Maven для Jenkins
- Плагин Kubernetes для Jenkins
- Плагин SonarQube для Дженкинса
- Плагин Amazon EC2 для Дженкинса
Что такое Selenium IDE?
Selenium IDE — это инструмент, который записывает взаимодействия с браузером для тестовых случаев. Вы можете устанавливать точки останова, а также проверять и приостанавливать переменные при возникновении ошибок с помощью интегрированной среды разработки Selenium.
Каковы различные компоненты Selenium?
- Селен IDE
- Селен RC
- Селен веб-драйвер
- Селеновая сетка
Какие существуют типы тестирования в Selenium?
- Сквозное тестирование
- Регрессионное тестирование
- Тестирование системы
- Тестирование производительности
- Тестирование совместимости
Каковы разные исключения в Selenium?
- ElementNotSelectableException
- Ноалертпрезентексцептион
- Инвалидселекторексцептион
- NoSuchSessionException
- Исключение StaleElementReferenceException
- Носачвиндовексцептион
- Носухфреймексцептион
- NoSuchElementException
- Исключение тайм-аута
- ElementNotVisibleException
Что такое driver.close() и driver.quit() в WebDriver?
Команда driver.close()
закрывает окно браузера в фокусе. Если открыт только один браузер, он закрывает весь сеанс браузера.
Команда driver.quit()
закрывает весь сеанс браузера с всплывающими окнами, вкладками и окнами.
Что такое Dockerfile?
Dockerfile — это текстовый документ со всеми командами, которые пользователь может использовать в командной строке для сборки образа.
Различия между образами докеров и контейнером докеров
Образы Docker — это шаблоны только для чтения, созданные с использованием исходных кодов, инструментов, библиотек, внешних зависимостей и других файлов, необходимых для успешной работы любого приложения в любой операционной системе или платформе.
Docker-контейнер — это ящик, в котором запущены шаблоны образов Docker.
Объясните архитектуру Docker.
Docker следует архитектуре клиент-сервер и включает в себя Docker Client, Docker Host и Docker Registry.
Клиент Docker использует REST API и команды для связи с сервером (Docker Daemon).
Клиент Docker использует CLI для запуска этих команд.
docker build docker pull docker run
- Docker Host предоставляет среду для выполнения и запуска приложений. Состоит из демона докеров, хранилища, образов, контейнеров и сетей.
- Реестр Docker управляет образами Docker и хранит их.
Облачные платформы, поддерживающие докер
Платформы, поддерживающие хостинг докеров:
- Каматера
- Google Cloud Run
- Хостинг А2
- StackPath
- Sloppy.io
- Амазон ЭКС
- Microsoft Azure
- ХостПресто
- Вультр
Что такое Нагиос?
Nagios — это инструмент, который отслеживает всю ИТ-инфраструктуру, чтобы убедиться, что бизнес-процессы, системы, службы и приложения работают должным образом.
Как работает Нагиос?
- Мониторинг . ИТ-персонал настраивает Nagios для мониторинга сетевых протоколов, системных показателей, приложений, сетевой инфраструктуры, служб и серверов.
- Оповещение . Nagios отправляет оповещения при сбое критических компонентов. Оповещения могут быть через SMS, пользовательский код или электронную почту.
- Ответ . ИТ-команда подтверждает оповещения и действует.
- Отчеты . Создаются отчеты, которые содержат исторические записи об уведомлениях, сбоях, ответах на предупреждения и событиях для последующего просмотра.
- Техническое обслуживание . Запланированное время простоя предотвращает отправку предупреждений во время обслуживания.
Упомяните некоторые плагины в Nagios
- Официальные плагины Nagios — разрабатываются и поддерживаются официальной командой.
- Пользовательские плагины , написанные отдельными лицами/компаниями для удовлетворения индивидуальных потребностей.
- Плагины сообщества , разработанные членами сообщества Nagios.
Объясните виртуализацию с помощью Nagios
Nagios предлагает возможность отслеживать различные показатели на различных платформах виртуализации. Nagios может работать на различных платформах виртуализации, таких как Xen, Amazon EC2, VMware и Microsoft Virtual PC.
Как Nagios помогает в мониторинге?
Nagios использует такие агенты, как NRPE, check_mk или SNMP, для сбора статистики на вашем сервере и отправки предупреждения, если показатели превышают предопределенный порог.
Какие номера портов использует Nagios для мониторинга?
SNMP, порты 161 и 162
Что такое сетевой анализатор Nagios?
Сетевой анализатор Nagios — это программное обеспечение для анализа данных sflow, которое позволяет пользователям заблаговременно устранять ненормальное поведение, сбои и угрозы безопасности, прежде чем прерывать бизнес-операции. Этот инструмент коммерческого уровня предлагает расширенное представление о сетевом трафике и ИТ-инфраструктуре.
Переменные, влияющие на наследование и рекурсию в Nagios
- Имя - имя шаблона, которое может наследовать переменные/свойства объекта.
- Использовать - указать имя объекта шаблона, от которого вы хотите наследовать переменные/свойства.
- Register указывает, должно ли имя объекта шаблона быть «зарегистрировано» в Nagios.
Что такое Кукольный?
Puppet — это инструмент с открытым исходным кодом для управления конфигурацией программного обеспечения и его развертывания.
Что такое Кукольный манифест?
Манифест Puppet — это файл, содержащий язык конфигурации Puppet, описывающий, как следует настраивать ресурсы.
Что такое Кукольный код?
Кукольный код является декларативным кодом, что означает, что вы описываете его, используя желаемое состояние вашей системы, а не шаги, необходимые для его достижения.
Что такое Шеф?
Chef — это инструмент управления конфигурацией, который преобразует инфраструктуру в код. Этот инструмент фокусируется на написании кода, а не на ручном процессе.
Как работает Шеф?
Работа Chef начинается, когда системные администраторы или разработчики определяют задачи, которые необходимо автоматизировать. Кулинарные книги и рецепты (небольшие программы, написанные на предметно-ориентированном языке) затем собираются и тестируются с использованием различных инструментов, таких как Test Kitchen, ChefSpec и Foodcritic.
Если кулинарные книги и рецепты работают должным образом, они затем развертываются на сервере Chef с помощью инструментов командной строки ножа и шеф-повара. Процесс развертывания Chef включает в себя сервер Chef, рабочие станции и узлы. Вы можете выбрать из более чем 3000 шаблонов кулинарных книг и настроить их под свои нужды. Затем шеф-повар возьмет на себя всю остальную работу.
Резюме
По данным Glassdoor, средняя зарплата DevOps-инженера в США составляет 104 281 доллар в год. Несмотря на то, что DevOps — это новая профессия, сейчас мы видим, что все больше компаний нанимают сотрудников на эту должность и публикуют различные курсы, чтобы вооружить профессионалов необходимыми навыками. Выше приведены некоторые вопросы, с которыми вы, вероятно, столкнетесь на собеседовании по DevOps.
Вы также можете изучить несколько хороших онлайн-курсов, чтобы изучить DevOps.