46 поширених запитань і відповідей на інтерв’ю DevOps [2023]

Хочете знати, які запитання поставити під час наступної співбесіди DevOps? Почніть роботу з нашим зручним посібником.

Термін DevOps був введений у 2007-2008 роках, але зараз став однією з найпопулярніших професій у розробці програмного забезпечення. DevOps — це культурний зрушення, яке торкається кожного аспекту розробки та операцій.

Дві команди (розробники та операції) працюють разом від планування та створення до моніторингу та ітерації. Це найпоширеніші запитання, з якими ви можете зіткнутися, якщо шукаєте роль інженера DevOps.

Зміст

Що таке DevOps?

DevOps — це коротка форма розробки та операцій. Ця практика розробки програмного забезпечення об’єднує команди розробників і операторів для автоматизації кожного етапу проекту. Команда DevOps зосереджується на управлінні ресурсами, комунікації та командній роботі.

Які різні фази в методології DevOps

  • Постійний розвиток. Це етап планування та кодування.
  • Безперервна інтеграція. Це етап, на якому команда розробників інтегрує різні компоненти та гарантує, що код не зламається.
  • Постійне тестування. Це етап попереднього та автоматизованого тестування.
  • Безперервне розгортання. Цей етап забезпечує безпроблемну розробку, яка не впливає на продуктивність усієї програми.
  • Постійний моніторинг. Цей етап забезпечує загальну ефективність програми.
  • Постійний зворотній зв’язок. Проблеми та продуктивність, як повідомляють кінцеві користувачі, аналізуються.
  • Безперервні операції. Дозволяє розробникам створювати кращі версії продукту та швидко виявляти проблеми.

Які переваги DevOps?

  • Швидша та якісніша доставка товару
  • Більша масштабованість
  • Швидке вирішення проблеми
  • Краще використання ресурсів
  10 найкращих зелених фонів для трансляцій і зустрічей

Назвіть деякі 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 branch <branch-name>
git checkout <name-of-your-branch>
git add <file>
git commit -m "commit message"
git push <remote> <branch-name>
git pull <remote>

Поясніть різницю між Git merge і Git rebase

Команда Git merge дозволяє розробникам об’єднувати різні гілки Git, у той час як журнали комітів відповідних гілок залишаються недоторканими.

Команда Git rebase дозволяє розробникам інтегрувати зміни з однієї гілки в іншу, а журнали змінюються після завершення процесу.

Поясніть різницю між Git fetch і Git pull

Git fetch повідомляє git отримати/перевірити останні метадані з оригіналу. Однак він не передає файли, а лише перевіряє.

Git pull перевіряє та переносить зміни з віддаленого сховища до локального проекту.

Що таке конфлікт злиття?

Конфлікти злиття виникають, коли ви об’єднуєте дві гілки з конкуруючими комітами. Конфлікти злиття зазвичай виникають, коли різні розробники змінюють той самий рядок коду чи файл.

Що таке контроль версій і які існують типи?

Контроль версій (контроль джерела) — це процес відстеження та керування змінами програмного коду.

Це різні типи засобів керування версіями;

  • Централізовано – мати єдину «центральну» копію вихідного коду на сервері, і всі зміни фіксуються в «центральній» копії. Subversion (SVN) і Perforce є прикладами централізованого керування версіями.
  • Розподілений (DVCS) — не має центрального сервера для зберігання всіх файлів проекту. Git і Mercurial є прикладами DVCS.
  Чи можу я дивитися Netflix Japan в Америці?

Які переваги використання контролю версій?

  • Допомагає розробникам зберегти ефективність і гнучкість
  • Надає повний журнал усіх змін у проекті/файлі
  • Покращення відстеження
  • Допомагає керувати злиттям і розгалуженням
  • Дозволяє співпрацювати

Що таке розгалуження?

Розгалуження стосується створення окремої/нової версії основного сховища. Гілки дозволяють вам працювати над різними частинами проекту, не впливаючи на основну гілку.

Що таке стратегії розгалуження?

Стратегії об’єднання — це методології, які використовують групи розробників програмного забезпечення під час написання, об’єднання та розгортання коду. Такий підхід гарантує, що баги та помилки будуть виправлені на етапі гілки, перш ніж вони будуть об’єднані з основним проектом.

Що таке автоматизоване тестування та як автоматизувати тестування в DevOps?

Автоматизоване тестування — це техніка автоматичного перегляду та перевірки коду. Тестування автоматизації виконується, щоб перевірити, чи відповідають стандартам якості функціональність (бізнес-логіка), стиль коду та досвід користувача.

Тестування автоматизації виконується за допомогою таких інструментів, як Selenium і Katalon.

Що таке Jenkinsfile?

Jenkinsfile — це текстовий файл, що містить визначення конвеєра Jenkins. Jenkinsfile перевіряється в репозиторії керування джерелами. Деякі з його застосувань: він дозволяє контрольний слід для конвеєра, дозволяє перегляд коду та ітерацію в конвеєрі та дає єдине джерело правди в конвеєрі.

Поясніть архітектуру в Jenkins

Дженкінс має архітектуру господар-підлеглий. Це означає, що багато «рабів» працюють на одного «господаря». Таким чином, Jenkins Distributed Build може запускати ідентичні тести в різних середовищах, результати збираються та об’єднуються на головному вузлі для моніторингу.

Які найпопулярніші плагіни Jenkins?

  • Плагін Blue Ocean для Jenkins
  • Плагін Mailer для Jenkins
  • Плагін Git для Jenkins
  • Плагін Jira для Jenkins
  • Плагін Docker для Jenkins
  • Плагін інтеграції Maven для Jenkins
  • Плагін Kubernetes для Jenkins
  • Плагін SonarQube для Jenkins
  • Плагін Amazon EC2 для Jenkins

Що таке Selenium IDE?

Selenium IDE — це інструмент, який записує взаємодії браузера для тестових випадків. Ви можете встановлювати контрольні точки, а також перевіряти та призупиняти змінні, коли виникають помилки, за допомогою інтегрованого середовища розробки Selenium.

Які різні компоненти селену?

Які існують різні типи тестування в Selenium?

  • Наскрізне тестування
  • Регресійне тестування
  • Тестування системи
  • Тестування продуктивності
  • Тестування на сумісність

Які винятки існують у Selenium?

  • ElementNotSelectableException
  • NoAlertPresentException
  • InvalidSelectorException
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • TimeoutException
  • ElementNotVisibleException

Що таке driver.close() і driver.quit() у WebDriver?

Команда driver.close() закриває вікно браузера у фокусі. Якщо відкрито лише один браузер, він закриває весь сеанс браузера.

Команда driver.quit() закриває весь сеанс браузера зі спливаючими вікнами, вкладками та вікнами.

Що таке Dockerfile?

Dockerfile — це текстовий документ із усіма командами, які користувач може використовувати в командному рядку для складання зображення.

Відмінності між зображеннями докерів і контейнером докерів

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

  Як використовувати інструмент відкладення в Outlook Online

Контейнер докерів — це вікно, яке запускає шаблони зображень докерів.

Поясніть архітектуру Docker

Docker використовує архітектуру клієнт-сервер і включає клієнт Docker, хост Docker і реєстр Docker.

Клієнт Docker використовує REST API та команди для зв’язку з сервером (Docker Daemon).

Клієнт Docker використовує CLI для виконання цих команд

docker build

docker pull

docker run
  • Docker Host забезпечує середовище для виконання та запуску програм. Складається з демона докерів, сховища, зображень, контейнерів і мереж.
  • Docker Registry керує та зберігає зображення Docker.

Хмарні платформи, які підтримують докер

Платформи, які підтримують докер-хостинг:

Що таке Нагіос?

Nagios — це інструмент, який контролює всю ІТ-інфраструктуру, щоб переконатися, що бізнес-процеси, системи, служби та програми функціонують належним чином.

Як працює 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 — це програмне забезпечення для аналізу потокових даних, яке дозволяє користувачам завчасно вирішувати аномальну поведінку, збої та загрози безпеці, перш ніж переривати бізнес-операції. Цей інструмент комерційного рівня пропонує розширене розуміння мережевого трафіку та ІТ-інфраструктури.

Змінні, які впливають на успадкування та рекурсію в Nagios

  • Ім’я — «ім’я» шаблону, яке може успадковувати змінні/властивості об’єкта.
  • Використовувати – вкажіть назву об’єкта шаблону, від якого ви хочете успадкувати змінні/властивості.
  • Register вказує, чи ім’я об’єкта шаблону має бути «зареєстровано» у Nagios.

Що таке маріонетка?

Puppet — це інструмент із відкритим вихідним кодом для керування конфігурацією та розгортання програмного забезпечення.

Що таке маріонетковий маніфест?

Маніфест Puppet — це файл, який містить мову конфігурації Puppet, яка описує, як потрібно налаштовувати ресурси.

Що таке код Puppet?

Маріонетковий код є декларативним кодом, тобто ви описуєте його, використовуючи бажаний стан вашої системи, а не кроки, необхідні для досягнення цього стану.

Що таке Шеф?

Chef — це інструмент керування конфігурацією, який перетворює інфраструктуру на код. Цей інструмент зосереджений на написанні коду замість ручного процесу.

Як працює Шеф?

Робота шеф-кухаря починається, коли системні адміністратори або розробники визначають завдання, які потрібно автоматизувати. Кулінарні книги та рецепти (невеликі програми, написані доменно-орієнтованою мовою) потім збираються та тестуються за допомогою різних інструментів, таких як Test Kitchen, ChefSpec і Foodcritic.

Якщо кулінарні книги та рецепти працюють належним чином, вони розгортаються на сервері Chef за допомогою інструментів командного рядка knife і chef. Процес розгортання Chef включає сервер Chef, робочі станції та вузли. Ви можете вибрати з понад 3000 шаблонів кулінарних книг і налаштувати їх відповідно до своїх потреб. Потім шеф-кухар подбає про решту роботи.

Резюме

За даними Glassdoor, середня зарплата інженера DevOps становить $104281 на рік у США. Незважаючи на те, що DevOps — це нова кар’єра, тепер ми бачимо більше компаній, які наймають на цю посаду та публікують різні курси, щоб озброїти професіоналів основними навичками. Вище наведено деякі запитання, з якими ви, ймовірно, зіткнетеся під час інтерв’ю DevOps.

Ви також можете ознайомитися з хорошими онлайн-курсами, щоб навчитися DevOps.