top of page

180+ питань на співбесіду DevOps для Junior, Middle, Senior



Що питають на співбесіді у DevOps інженерів? Залежно від специфіки роботи компанії, питання різняться, проте є спільні теми. Ми зібрали великий перелік поширених питань для спеціалістів різних ґрейдів — Junior, Middle, Senior. Він буде корисним для підготовки до співбесіди, щоби виявити прогалини у знаннях. Антон Кириленко, DevOps Team Lead Quarks, партнерській компанії Genesis, поділився тим, як проводить співбесіди, оцінює знання кандидатів та на що звертає увагу.





Питання для Junior



Антон Кириленко, DevOps Team Lead Quarks:


У співбесідах на посаду DevOps-інженера перевірка знань Linux є одним з перших тестових завдань. Операційна система Linux є складною та розширеною, і знання її основних аспектів є важливими для ефективної роботи в області DevOps. Розуміння структури операційної системи, процесів, файлової системи, мережевих налаштувань та системних ресурсів допомагає здійснювати управління системою та вирішувати проблеми, що виникають. Недостатні знання Linux можуть призвести до серйозних помилок, які негативно позначаються на роботі інфраструктурного середовища.


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


Також кандидатів рівня «джуніор» питають про моніторинг, з яким ймовірно буде повʼязано багато завдань на перших етапах, що також дає змогу ближче познайомитися з інфраструктурою. Одне з найчастіших питань, яке ставлять початківцям: «Як ви розумієте процес моніторингу в інфраструктурі? Що потрібно моніторити, і які інструменти ви використовували для збору та аналізу метрик?» Це питання дозволяє оцінити рівень знань кандидата щодо моніторингових процесів, їх значення в DevOps-практиках та його знайомство з різними інструментами, які використовуються для збору та аналізу метрик в інфраструктурі.



Незалежно від рівня досвіду, я спілкуюся з кандидатами через практичні кейси, враховуючи їхній власний досвід. Якщо у джуніора відсутній комерційний досвід, ймовірно, він навчався на власному pet-проєкті, наприклад, WordPress з базою даних. Якщо він використовував Docker Compose для розгортання, то можна запитати його про його знання Docker або Compose.




Загальні питання


1. Що таке DevOps?

2. Що таке NS сервер? Для чого потрібний?

3. Чим відрізняється віртуалізація від контейнеризації?

4. Який алгоритм твоїх дій при виникненні проблем, наприклад, на сервері закінчується місце на диску?

5. Що таке CI/CD? Які рішення знаєш?

6. Що таке VCS?

7. Як вивести exit code виконання попередньої команди?

8. Навіщо потрібна утиліта sysctl?

9. Як додати нового користувача в систему?

10. Як додати користувача в групу?

11. В чому різниця між adduser та useradd?

12. Чому при виводі команди ls ми не бачимо весь зміст директорії?

13. Як працюють permissions в Linux? Що дають 646 права?

14. Які ви знаєте стандартні pipes в Linux? Як передати дані з одного процесу в інший з допомогою командного рядка?

15. Якщо в пустій директорії виконати команду Is>a.txt 2>b.txt, що буде в файлі a.txt та чому?

16. Що таке іноди та навіщо вони потрібні?

17. Чи можете ви пояснити концепцію управління процесами в Linux? Як запускати, зупиняти та контролювати процеси?

18. Як дізнатися IP-адреси свого сервера (всіх інтерфейсів)?

19. Як забрати root-доступ на сервер та залишити тільки логін по SSH-ключу користувачам?

20. У чому різниця між командами chmod і chown?

21. Поясніть різницю між файлами /etc/passwd і /etc/shadow?

22. Яке призначення команди sudo в Linux?

23. Як вивести останні 20 рядків файлу?

24. Як надати та відкликати привілеї sudo для користувача?

25. Чи можете пояснити процес завантаження Linux? Що відбувається з моменту ввімкнення системи до появи запиту входу?

26. Які файлові системи Linux знаєте? Які основні розбіжності вони мають?

27. Чому важливо мати ефективні системи моніторингу?

28. З якими сервісами моніторингу ви працювали?

29. Поясніть різницю між push і pull моделями моніторингу?

30. Назвіть кілька популярних засобів моніторингу та опишіть їхні функції?

31. Як би ви налаштували базовий моніторинг сервера для інфраструктури на базі Linux? Які показники та ресурси ви б відстежували та які інструменти використовували б?

32. Яка мета моніторингу логів? Як би ви збирали та аналізували логи з кількох серверів централізовано?

33. Як би ви налаштували моніторинг контейнерних середовищ, таких як Docker? Які інструменти чи техніки ви б використали?

34. Як моніторити базу даних?

35. Як можна відновити втрачену гілку в Git?

36. Як зробити коміт з пушем?

37. Як створити та видалити нову гілку?

38. Які плюси та мінуси baremetal та cloud рішень?

39. На який порт приходить ping?

40. Поясніть роль IP-адрес і портів у мережі? Як вони сприяють спілкуванню між різними системами?

41. Яка різниця між протоколами TCP і UDP? У яких сценаріях ви б використали кожен із них?

42. Поясніть, як DNS перетворює ім'я домену в IP-адресу?

43. Що таке балансування навантаження і чому це важливо для вебсерверів?

44. Які знаєте алгоритми балансування навантаження? Опишіть, як вони розподіляють трафік.

45. Опишіть концепцію зворотного проксі. Які переваги він надає в інфраструктурі вебсервера?

46. Як може SSL (TLS) захистити вебсервер? Опишіть етапи отримання та налаштування сертифіката SSL.

47. Що таке кешування і навіщо воно треба?

48. Які типи DNS записів знаєте?

49. Для чого потрібна SPF в TXT ?

50. Чи можна записати IP-адресу в CNAME?

51. Що таке DMARС та DKIM? Де використовуються?

52. Що таке iptables?

53. Як вийти з vim?

54. Що таке sysctl?

55. Як вимкнути swap файл? Яка файлова система у swap?

56. Що таке OOM?

57. Що таке tty?

58. Які знаєте типи баз даних?

59. Навіщо потрібна реплікація?

60. Навіщо потрібен бекап?

61. Перший рядок dockerfile, що там?

62. Що таке cronjob? Розшифруйте, */5 4 * * * ?

63. Як запустити процес Linux в фоні? Які є варіанти рішень?

64. Що таке FQDN?

65. Як змінити hostname?

66. Як вивести в консолі змінні оточення? Як додати нову змінну?

67. Я додав свій відкритий SSH-ключ у authorized_keys, але я все одно отримую запит на введення пароля. Що може бути не так?

68. Яка різниця між жорсткими посиланнями та символічними посиланнями?




Питання для Middle/Senior



Антон Кириленко, DevOps Team Lead Quarks:


На співбесіді з Middle DevOps Engineer часто ставлять питання про CI/CD, Kubernetes, безпеку та налаштування інфраструктури. Основна мета полягає в оцінці рівня умінь кандидата у роботі з цими інструментами. Для кваліфікованого DevOps Engineer важливо мати розуміння тонких налаштувань технологій, з якими вони працювали. Відсутність таких знань може свідчити про поверхневе володіння технологією і недостатню експертизу в цій області.


Для Middle DevOps Engineer також важливо вміти аргументувати свій вибір рішень та інструментів, пояснювати їхні переваги та недоліки. Якщо кандидат використовує застарілі рішення, він повинен пояснити причини, чому не було можливості або бажання змінити їх.


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


У співбесідах длящ рівня Senior часто обговорюють кейси. Інтерв'юерів цікавить досвід роботи з високими навантаженнями, профільними інструментами, захистом від DDoS-атак, масштабуванням баз даних, резервним копіюванням, процесами пошуку вразливостей застосунків та інфраструктури, а також використанням георозподілених практик масштабування. Кандидат рівня Senior зазвичай має здатність спроєктувати архітектуру під проєкт з нуля, та розуміння її розгортання як в cloud, так і на self-hosted рішеннях.





Загальні питання


69. Поясніть концепцію незмінної інфраструктури та її переваги в середовищі DevOps?

70. Що таке Terraform та Ansible? В чому різниця між ними?

71. Які інструменти чи методи ви використовували для безпечного зберігання та доступу до конфіденційної інформації?

72. Як ви підходите до моніторингу та оптимізації продуктивності вебзастосунку?

73. Які інструменти використовуєте для внутрішнього та зовнішнього сканування інфраструктури на безпеку?

74. Поясніть концепцію безсерверних обчислень? Як це пов’язано з практиками DevOps і які переваги має?

75. Які сервіси для управління чергами знаєте?

76. Чим відрізняється Kafka від RabbitMQ?

77. Для чого використовувати Redis?

78. Що таке map в nginx?

79. В якому порядку зчитуються локейшени в конфігураційному файлі nginx? Які модифікатори локейшенів знаєте та що вони означають?

80. Чи можна мати кілька віртуальних хостів HTTPS, які мають спільну IP-адресу?

81. Як заблокувати доступ з країни?

