Системний адміністратор — не DevOps-інженер. Розбір вакансій, технологій та обов’язків
Привіт! Мене звати Павло, у сфері системного адміністрування та DevOps я вже понад 15 років, тож про різницю між сисадміном та DevOps-інженером знаю не з чуток.
Є думка, що професії DevOps-інженер не існує, і цю роботу може виконувати просто скіловий системний адміністратор. Через це ми й бачимо вакансії, де рекрутери шукають сисадміна на відповідну зарплату, проте прописують обов’язки та вимоги як до DevOps-інженера.
Ось кілька рандомних прикладів:



У матеріалі хочу пояснити, що такі вакансії не о’кей та чому. DevOps-фахівець та системний адміністратор — це різні спеціальності. Наймом сисадміна не можна закрити потребу в DevOps-інженері: для виконання задач команди DevOps треба мати специфічні знання та навички.
Що робить системний адміністратор
Сисадмін — це фахівець, який займається налаштуванням та підтримкою IT-інфраструктури в компанії.
На те, що конкретно входить у його обов’язки, впливає досвід спеціаліста та сама компанія: кількість працівників, як побудовані процеси, тощо. Якщо це сисадмін-енікей, він виконує базову роботу з налаштування ПЗ та обладнання. А якщо ми говоримо про більш досвідченого спеціаліста, він має розумітися на розробці, займатися мережами та безпекою IT-інфраструктури.
Задачі системного адміністратора можна звести до п’яти пунктів:
- керування інфраструктурою: налаштування всього обладнання та ПЗ, забезпечення безперебійної роботи серверів, оновлення ПЗ;
- керування дозволами та доступом користувачів: керування реєстрацією колег та політикою SSO, дотримання вимог безпеки;
- відновлення безпеки та резервне копіювання: створення копій на випадок, якщо щось піде не так з сервером або програмою, відновлення роботи серверів після проблеми;
- усунення несправностей: розв’язання проблем і пошук рішень для підтримки безпеки компанії;
- моніторинг інфраструктури: відстеження показників ЦП, DNS, використання, затримки тощо.
Хто такий DevOps-інженер
DevOps-інженери також відповідають за безперервну роботу інфраструктури компанії. Але, на відміну від сисадмінів, вони не зосереджені лише на цьому, а й працюють над покращенням розробки продуктів, координацією та оптимізацією процесів.
Однією з основних задач DevOps-інженера є впровадження автоматизації процесів. Таким чином співпраця між командами полегшиться, не буде потреби в ручному виконанні більшості рутинних задач, а створення, тестування та розгортання програмного забезпечення стане більш ефективним. Ця автоматизація більшою мірою здійснюється за допомогою хмарних служб.
Обов’язки DevOps-інженерів можуть відрізнятися у кожній компанії, проте до основних задач належать:
- автоматизація процесів розробки та релізів;
- налагодження процесів CI/CD;
- конфігурування та розгортання інфраструктури;
- налаштування мереж та хмарних систем;
- моніторинг та централізоване логування;
- впровадження безпекових заходів та захист систем;
- співпраця з розробниками.
Чому сисадмін та DevOps-інженер — це різні професії
Отже сисадміни та DevOps-інженери мають різні обов’язки. Сисадміни не беруть участь у процесі розробки ПЗ, що робить різницю між ними та розробниками досить очевидною. DevOps-інженери відіграють більш активну роль, зосереджуючись на життєвому циклі продукту, а системні адміністратори втручаються лише на етапі його проєктування.
Крім різних задач ці спеціалісти мають також різні цілі. Мета DevOps-інженера — забезпечити співпрацю між командами та системами всередині компанії. Системний адміністратор головно зосереджується на конфігурації та обслуговуванні комп’ютерних систем і серверів компанії.
Зрозуміло, що для роботи цим спеціалістам необхідно мати різні скіли. Тому перейти з системного адміністрування у DevOps без додаткової підготовки та навчання майже неможливо. Ось якими навичками та знаннями має володіти кандидат на посаду DevOps-інженера:
- розуміння основ Linux;
- володіння LEMP-стеком;
- досвід використання або розуміння роботи з хмарними провайдерами;
- навички автоматизації;
- навички віртуалізації;
- досвід використання або розуміння роботи з контейнерними технологіями;
- навички оркестрування;
- навички моніторингу та логування;
- розуміння процесів CI/CD.
Після переходу в DevOps збільшиться кількість обов’язків, складність завдань, а сам фахівець має постійно навчатися.
Працювати DevOps-інженером непросто, бо на ньому лежить багато відповідальності, йому необхідно взаємодіяти майже з усією компанією.
Проте це компенсується вищими зарплатами — DevOps-інженер заробляє у три рази більше, ніж системний адміністратор. Про це свідчить статистика DOU за червень 2023 року: медіанна зарплата сисадміна становить $1,100, а у DevOps-інженера — $3,500.
Які технології використовують сисадміни та DevOps-інженери
Системні адміністратори та DevOps-інженери використовують різні інструменти залежно від завдань та вимог конкретного проєкту. Виокремимо загальні технології, які використовуються для цих професій.
Технології та інструменти, якими користуються системні адміністратори:
- адміністрування операційних систем: Linux, Windows;
- адміністрування баз даних: SQL, MySQL, PostgreSQL;
- адміністрування вебсерверів: Apache, Nginx;
- IP-телефонія: Asteris;
- віртуалізація: OpenVZ, Proxmox, VMware, VirtualBox, Hyper-V;
- системи керування версіями: GitLab, GitHub;
- системи управління конфігураціями: Ansible;
- моніторинг та логування: Zabbix, Prometheus, Grafana, Alerta, ELK-стек;
- хмарна інфраструктура: Amazon AWS, Microsoft Azure, Google Cloud Platform.
Останні інструменти використовуються переважно спеціалістами рівня Middle чи Senior.
Технології та інструменти, якими користуються DevOps-інженери:
- CI/CD: Jenkins, Travis CI, GitLab CI/CD, CircleCI;
- контейнеризація: Docker, Docker Compose;
- оркестрування: Kubernetes, Docker Swarm;
- Infrastructure as a Code: Terraform, AWS CloudFormation, Terragrunt, Pulumi;
- технології та інструменти, що використовують сисадміни.
Які ролі існують в DevOps-команді
Як я вже згадував, обов’язки DevOps-інженерів відрізняються залежно від компанії. Для деяких проєктів існує потреба не лише в одному фахівці, а у цілій DevOps-команді. До неї можуть входити не тільки DevOps Engineer, а й SRE, DevOps Architect, Cloud DevOps Engineer, Release Manager, Cyber Security Engineer, SysOps Administrator тощо.
Розберемо деякі з них
DevOps System Engineer відповідає за збереження інфраструктури. Він повинен мати досвід моніторингу і підтримки систем, вміти створювати високодоступні, відмовостійкі системи, працювати з хмарними обчисленнями.
Ось орієнтовний стек, що я сформував на основі власних спостережень:
- Операційні системи: Linux (Ubuntu, CentOS, Debian, Red Hat).
- Віртуалізація та контейнеризація: Docker, Kubernetes, VMware, AWS Elastic Container Service (ECS), Azure Container Instances.
- Хмарні платформи: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP).
- Системи управління конфігураціями та автоматизації: Ansible, Chef, Puppet, Terraform.
- Системи моніторингу та логування: Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), Splunk.
- Системи керування версіями коду: Git, GitHub, GitLab, Bitbucket.
- CI/CD інструменти: Jenkins, GitLab CI/CD, CircleCI, Travis CI.
- Системи управління контейнерами та образами: Docker Registry, Harbor, Amazon ECR (Elastic Container Registry), Azure Container Registry.
- Мережеві технології: TCP/IP, HTTP/HTTPS, DNS, Load Balancers.
- Системи моніторингу продуктивності: New Relic, AppDynamics, Datadog, Nagios.
- Бази даних та сховища даних: MySQL, PostgreSQL, MongoDB, Redis.
- Безпека та керування доступом: IAM (Identity and Access Management), LDAP (Lightweight Directory Access Protocol), Security Groups, VPN (Virtual Private Network) configurations.
DevOps Security Engineer відповідає за безпеку продукту, оцінює його захищеність та створює план протидії загрозам. Він має чітко розуміти безпеку систем та мереж, оцінювати ймовірність виникнення певних загроз та складати план на випадок їхнього виникнення, мати вичерпні знання щодо безпеки у хмарі та розумітися на тестуванні на проникнення.
Я сформував орієнтовний стек на основі власних спостережень:
- Інструменти сканування вразливостей: Nessus, Qualys, OpenVAS, Nikto.
- Інструменти аналізу конфігурації безпеки: Chef InSpec, Puppet Remediate, Ansible Vault.
- Інструменти контейнерної безпеки: Docker Bench for Security, Clair, Anchore, Twistlock.
- Інструменти виявлення вторгнень (IDS/IPS): Snort, Suricata, Security Onion, OSSEC.
- Системи централізованого журналювання та моніторингу безпеки: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Graylog, OSSIM (Open Source Security Information Manager).
- Інструменти управління та аналізу журналів безпеки: Security Information and Event Management (SIEM) системи, LogRhythm, IBM QRadar, McAfee Enterprise Security Manager (ESM).
- Інструменти шифрування даних та управління ключами: OpenSSL, HashiCorp Vault, Amazon KMS (Key Management Service), Azure Key Vault.
- Інструменти автоматизації безпеки: HashiCorp Terraform, Chef Automate, Puppet Bolt, Ansible Security Automation.
- Інструменти аудиту та відповідності: OpenSCAP, Chef Compliance, Nessus Compliance Checks, Qualys Policy Compliance.
- Інструменти захисту периметра та мережевої безпеки: Firewall (наприклад, iptables, pfSense), VPN (Virtual Private Network) рішення (наприклад, OpenVPN, Cisco AnyConnect), Web Application Firewalls (WAF) (наприклад, ModSecurity, AWS WAF), DDoS-захист (наприклад, Cloudflare, AWS Shield).
Cloud DevOps Engineer працює з хмарними сервісами для швидкого та надійного розгортання програмного забезпечення. Він також керує інфраструктурою в хмарі та займається її оптимізацією.
Ось орієнтовний стек, сформований на основі власного досвіду:
- Хмарні платформи: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), IBM Cloud, Oracle Cloud Infrastructure (OCI).
- Інфраструктура як код (IaC): Terraform, AWS CloudFormation, Azure Resource Manager (ARM) Templates, Google Cloud Deployment Manager.
- Контейнеризація та оркестрування: Docker, Kubernetes, Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE).
- Системи керування конфігураціями: Ansible, Puppet, Chef, AWS OpsWorks, Azure Automation.
- CI/CD інструменти: Jenkins, GitLab CI/CD, CircleCI, Travis CI, AWS CodePipeline, Azure DevOps Pipelines.
- Моніторинг та логування: Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), AWS CloudWatch Azure Monitor, Google Cloud Monitoring.
- Сховища даних та бази даних: Amazon RDS (Relational Database Service), Amazon DynamoDB, Azure SQL Database, Google Cloud SQL, MongoDB Atlas, Redis Labs.
- Системи управління версіями коду та спільної роботи: Git, GitHub, GitLab, Bitbucket.
- Мережеві технології: Virtual Private Clouds (VPC), AWS Direct Connect, Azure Virtual Network, Google Cloud Virtual Private Cloud (VPC).
- IAM: AWS IAM, Azure Active Directory, Google Cloud Identity and Access Management (IAM).
- Секрети та управління доступом: AWS Secrets Manager, Azure Key Vault, HashiCorp Vault.
- Автоматизація резервного копіювання та відновлення: AWS Backup, Azure Backup, Google Cloud Storage.
DevOps Testing Professional займається написанням автоматизованих тестів для ПЗ, що розробляється. Цей фахівець повинен мати знання та досвід у тестуванні ПЗ, вміти створювати тестові конвеєри та вміти кодувати.
Орієнтовний стек, сформований на основі співпраці з такими фахівцями:
- Інструменти для автоматизації тестування: Selenium WebDriver, WebDriverIO, Cypress, Appium (для мобільного тестування), Postman (для API тестування), JMeter (для тестування навантаження).
- Інструменти для керування тестовими кейсами та звітності: TestRail, HP ALM (Application Lifecycle Management), Zephyr, Xray (для Jira), QTest.
- Фреймворки для автоматизованого тестування: pytest (для Python), JUnit (для Java), TestNG (для Java), Cucumber (для BDD), Robot Framework.
- Інструменти для контролю версій та спільної роботи: Git, GitHub, GitLab, Bitbucket.
- Інтеграція тестування у CI/CD процеси: Jenkins, GitLab CI/CD, Travis CI, CircleCI.
- Хмарні тестові оточення: AWS Device Farm, BrowserStack, Sauce Labs, TestProject.
- Контейнеризація тестових середовищ: Docker, Kubernetes (для оркестрування тестових середовищ).
- Управління конфігурацією тестових оточень: Ansible, Puppet, Chef.
- Системи моніторингу та відстеження помилок: ELK Stack (Elasticsearch, Logstash, Kibana)Є, Splunk, New Relic, Sentry.
- Інструменти для створення тестових даних: Faker (для створення реалістичних даних), Mockaroo, Apache JMeter (для створення тестових сценаріїв із реальними даними).
- Інструменти для тестування безпеки: OWASP ZAP (для автоматизованого тестування безпеки вебдодатків), Burp Suite, Nessus, Qualys.
- Інструменти для тестування продуктивності: JMeter, Gatling, Locust.
DevOps Automation Expert відповідає за створення автоматизованих конвеєрів CI/CD. Він повинен вміти автоматизувати завдання за допомогою сценаріїв оболонки та мати досвід роботи з інструментами контейнеризації.
Ось орієнтовний стек, сформований на основі власного досвіду:
- Інфраструктура як код (IaC): Terraform, AWS CloudFormation, Azure Resource Manager (ARM) Templates, Google Cloud Deployment Manager.
- Контейнеризація та оркестрування: Docker, Kubernetes, Docker Swarm, Amazon Elastic Kubernetes Service (EKS), Azure, Kubernetes Service (AKS), Google Kubernetes Engine (GKE).
- Системи керування конфігураціями: Ansible, Puppet, Chef, Continuous.
- CI/CD: Jenkins, GitLab CI/CD, Travis CI, CircleCI, AWS CodePipeline, Azure DevOps Pipelines.
- Системи моніторингу та логування: Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, New Relic, Datadog.
- Системи управління версіями коду та спільної роботи: Git, GitHub, GitLab, Bitbucket.
- Автоматизація тестування: Selenium WebDriver, Postman, JMeter, Robot Framework, Cypress.
- Управління контейнерами та образами: Docker Registry, Harbor, Amazon ECR (Elastic Container Registry), Azure Container Registry, Google Container Registry.
- Системи управління секретами та ключами: HashiCorp Vault, AWS Secrets Manager, Azure Key Vault.
- Мережеві технології: Virtual Private Clouds (VPC), AWS Direct Connect, Azure Virtual Network Google Cloud Virtual Private Cloud (VPC).
- Інструменти для моніторингу безпеки та сканування вразливостей: Nessus, Qualys, OpenVAS, Clair.
- Інструменти для аналізу коду та статичного аналізу безпеки: SonarQube, Checkmarx, Veracode.
DevOps Release Manager контролює життєвий цикл доставки програмного забезпечення. Має розумітися на наскрізній розробці ПЗ та життєвому циклі його розгортання. Також він повинен бути комунікабельним, бо йому часто доведеться спілкуватися не тільки з розробниками, а й з замовниками та керівниками проєктів.
Орієнтовний стек, сформований на основі співпраці з такими фахівцями:
- Системи керування версіями: Git (GitHub, GitLab, Bitbucket), SVN (Apache Subversion).
- Інструменти автоматизації CI/CD: Jenkins, GitLab CI/CD, CircleCI, Travis CI, TeamCity.
- Контейнеризація: Docker, Kubernetes (для оркестрування контейнерів).
- Інфраструктура як код: Terraform, AWS CloudFormation, Azure Resource Manager.
- Моніторинг та логування: Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), Splunk.
- Конфігураційне управління: Ansible, Puppet, Chef.
- Інструменти співпраці та комунікації: Slack, Microsoft Teams, Jira, Confluence.
- Інструменти для тестування: Selenium, JUnit, TestNG, Postman.
- Інструменти безпеки: OWASP ZAP (для тестування вразливостей), SonarQube (для аналізу коду на вразливості), Vault (для керування секретами та ключами).
- Інтеграція інструментів і моніторинг процесу: Grafana (для візуалізації метрик), Jenkins (для збору статистики CI/CD), Slack або інші інструменти сповіщень (для нотифікацій про статуси релізів).
- Хмарні платформи: AWS (Amazon Web Services), Azure (Microsoft Azure), Google Cloud Platform (GCP).
Site Reliability Engineer відповідає за стабільність та безперервну роботу ПЗ. У його обов’язки входить підвищення надійності системи, налаштування моніторингів та реагування на появу інцидентів.
Ось орієнтовний стек, сформований на основі власного досвіду:
- Моніторинг та логування: Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, New Relic.
- Контейнеризація: Docker, Kubernetes (для оркестрування контейнерів), Istio (для керування мікросервісами).
- Інфраструктура як код: Terraform, AWS CloudFormation, Azure Resource Manager.
- Інструменти автоматизації CI/CD: Jenkins, GitLab CI/CD, CircleCI, Spinnaker.
- Інструменти безпеки: HashiCorp Vault (для керування секретами та ключами), AWS IAM (Identity and Access Management), Azure Active Directory (AD), Kubernetes RBAC (Role-Based Access Control).
- Моніторинг застосунків: AppDynamics, Datadog, Dynatrace.
- Інструменти тестування: Selenium, JUnit, TestNG, Postman.
- Інструменти автоматизації і деплойменту: Ansible, Puppet, Chef.
- Контейнеризація та оркестрування: Docker, Kubernetes, Helm.
- Системи керування версіями: Git (GitHub, GitLab, Bitbucket), SVN (Apache Subversion).
- Хмарні платформи: AWS (Amazon Web Services), Azure (Microsoft Azure), Google Cloud Platform (GCP).
- Інтеграція інструментів і моніторинг процесу: Grafana (для візуалізації метрик), Prometheus (для моніторингу метрик), Slack або інші інструменти сповіщень (для нотифікацій про статуси системи).
Висновок
У своїй роботі DevOps-інженери охоплюють весь цикл розробки продукту, сприяють співпраці та підвищують ефективність усіх команд розробників.
Вони допомагають розв’язувати проблеми з програмним забезпеченням та автоматизувати рутинні завдання, щоб розробники зосередились на основних аспектах своєї роботи та могли більш плідно працювати над створенням продукту.
Системні адміністратори виконують більш специфічну роботу — підтримують IT-інфраструктуру компанії. На відміну від команди DevOps, вони не втручаються в роботу розробників і допомагають їм не безпосередньо, а опосередковано через підтримку роботу всього необхідного обладнання на піку продуктивності.
Хоча робота в DevOps зазвичай є складнішою, потребує більше знань і навичок, змінити свою роботу системного адміністратора на DevOps-інженера можливо, але лише з належною підготовкою та навчанням.
Якщо у вас виникли питання, ви можете писати у коментарях або ж поставити їх мені на безкоштовному вебінарі про професію DevOps-інженера!
45 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів