Interview

Interview

High Availability (HA) та Disaster Recovery (DR) - це дві стратегії, які використовуються в процесному менеджменті для забезпеч…

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

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

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


Scrum та Kanban - це дві різні методології управління проектами, які допомагають забезпечити ефективну роботу команди. Ось декілька відмінностей між ними:

  1. Керованість: Scrum - це ітераційний метод, у якому робочі ітерації відомі як спринти, а Kanban - це потоковий метод, в якому завдання пересуваються по дошці.
  2. Розподіл завдань: Scrum розподіляє завдання відповідно до пріоритетів в Product Backlog, тоді як в Kanban кожен член команди працює з своїм власним переліком завдань.
  3. Методології планування: Scrum використовує такі методології планування, як Planning Poker та Sprint Planning, тоді як Kanban може використовувати методології, такі як Cumulative Flow Diagram (CFD).
  4. Часовий цикл: Scrum спринти тривають від 1 до 4 тижнів, тоді як в Kanban немає жорсткої тривалості кожної задачі.
  5. Ролі в команді: Scrum має чітко визначені ролі, такі як Scrum Master, Product Owner та Development Team, тоді як Kanban не має жорсткої структури ролей.

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


  1. Що таке Linux-система та чим вона відрізняється від інших операційних систем?
  2. Які різновиди файлових систем підтримуються в Linux? Яка файлова система рекомендується для використання в яких випадках?
  3. Які команди використовуються для управління службами (сервісами) в Linux?
  4. Які різновиди мережевих налаштувань підтримуються в Linux? Як ви можете перевірити мережеві налаштування на сервері Linux?
  5. Як ви можете налаштувати безпеку на сервері Linux? Які заходи безпеки можна застосувати для захисту від кібератак?
  6. Як ви можете стежити за системними ресурсами (CPU, RAM, I/O) на сервері Linux? Які інструменти ви використовуєте для аналізу производительности?
  7. Які різновиди забезпечення відмовості ви знаєте в Linux? Як ви можете налаштувати клонування диска або резервне копіювання в Linux?
  8. Як ви можете налаштувати доступ до файлів і директорій на сервері Linux для різних користувачів та груп?
  9. Які кроки ви застосовуєте для налаштування шлюзу за замовчуванням на сервері Linux? Як ви можете перевірити поточний шлюз за замовчуванням?
  10. Які інструменти ви використовуєте для віддаленого управління сервером Linux, якщо немає доступу до фізичного сервера?


ACL - це механізм контролю доступу, який дозволяє встановити більш детальні права доступу до файлів та директорій, ніж ті, що можна встановити за допомогою стандартних прав доступу (користувач, група, всі користувачі). Наприклад, з ACL можна надати окремим користувачам або групам доступ до конкретних файлів та директорій з різними рівнями дозволів, що значно збільшує гнучкість та точність управління доступом до ресурсів.

Команда setfacl дозволяє встановити ACL для файлів та директорій з різними параметрами, такими як користувачі, групи, права доступу тощо


Існує декілька стратегій для випуску (release) програмного забезпечення, серед яких можуть бути використані такі:

  1. Big Bang Release - це стратегія випуску, при якій весь код розгортається та випускається в продакшен одним великим релізом. Ця стратегія зазвичай використовується для менших проектів, але може бути небезпечною для великих проектів, оскільки може призвести до проблем зі сумісністю та незручностей при пошуку помилок.
  2. Rolling Release - це стратегія випуску, при якій нові функції та виправлення помилок випускаються в продакшен, як тільки вони готові. Ця стратегія зазвичай використовується в Linux-дистрибутивах та інших продуктах, що мають часті випуски.
  3. Blue-Green Release - ця стратегія передбачає наявність двох окремих середовищ для розгортання продукту, що зазвичай позначаються кольорами - зеленим (green) та синім (blue). Версія програмного забезпечення, яка вже працює в продакшені, зазвичай позначається зеленим кольором. Нова версія програмного забезпечення, яку потрібно випустити, зазвичай розгортається в середовищі, позначеному синім кольором. Після успішного тестування нової версії, вона стає зеленою та починає використовуватися в продакшені, а попередня версія переходить в середовище, позначене синім кольором.
  4. Canary Release - ця стратегія випуску передбачає випуск нової версії програмного забезпечення в обмеженій кількості середовищ, щоб протестувати її на певному підмножині користувачів, перед тим, як повністю випустити її в продакшен. Це дозволяє виявит