82. Як дізнатися, який процес висить на порту?

83. Як в Ansible виконати таску, на випадок невдачі попередньої?

84. Навіщо потрібен Terragrunt?

85. Як прискорити деплой Terraform, якщо у вас багато ресурсів?

86. Як в Terraform зробити ресурс не видимим?

87. Що зробить команда sysctl -w net.core.somaxconn=65535?

88. Які типи system units знаєте?

89. Як можна запустити задачу за розкладом без використання cron?

90. Запропонуйте метод масштабування бази даних?

91. Які знаєте інструменти та рішення для балансування запитів на бази даних?

92. Назвіть способи, як підняти тестове оточення для розробників?

93. Що таке мультистейдж білди?

94. Назвіть методи розбалансування трафіку. Наприклад, як 5% трафіка направити на сервер upstream, а 95% на інший?

95. Як лімітувати кількість запитів в секунду з одного і того ж IP?



CI/CD


96. У чому різниця між Continuous Integration, Continuous Delivery та Continuous Deployment?

97. Що таке GitHub Actions?

98. Як у Git повернути коміт, який уже був надісланий і оприлюднений? Останні 5?

99. Які переваги та недоліки автоматизованого тестування в пайплайні CI/CD? Які типи тестів ви включили б і як би ви забезпечили охоплення тестами?

100. Jenkins Pipeline Shared Libraries — що це?

101. Чи можете ви пояснити концепцію blue-green deployment? Чим він відрізняється від canary deployment та які переваги дає?

102. Як керувати версіями в конвеєрі CI/CD? Опишіть стратегії та прийоми для повернення до попередньої версії програми.

103. Як ви відстежуєте та аналізуєте продуктивність конвеєра CI/CD? Опишіть показники та інструменти, які ви б використовували для виявлення вузьких місць і оптимізації ефективності конвеєра?



Kubernetes


104. Чи можете ви пояснити концепцію Kubernetes та її роль в оркестрації контейнерів? 105. Які основні переваги використання Kubernetes? Які є конкуренти?

106. Опишіть різні методи розгортання програм і використовувані відповідні ресурси Kubernetes.

107. Чи можете ви описати концепцію масштабування в Kubernetes?

108. Як би ви горизонтально масштабували розгортання, щоби впоратися зі збільшеним трафіком або робочим навантаженням?

109. Що таке Kubernetes ConfigMaps і секрети? Як би ви використовували їх для керування конфігурацією програми та конфіденційними даними в середовищі Kubernetes?

110. Чи можете ви пояснити концепцію Kubernetes StatefulSet? Чим вона відрізняється від розгортання та в яких сценаріях ви б його використовували?

111. Як би ви відстежували та вирішували проблеми з кластером Kubernetes? Опишіть ключові показники та інструменти, які ви б використовували для моніторингу стану кластера та діагностики проблем.

112. Чи можете ви обговорити деякі загальні стратегії керування сховищем програм у Kubernetes? Поясніть поняття постійних обсягів (PV) і постійних заявок на обсяг (PVC).

113. OPA: як додати свою перевірку на об'єкт K8s?

114. Які поля є обов’язковими для будь-якого об’єкта Kubernetes?

115. Що таке helm?

116. Що таке cert-manager? Навіщо потрібен?

117. Які об’єкти Kubernetes ви зазвичай використовуєте під час розгортання програм у K8s?

118. Скільки мінімально контейнерів може бути в поді?

119. Які дії чи операції ви вважаєте найкращими практиками, коли йдеться про Kubernetes?

120. Коротко опишіть на високому рівні, що відбувається, коли ви запускаєте kubect run nginx --image=nginx.

121. Основні компоненти K8s?

122. Які типи проб в K8s знаєте? Які є види перевірок для них?

123. Ви керуєте кількома кластерами Kubernetes. Як швидко перемикатися між кластерами за допомогою kubectl?

124. Як запобігти надмірному використанню пам’яті у кластері Kubernetes і таким проблемам, як витік даних та OOM?

125. Чи є у вас досвід розгортання кластера Kubernetes? Якщо так, чи можете ви описати процес на високому рівні?

126. Що станеться із запущеними подами, якщо зупинити Kubelet на робочих вузлах?

127. Що означає фаза «Pending»? Чи можна запустити pod, якщо він в статусі Pending?

128. Як в Deployment замінити CMD або ENTRYPOINT?

129. Що таке containerd?

130. Як моніторити взаємодію між мікросервісами (latency та кількість успішних запитів)?

131. Що таке Service Mesh та які в нього переваги та недоліки?

