Сисадмин, DevOps, SRE: в чем разница и сколько они зарабатывают?

Профессии «девопс» не существует, а приличных инженеров эксплуатации не стоит называть сисадминами — сталкивались ли вы с подобными утверждениями? Они звучат регулярно. При этом на сайтах с вакансиями открыты сотни объявлений о поиске DevOps и сисадминов — судя по требованиям, вполне приличных. Более того, иногда содержание этих вакансий совпадает настолько, что в заголовке пишут: «ищем системного администратора (DevOps)», ставя между ними знак равенства.

Да, каждый работодатель волен называть вакансию так, как хочет, и требовать от соискателя соответствия тому списку требований, какому считает нужным. А каждый специалист может сам решить, как себя называть. Но и работодатель, и соискатель заинтересованы в том, чтобы их представления совпадали (а иначе как они найдут друг друга?).

В этой статье мы постараемся зафиксировать ожидания работодателей. Предмет интереса — специальности системный администратор, DevOps-инженер и Site Reliability Engineer (SRE).

Системный администратор

По запросу «системный администратор» HeadHunter выдает более 5 тыс. вакансий. Все объявления разные, но их можно разбить на три группы. Это разбиение основано на анализе не всех 5 тыс., а примерно 50 вакансий, поэтому вряд ли отражает действительность с максимальной точностью. Делайте скидку.

Level 1: поддержка офисной техники

Зарплата: $250–600.

Таких сотрудников еще называют «эникейщиками» — мастерами на все руки (или на все кнопки — any key). Но среди вакансий определение «системный администратор» распространено больше. Иногда встречается с приставкой «младший».

Обязанности:

  • настройка рабочих мест сотрудников,
  • установка ПО и управление лицензиями,
  • управление доступом, учетными записями и правами,
  • поддержка периферийного оборудования (МФУ, принтеры, гарнитуры, микрофоны, проекторы, WiFi-оборудование),
  • обслуживание и мелкий ремонт компьютерной техники,
  • иногда: управление закупками офисной техники.

Эникейщиков или младших системных администраторов ищут самые разные организации, от небольших фирм на 10–15 человек до средних компаний со штатом в 100–150 сотрудников. В первом случае сисадмин будет отвечать за технику один, во втором — в команде с более опытными администраторами.

Level 2: поддержка собственной инфраструктуры компании

Зарплата: $450–950.

«Трушный» системный администратор не настраивает персональные компьютеры (ну или настраивает, но это далеко не главная его задача). В список типичных обязанностей входит поддержка физической или облачной инфраструктуры, а также сопутствующего оборудования и программного обеспечения. Инфраструктура может быть как для внутренних нужд (например, хранения данных о клиентах, обработки транзакций), так и для внешних — размещения сайта, сервиса и т. д.

Ниже собраны обязанности системного администратора, которые встречаются в вакансиях чаще всего. Нельзя сказать, что в каждой вакансии есть все перечисленные пункты, но минимум половина — точно. Конкретный стек технологий тоже отличается.

В обязанности типичного системного администратора входят:

  • Установка и настройка серверов и сетевого оборудования (Cisco, HP и др.).
  • Администрирование операционных систем (на базе Windows или Linux), систем виртуализации (OpenVZ, Xen, Proxmox, Hyper-V, VMware, VirtualBox), баз данных (MySQL, PostgreSQL, Microsoft SQL), сетевых хранилищ, локальных сетей и VPN (PPTP, SSTP, OpenVPN), доменной сети (Active Directory, DNS, DHCP), веб-серверов (Nginx, Apache), электронной почты (Sendmail, Postfix, MS Exchange, Zimbra и др.), IP-телефонии (Asterisk), CMS, корпоративных IT-систем (1С, Bitrix24 и др.), ПО для командной разработки (GitLab, Jira, Confluence и др.).
  • Мониторинг (Zabbix, Dude, Alerta, Prometheus, Grafana).
  • Резервное копирование и архивирование данных.
  • Безопасность.
  • Автоматизация процессов обслуживания (на Bash, Python).
  • Разработка технической документации и регламентов.

