- Опишіть архітектуру ядра Linux.
- Що таке ядро і яке його призначення?
- Опишіть загальні частини файлової системи Unix/Linux, архітектуру файлової системи.
- У чому різниця між RedHat і Debian?
- У чому різниця між /proc and /sys?
- Ситуація: показує, що на диску зайнято 50% місця, а створити файл навіть під root користувачем не можемо. У чому проблема?
- Ми видалили файл, який відкрив застосунок. Як нам його відновити?
- Як знайти PID процесу, його стартові параметри?
- Як перевірити, чи відкритий порт на віддаленому хості, локальному хості?
- Як шукати файл за його вмістом?
- Що таке SSH, як організувати доступ на сервер без пароля або з певних хостів? Як обмежити доступні для виконання команди?
- Як перевірити спожиті ресурси під час сеансу SSH?
- Що означає дозвіл на файл 755?
- Що таке SELinux і навіщо він потрібен?
- Як визначити PCI-пристрій у системі, наприклад RAID controller?
- Як перейменувати пристрій, наприклад мережеву карту чи диск?
- Що таке LVM? Які знаєте приклади використання?
- Що таке root reserved space?
- Що таке exit code та як його дізнатися?
- Чому вивід df -h показує, що на диску зайнято мало місця, але система не дає записати файл із повідомленням no space left on device?
- У чому різниця між command1 & command2 та command1 && command2, а також command1 && command2 || command3?
- З мережі різко зріс вихідний трафік на 25-й порт. Як, маючи доступ на гейтвей, виявити шкідника з внутрішньої мережі?
- Як затюнити параметри Linux Kernel?
- Що таке ulimits?
- У чому різниця між символічними та hard links?
- Що таке фрагментація ext3 and ext4?
- Навіщо файлові системи ext* резервують 5% місця?
- Як збільшити розмір файлової системи?
- Чи можемо ми зменшити розмір файлової системи?
- Що таке chroot і навіщо він потрібний?
- У нас є Linux box з 2 Гб оперативної пам’яті та Java-застосунок, який намагається виділити 4 Гб під час запуску. Чи вдасться це?
- Є програма, яка читає файл, який користувач намагається видалити. Що трапиться? Чи можна видалити цей файл? Чи можна відновити цей файл?
- Які механізми створення процесів у Linux ви знаєте?
- Порівняйте systemd та init system.
- У вас є папка з великою кількістю файлів, і ви хочете видалити всі файли з іменами, що починаються на A (велика літера). Але команда rm -f A* видає Argument list too long. Як можна видалити ці файли?
- Ви починаєте видаляти файли першим методом з попереднього питання, але кожен rm запитує підтвердження. Це дуже довго. Як можна прискорити цю операцію?
- Розкажіть про модель OSI. Опишіть функції та призначення кожного рівня.
- Які мережеві топології ви знаєте? Опишіть різницю між ними.
- Навіщо потрібна IP-адреса, якщо MAC-адреса унікальна? Хіба ми не можемо спілкуватися тільки за MAC-адресою?
- У чому різниця між концентратором і комутатором L2 у мережах Ethernet?
- Що таке Vlan і навіщо існує поділ на віртуальні локальні мережі?
- Який номер порту використовують для PING-комунікації?
- Що таке сеанс зв’язку? Який алгоритм використовує TCP для доставки?
- У чому основна відмінність між TCP і UDP?
- Навіщо нам маршрутизатор за замовчуванням?
- Як хост вирішує DNS за замовчуванням?
- Комп’ютер почав отримувати IP-адресу з іншої мережі (є підозра, що в мережі працює інший DHCP-сервер): як його знайти і від’єднати? Які є методи захисту від такої проблеми?
- Ми будемо мігрувати сайт на нову IP-адресу. Як зробити, щоб користувачі цього практично не помітили?
- Що таке socket?
- Як дізнатися, які віддалені хости під’єднуються до хосту через порт 8888? (за допомогою команд і не використовуючи /proc чи /sys).
- Ми маємо кілька мережевих карт. Як збільшити пропускну спроможність сервера?
- Як перевірити відкриті порти на віддаленому сервері без команди Netcat чи Nmap Linux?
- У чому переваги Kubernetes як платформи?
- Що таке control plane та з яких компонентів складається?
- Які CNI ви використовували та чим вони відрізняються?
- Чим відрізняється managed Kubernetes від self-deployed?
- Яким чином можна контролювати розміщення подів у кластері? (taints/tolerations, affinities, topologies etc)
- Скейлінг кластеру. Cluster autoscaler vs HPA vs VPA? Як зробити zero-downtime node decommission/cluster upgrade? PDB? Lifecycle hooks?
- Які існують способи для зовнішнього доступу до кластеру? ingress, node port, port-forward тощо.
- З яким PID запускається процес у контейнері?
- Що краще використовувати для ізоляції оточення — Vagrant чи Docker?
- Який інструмент оркестрування контейнерів використовували? (Swarm, Kubernetes, Openshift, Rancher тощо.)
- Що відбувається в Kubernetes після запуску kubectl (API, ReplicaSet Controller, storage back-end, scheduler, kubelet, worker node, pod)?
- Яка різниця між pod та контейнером у K8s?
- Як ми можемо зробити будь-який мікросервіс, який працює на K8s, доступним із зовнішнього середовища?
- Які типи віртуалізації ви знаєте?
- Як працює Docker на macOS/Windows?
- Що таке Docker-image і Docker-контейнер? Як вони між собою пов’язані?
- Які основні відмінності між контейнерами докерів і віртуальними машинами?
- Що таке image layer? Яка максимальна кількість layers можлива? Чому треба намагатися мати малу кількість layers? Яка оптимальна кількість?
- Як у віртуальній машині змінити розмір диска після створення? Що треба зробити з гостьовою ОС?
- Як у Docker реалізовано обмеження ресурсів?
- Існує віртуальна машина, до якої втрачено доступ. Як, маючи доступ до її диска, відновити root пароль/SSH-ключ?
- Оптимізувати Dockerfile, пояснити, що і чому так:
FROM golang RUN apt install -y pkg1 pkg2 pkgN # Dependencies for app COPY. . RUN go build -o app main.go CMD ./app
- Що таке IPVS та який функціонал у нього є?
- Яка структура API у Kubernetes?
- Що таке operators і для чого вони потрібні?
- Які стадії мають бути в будь-якому пайплайні (lint, test, build, deploy etc)?
- Як і де зберігати build artifacts?
- Що таке артефакт?
- Є два бренчі: dev і stage. Ми закинули Dockerfile у dev, а потім збілдили у dev і stage. Це буде одним артефактом чи різними?
- Що ви використовували для автоматизації налаштування Jenkins and GitLab CI?
- Порівняйте CI інструментів: Jenkins, GitLab CI, AWS Code Pipeline, GCP cloudbuild, GitHub actions, Circle CI.
- Deployment strategies. Які існують і чим відрізняються (recreate, blue-green, canary etc)?
- Яким чином реалізувати СI/CD для програми, яка залежить від кількох інших програм?
- GitOps. В чому його переваги та недоліки?
- Яка роль і переваги хмарних сервісів для DevOps?
- Що таке immutable infrastructure? Як досягти? У чому переваги та недоліки? Packer, AMI тощо.
- Структура Terraform. Як організувати multi-environment project? Terraform workspaces?
- Найкращі практики з використання багатьох Terraform states.
- Як організувати доступ розробницькій команді до AWS/GCP/Azure? Role-based access, assume role, SSO.
- Що таке Terraform provider, module?
- Як версіонувати Terraform modules?
- Коли потрібно використовувати local-exec та remote-exec?
- Що таке golden image та як його створити?
- Як моніторинг допомагає підтримувати всю архітектуру системи?
- Які інструменти моніторингу ви використовували?
- Що таке медіана та процентиль?
- Що таке SLI, SLO, SLA? Навіщо це потрібно?
- Архітектура системи для збору логів, ELK, EFK etc. Як зберегти логи у разі відмови сховища? Чи потрібно використовувати для цього брокер повідомлень? Чи потрібно робити throttling/rate limits?
- Prometheus long-term storage. Які варіанти?
- Як працює Prometheus?
- У чому принципова відмінність між Grafana і Kibana?
- В чому головна відмінність між Ansible and Terraform?
- Що таке SAAS monitoring та які види знаєте?
- Якщо ви використовуєте Datadog/NewRelic, то як нам відстежувати падіння інструментів моніторингу?
- Що таке distributed tracing та error tracking systems? Як ви думаєте, коли варто їх використовувати?
- У чому різниця між RBAC та ABAC?
- У чому полягає XSS атака? SQL injection? Що таке CSP?
- Які базові заходи можна вжити для захисту SSH-з’єднання?
- Root-пароль невідомий чи загублений. Яка процедура відновлення?
- Як керувати правами на файловій системі в Linux?
- Що таке Firewall?
- Чим відрізняється stateless від stateful фаєрволів?
- Скільки таблиць у iptables?
- Чи можна налаштувати трансляцію NAT за допомогою iptables? Яку таблицю варто використати?
- Яку таблицю використовують для зміни заголовків пакетів?
- Якщо вам ламають Linux-сервер, то як більш ефективно блокувати трафік з IP-адрес?
- Принцип роботи GCP Firewall: чи можемо ми профільтрувати трафік на Load Balancer?
- Що таке SELinux?
- Чи можна повністю від’єднати SELinux на льоту?
- З якими secrets management systems ви працювали?
- У нас є сервер NAT, і ми хочемо забезпечити доступ за ІР до сервера зовні. Як нам це реалізувати?
- Щоб потрапити на сервер клієнта, треба залогінитись на 4+ jump хоста. Як це автоматизувати? Де ми зберігатимемо наш SSH-ключ?
- Що таке cookies? Для чого потрібні? JWT?
- Що таке feature toggles та навіщо вони?
- Що таке TDD (Test Driven Development) та BDD (Behaviour Driven Development)?
- Що таке індекс і що таке ключ?
- Які переваги та недоліки індексів?
- Уявіть, що ви розробляєте систему білінгу, яка має обробляти тисячі рахунків. Яку стратегію оновлення даних ви б обрали?
- Які методи найчастіше використовують для масштабування реляційних баз даних?
- Опишіть механізм транзакцій БД.
- Як ми можемо видалити таблицю чи базу даних?
- Як знайти повільні запити у MySQL/PostgreSQL?
- Які SQL-оператори маніпулювання даними ви знаєте?
- Чи можна вивести список баз даних/таблиць через CLI? Як ми можемо перемикатися між базами даних MySQL/PostgreSQL?
- Які storage engines в MySQL ви знаєте? Які відмінності?
- Як реалізовано реплікацію MySQL master-master? Скільки серверів MySQL може бути залучено в такій взаємодії?
- Як працює реплікація MySQL/PostgreSQL? Які параметри мають бути налаштовані для реплікації?
- Порівняйте SQL і NoSQL.
- Sharding vs replication?
- Які є види індексів? Коли і для чого використовувати?
- Вимоги до схеми БД. Character sets, collations, default, not null тощо.
- Ми мігруємо MySQL/PostgreSQL з on-prem у хмару. Як нам зробити це з мінімальним даунтаймом?
- Навіщо та як тестувати перформанс баз даних?
- Напишіть Terraform module для інфраструктури тестового сервісу у AWS.
- Напишіть hello-world програму мовою на ваш вибір і сформуйте для неї helm chart/kustomize.
- Як організувати деплой без downtime?
- Опишіть способи troubleshooting для Docker-контейнера.
- Розібрати і пояснити структуру CI/CD pipeline (на прикладі gitlab.yml).
- Продемонструйте навички роботи з GitOps, опишіть деплоймент простенької програми.
- Як організувати деплой вебзастосунку, запущений на кількох серверах без (або з мінімальним) downtime?
- Як за допомогою Ansible дізнатися default gateway для пулу серверів, і якщо він відрізняється від бажаного, записати рядок «hostname: gateway» у файл на локальній машині?