В контексті систем контролю версій, таких як Git, існує декілька стратегій branching та release, які можуть бути використані при розробці програмного забезпечення. Ось деякі з них:

  1. Git Flow - це стратегія branching, яка розроблена спеціально для Git. За цією стратегією, гілка master містить тільки стабільні релізи, тоді як гілка develop містить робочу версію програмного забезпечення. Крім цього, використовуються окремі гілки для фіксування помилок (hotfix), релізів та функціональної розробки.
  2. GitHub Flow - це більш проста стратегія, в якій використовується одна головна гілка (зазвичай master або main) та відокремлені гілки для кожної нової функції або зміни. Кожен pull request на гілку master або main проходить через тестування та перевірку, перш ніж може бути злитий в головну гілку.
  3. Trunk-Based Development - ця стратегія використовує одну головну гілку для всієї розробки. Розробники працюють на відокремлених гілках для функціональної розробки та змін, після чого злиття з головною гілкою відбувається швидко та часто.
  4. Feature Branching - ця стратегія використовує окремі гілки для кожної нової функції або зміни. Кожна гілка може бути відокремлена або базуватися на попередніх гілках. Коли розробка на гілці завершена, вона зливається з головною гілкою.


ключові концепції, пов'язані з обчисленням в хмарному середовищі:

  1. Інфраструктура як сервіс (IaaS) - це підхід до хмарного обчислення, при якому користувачам надаються віртуальні машини, обчислювальні ресурси та мережеві ресурси через інтернет. Користувачі можуть контролювати ці ресурси та інсталювати свій власний програмний забезпечення на віртуальні машини.
  2. Платформа як сервіс (PaaS) - це підхід до хмарного обчислення, при якому користувачам надаються платформи та сервіси, які дозволяють розробникам розгортати свої програми та додатки безпосередньо в хмарі. Користувачі не повинні контролювати обчислювальні ресурси та інсталювати програмне забезпечення на віртуальні машини, а замість цього вони можуть використовувати сервіси, що надаються хмарою.
  3. Програмне забезпечення як сервіс (SaaS) - це підхід до хмарного обчислення, при якому користувачам надаються програми та додатки через інтернет. Користувачі можуть використовувати ці додатки, не встановлюючи їх на свої комп'ютери, і не повинні забезпечувати інфраструктуру для їх функціонування.
  4. Гнучкі обчислювальні ресурси - це можливість змінювати обчислювальні ресурси (такі як CPU, RAM та дисковий простір), що використовуються для хмарних послуг, в залежності від потреб користувачів. Корист

PowerShell та Bash є оболонками командної строки, але вони мають деякі відмінності:

  1. Синтаксис: PowerShell має свій власний синтаксис, який відрізняється від Bash та інших оболонок командної строки. PowerShell використовує командлети, що починаються з допоміжного слова "Get", "Set", "New" або "Remove", що дозволяє легко зрозуміти, що робить команда.
  2. Об'єктно-орієнтований підхід: PowerShell базується на концепції об'єктів, яка відрізняє його від Bash та інших оболонок командної строки. Це означає, що команди PowerShell повертають об'єкти, які можна обробляти іншими командами.
  3. Можливості роботи з Windows: PowerShell був спеціально розроблений для роботи з Windows і має додаткові функції, які дозволяють легко управляти Windows-серверами та іншими Windows-заснованими продуктами.
  4. Платформозалежність: Bash є стандартною оболонкою командної строки в більшості Unix-подібних операційних системах, в той час як PowerShell є стандартом на платформі Windows. Це означає, що скрипти, написані для Bash, можуть не працювати на Windows, і навпаки, скрипти PowerShell можуть не працювати на Unix-подібних операційних системах.
  5. Додаткові можливості: PowerShell має додаткові функції, такі як підтримка виконання скриптів з підтримкою .NET Framework, підтримка взаємодії з Active Directory та Windows Management Instrumentation (WMI), що робить його більш потужним і гнучким у порівнянні з Bash та іншими оболонками командної строки.



Report Page