Таких сисадминов ищут самые разные компании, а набор обязанностей зависит от  размеров и задач. Например, если сисадмин нужен в хостинг-провайдер или интегратор, то к задачам добавляется общение с клиентами; если в организацию из отрасли торговли или производства, то настройка 1С, бухгалтерского и криптографического ПО; если в компанию-разработчика софта, то создание сред для разработки и поддержка этого ПО в продакшене.

Вот что говорят действующие инженеры об обязанностях системного администратора.

Василий, DevOps в Piano:

Классический сисадмин у бизнеса поддерживает серверные ОС и обвязку вокруг них. Должен знать серверные операционные системы вплоть до работы ядра, сетевые технологии, сборку кастомных пакетов, знать железо и его способности, уметь в Bash на уровне автоматизации несложных штук.

Валентина, инженер в МТС:

Топ-5 обязанностей: выдача прав и доступов юзерам, ребут сервера (от всех бед), настройка ОС под требования какого-то ПО, монтирование дисков, настройка требований информационной безопасности. Топ-5 технологий: unix, bash, виртуализация, Ansible, опыт настройки какой-либо реляционной СУБД.

Level 3: создание инфраструктуры для SaaS, поддержка микросервисной архитектуры

Зарплата: $1200–2000.

Это тот самый уровень, на котором люди просят не называть себя сисадминами. Возможно, все дело в уровне задач и ответственности: здесь от специалиста требуют обеспечения бесперебойности и доступности распределённой инфраструктуры. Иногда сами себя они называют «инженеры эксплуатации», «системный инженер», «инженер инфраструктуры». Но в вакансиях все же гораздо чаще встречается старый добрый «системный администратор».

К обязанностям из предыдущего уровня добавляется:

  • работа с системами контейнеризации (Docker, Kubernetes);
  • работа с брокером сообщений Apache Kafka;
  • настройка систем мониторинга (Zabbix/Grafana), системы логирования ELK;
  • работа с системами управления конфигурациями (Ansible).

Как правило, таких специалистов ищут крупные компании, которые разрабатывают высоконагруженные многопользовательские сервисы. В том числе онлайн-магазины, онлайн-кинотеатры, банки и телеком-операторы.

И обычно именно на этом уровне задачи системных администраторов путают с задачами DevOps и SRE. Так что пора перейти к определению этих профессий.

DevOps-инженер

По запросу «DevOps инженер» HeadHunter тоже выдает около 3 тыс. вакансий. Подготовленный читатель скажет: «DevOps — это не специальность, DevOps — это философия, набор инструментов». Так и есть!

Что такое DevOps

DevOps — это набор практик для повышения эффективности процессов разработки (Development) и эксплуатации (Operation) софта.

DevOps появился в ответ на конфликт между разработчиками и инженерами эксплуатации (админами, которые поддерживают код): цель первых — выкатывать фичи как можно чаще, цель вторых — поддерживать систему в рабочем состоянии. Так как новый код с высокой вероятностью что-нибудь сломает в проде, эксплуатация его не очень любит. DevOps разрешает это противоречие за счет своей философии и множества разнообразных практик.

Подробно о философии и практиках можно почитать в других статьях, их достаточно. Для целей нашей статьи достаточно понимать два ключевых момента. DevOps предполагает:

  • тесное взаимодействие разработчиков и отдела эксплуатации;
  • настройку и автоматизацию процессов непрерывной интеграции и непрерывной поставки кода (CI/CD).

Второй пункт часто невозможен без перехода на микросервисную архитектуру. Как правило, она реализуется с помощью Docker и Kubernetes.

Чем занимается DevOps-инженер

DevOps не профессия, но это слово регулярно используют в значении «специалист, который внедряет практики DevOps». Если вы когда-нибудь открывали сайт с вакансиями, то понимаете, о чем речь. Но цель этой статьи не спор вокруг терминологии, а анализ содержания вакансий. К нему и перейдем.

Исходя из философии DevOps, внедрять его практики могут как разработчики, так и инженеры эксплуатации. Но судя по вакансиям, разработчиков у нас на эту роль ищут редко, и требования к DevOps-инженеру во многом пересекаются с требованиями к системному администратору. Смотрите сами.