132. Що таке SLO SLI SLA? Які рішення для kubernetes знаєте?

133. Після запуску kubectl run database --image mongo ви побачите статус «CrashLoopBackOff». Що могло піти не так, і що ви робите для перевірки?

134. Поясніть призначення наступних рядків:

livenessProbe:
  exec:
    command:
    - cat
    - /appStatus
  initialDelaySeconds: 10
  periodSeconds: 5

135. Усередині Pod є два контейнери, які називаються «some-pod». Що станеться, якщо запустити kubectl logs some-pod?

136. Що таке CDN? Які переваги він дає?



Docker


137. Опишіть докладно, що відбувається, коли ви запускаєте docker pull image:tag?

138. Як би ви перенесли дані з одного контейнера в інший?

139. Як видалити старі, непрацюючі контейнери?

140. Як ви керуєте постійним сховищем у Docker?

141. Поясніть, що таке Docker Compose, і для чого він використовується?

142. Як зробити пустий образ без ОС?

143. Які варіанти самовідновлення доступні для контейнерів Docker?

144. З якими політиками перезапуску ви знайомі?

145. Як створити докер-образ на основі іншого образу?

146. Як мінімізувати докер-файл, щоб образ важив менше?



Security


147. Що таке DevSecOps? Назвіть ключові принципи?

148. Що таке PCI DSS?

149. Що означає концепція «Zero Trust»?

150. Поясніть принципи найменших привілеїв?

151. Що таке Certificate Authority?

152. Поясніть, як працює RBAC (Role-based Access Control)?

153. Чим RBAC відрізняється від ABAC?

154. Що таке файли cookie? Поясніть автентифікацію на основі файлів cookie.

155. Що таке SSH, як це працює і яка його роль?

156. Поясніть, що таке симетричне шифрування?

157. Що таке IPsec?

158. Що таке «обмін ключами» (або «встановлення ключів») у криптографії?

159. Симетричне шифрування використовує відкритий чи закритий ключі? Як використовується закритий ключ?

160. Які інструменти для сканування на вразливості системи можете назвати?

161. Що таке хешування?

162. Чим хешування відрізняється від шифрування?

163. Яким чином хеші є частиною SSH?

164. Як ви визначаєте вразливі місця в системі?

165. Що таке WAF?

166. Що таке DDoS-атака? Як можна захиститися?

167. Що таке сканування портів? Коли воно використовується?

168. Яка різниця між асинхронним і синхронним шифруванням?

169. Що таке SSL-шифрування?



Кейси


170. Уявіть, що ви працюєте над проєктом, який вимагає безперебійного й автоматизованого розгортання мікросервісів у кількох середовищах. Як би ви розробили та реалізували конвеєр CI/CD?

171. Припустімо, ви керуєте складною та розподіленою програмою з поєднанням локальної та хмарної інфраструктури. Яке б ви запровадили рішення для моніторингу інфраструктури?

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

173. Уявіть, що ви працюєте над проєктом із географічно розподіленою командою. Як би ви запровадили інструменти та методи для безперебійної координації та обміну інформацією?

174. Уявіть, що вам доручено перенести монолітну програму на архітектуру мікросервісів. Як би ви підійшли до процесу міграції, зокрема до руйнування моноліту, контейнеризації мікросервісів і керування зв’язками?

175. Припустімо, що в проєкті швидко зростає база користувачів. Опишіть методи моніторингу для виявлення вузьких місць, покращення часу відгуку та оптимізації використання ресурсів?

176. Уявіть, що ви працюєте над вебзастосунком із високим трафіком, який значною мірою залежить від запитів до бази даних. Які стратегії ви б використали для оптимізації продуктивності бази даних?

177. Припустімо, вам потрібно розробити високодоступну та масштабовану архітектуру бази даних для глобальної програми з користувачами в різних географічних регіонах. Як би ви підійшли до реплікації та синхронізації бази даних?

178. Припустімо, у вас є кілька мікросервісів, яким потрібен доступ до однієї бази даних. Як би ви могли забезпечити ізоляцію даних і запобігти конфліктам між мікросервісами?

179. Критичний запит до бази даних виконується повільно, що впливає на загальну продуктивність програми. Як би ви діагностували причину? Запропонуйте кроки та інструменти для оптимізації.

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

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


Підписуйся на нашу розсилку та отримуй корисні матеріали першим!

Надаючи вашу електронну адресу, ви погоджуєтесь з нашою Політикою приватності.

Дякуємо, що підписалися.

image-from-rawpixel-id-5996033-png.png
bottom of page