Обов'язки DevOps Engineer
Обов'язки системного адміністратора зазвичай такі:
- встановлення та обслуговування комп'ютерної та офісної техніки;
- конфігурування й запуск хмарного або локального сервера та інфраструктурних елементів;
- встановлення, налаштування і оновлення системного, офісного та прикладного ПЗ;
- підтримка користувачів, організація робочого середовища, забезпечення віддаленого доступу;
- забезпечення резервного копіювання та в разі потреби відновлення даних;
- гарантування інформаційної безпеки;
- діагностування програмних і апаратних проблем, планування ризиків;
- облік та інвентаризація комп'ютерів користувачів, організація закупівлі нового обладнання.
У невеликих компаніях системні адміністратори виконують також функції мережевих адміністраторів.
Серед обов'язків DevOps Engineer – такі:
- підготовка середовища розробки та інфраструктури;
- написання серверного ПЗ;
- автоматичне розгортання серверів;
- автоматизація процесів, пов'язаних з налаштуванням і розгортанням застосунків;
- гарантування інформаційної безпеки;
- комунікація з замовниками і розробниками;
- встановлення отриманого від розробників релізу;
- налаштування систем моніторингу, швидкий пошук та усунення технічних проблем;
- аналіз технологій, що використовуються компанією, і розробка стратегій їхнього поліпшення і модернізації.
Скіли Sysadminа
Знання та навички сисадміна охоплюють:
- глибоке знання операційних систем;
- знання систем моніторингу сервісів комп'ютерної мережі (Zabbix, Prometheus);
- вміння діагностувати та усувати програмні і апаратні проблеми;
- може знадобитися знання систем віртуалізації (наприклад, VMware, OpenVZ, MS Hyper-V, KVM).
DevOps повинен знати:
- хоча б одну мову програмування на рівні, достатньому для написання скриптів автоматизації. Наприклад, Python, Ruby, Go, Powershell, Groovy, Bash;
- щонайменше одну операційну систему (для розуміння, на якому сервері продукт буде встановлений, в якому середовищі буде запускатися, з якими сервісами взаємодіяти);
- системи контролю версій (Git);
- системи оркестрації Docker і Kubernetes;
- системи конфігурацій, наприклад, Chef, Ansible, Puppet – для автоматизації операцій на серверах, що повторюються;
- розумітися в CI/CD, знати Jenkins.
Обов'язковий досвід роботи з хмарними провайдерами (AWS, Google Cloud, Microsoft Azure) та системами віртуалізації.