Требования, совпадающие с требованиям к системным администраторам:

  • знание и опыт администрирования Linux, систем контейнеризации (Docker, Kubernetes), баз данных, LAMP;
  • понимание принципов работы TCP/IP;
  • опыт администрирования SQL и NoSQL баз данных;
  • опыт настройки систем мониторинга и логирования (Zabbix, ELK, Grafana, Prometheus);
  • опыт конфигурирования инфраструктуры через код (Ansible);
  • умение писать скрипты на Bash, Python или Ruby (иногда упоминается Perl);
  • опыт работы с облачными платформами.

Требования, которые не встречаются в вакансиях системных администраторов, но типичны для вакансий DevOps-инженеров:

  • понимание философии DevOps;
  • понимание и следование подходу «инфраструктура как код»;
  • понимание жизненного цикла разработки ПО и принципов CI/CD;
  • тесное взаимодействие с командой разработки.

Если смотреть по приоритетам, то системный администратор сосредоточивает свое внимание на инфраструктуре, тогда как DevOps-инженер большую часть времени тратит на автоматизацию процессов разработки и релиза, организацию мониторинга. 

При этом некоторые вакансии DevOps-инженера действительно похожи на вакансии системного администратора. Иногда в объявлении совсем не упоминается настройка CI/CD, а есть только требование построить и поддерживать кластер на Kubernetes. Но четкой градации между вакансиями нет, разделить их на группы нельзя.

Сергей, СТO в Southbridge:

Ключевой момент, который отличает DevOps-инженера от системного администратора, — это навыки автоматизации и сокращение ручного труда (особенно касается построения CI/CD), понимание процессов со стороны разработки. DevOps должен знать  Linux, Git + CI/CD, Ansible, Docker + Kubernetes, Automation and Scripting (обязательно).

Валентина, инженер в МТС:

Топ-5 обязанностей: настраивать CI/CD, автоматизировать и поддерживать инфраструктуру тестовых сред и прода, общаться с разработкой и понимать их код. Топ-5 технологий: Gitlab CI, Docker, K8s, Ansible, Python.

DevOps-инженеры требуются в крупные компании с большими командами разработки, которым важна скорость и качество поставки нового кода. Это все те же онлайн-магазины, онлайн-кинотеатры, банки и телеком-операторы.

Зарплата DevOps-инженеров значительно больше, чем системных администраторов: от 1000 до 3500 USD и выше. 

SRE

SRE — это одна из форм реализации DevOps. SRE-подход возник в Google и стал популярен в среде продуктовых IT-компаний после выхода одноименной книги в 2016 году.

Цель инженера по SRE — сделать так, чтобы сервис работал с такой надежностью, которая указана в соглашении о уровне оказания услуг (SLA). Стабильность работы зависит и от инфраструктуры, и от качества кода, поэтому SRE занимается и тем, и другим. Как правило, инженерами по SRE становятся опытные системные администраторы или разработчики. Разработчики даже чаще.

Специальность SRE относительно новая, поэтому вакансий немного. Но и немногочисленные открытые объявления показывают, что ожидания от SRE очень высоки. Этот специалист должен знать все, что знает системный администратор уровня Senior, плюс уметь разрабатывать на одном из языков программирования, желательно не скриптовых.

Пример требований:

  • уверенные знания ОС Linux продвинутого уровня работы в консоли;
  • опыт разработки на C/C++ или Go;
  • понимание работы TCP/IP и HTTP;
  • понимание устройства ОС (процессы, память, синхронизация);
  • опыт настройки различных инструментов для мониторинга и конфигурирования серверов (Zabbix, Puppet, Ansible или подобные);
  • опыт работы с Docker;
  • опыт использования облачных сервисов Amazon: EC2, VPC, S3, Route53;
  • опыт настройки сетей (инструменты: Nginx, HAProxy, bind, git, iptables, stunnel, OpenVPN);
  • опыт настройки виртуальных машин: kvm, xen.

Пример задач:

  • оптимизация имеющейся архитектуры и сервисов;
  • уменьшение нагрузки на сопровождение и обслуживание сервисов за счет автоматизации;
  • изучение имеющихся сервисов и поддержание актуальных знаний по ним;
  • активный и проактивный поиск возможных проблем и их устранение;
  • обеспечивать заданный уровень SLA & SLO;
  • участвовать в инцидент-менеджменте;
  • писать postmortem и разрабатывать мероприятия для повышения стабильности сервисов;
  • создавать, актуализировать DRP (Disaster Recovery Plan), BCP(Disaster Recovery Plan) и проводить регулярные учения по отказам с последующим анализом результатов;
  • участвовать в проработке архитектуры сервисов и изменений их конфигураций;
  • оптимизация имеющихся систем observability.

Марсель, CТO в Slurm.io:

SRE-инженер должен быть хорошим программистом, при этом также хорошо должен знать инфраструктуру и DevOps-инструменты. По сути SRE вбирает в себя компетенции DevOps, и это логично, ведь SRE — это реализация того, как видит DevOps компания Google.

Сергей, СТO в Southbridge:

Я считаю, что у нас это скорее хайп, так как SRE и DevOps-инженер часто имеют одни и те же обязанности. На мой взгляд, SRE — это DevOps с бэкграундом разработки. Тут имеется в виду, что такой инженер может не просто написать скрипт на Go, а разобраться в коде и даже подсказать разработчикам, что с инфраструктурной точки зрения работает плохо и что надо улучшить.

Инженеры по SRE нужны еще в меньшем количестве компаний, чем DevOps-инженеры, и это крупнейшие организации.

Зарплаты SRE часто вообще не указывают, а если указывают, то фигурируют суммы в $2000, $2500, $4000.

Так в чем разница между профессиями сисадмина, DevOps и SRE? Максимально коротко

Все эти специалисты так или иначе работают с инфраструктурой и сервисами, которые на ней крутятся. От всех них работодатели ожидают хорошего знания Linux, сетей, баз данных, сервисов логирования и мониторинга и т. д. Но разница, безусловно, есть.

Сисадмин настраивает инфраструктуру и заботится о том, насколько стабильно она работает. Если разработчики написали код, который все сломал, это не его забота.

DevOps-инженер заботится о скорости и качестве поставки кода. Он помогает разработчикам настроить процессы так, чтобы новые фичи выходили быстро и ничего не ломали. Если новый код все сломал, то это и его ответственность тоже.

SRE думает о выполнении SLA. Он тоже работает с инфраструктурой, но занимается не базовой настройкой, а тонкой — ищет возможности для оптимизации и точки отказа, улучшает архитектуру. Его не заботит скорость поставки кода, его заботит надежность. Если код потенциально может сломать продакшен, то SRE его не пропустит. 

Валентина, инженер в МТС:

Когда что-то случается, админ смотрит и говорит: «виноват приклад», то есть ПО, которое пишет команда разработки. На этом работа админа над проблемой заканчивается, а работа DevOps-инженера только начинается. В компаниях, где нет собственной разработки, DevOps-инженеров не бывает, а админы обычно есть.

У админа есть готовое ПО, на которое он не может влиять, если там что-то не так, а только костылить вокруг и углубляться в тонкие настройки, но зато у него есть много инструкций в интернете — installation guide и статьи от других админов, которые уже ставили это же ПО и набили шишки. Пример: админ читает в инструкции, что оптимальнее запускать ПО, например, c файловой системой xfs. 

У DevOps-инженера изначально ПО забаговано и не работает оптимально, и именно его задача довести это ПО до приличного уровня и описать те самые installation guide. Пример: DevOps-инженер должен определить, с какой файловой системой приложение работает лучше всего и максимально увеличить эти показатели. Для улучшений он может влиять на разработку и архитектуру ПО, если что-то не достаточно хорошо или не работает.

Василий, DevOps в Piano:

Сисадмин — это сварщик в чистом виде, автоматизация действий. DevOps больше про автоматизацию процессов и налаживание коммуникаций, он должен понимать боль и потребности каждой группы людей. 

DevOps — это про дружбу разработки и админов (опсов), а SRE — это пожарник, который тушит прод после веселья первых двух.

————————

The post Сисадмин, DevOps, SRE: в чем разница и сколько они зарабатывают? first appeared on Highload.today.

from Highload.today https://ift.tt/3vPxzYZ
via IFTTT

Leave a Reply

Back to Top