Традиционным ИТ-командам трудно успеть за быстрым ростом масштабов и сложности приложений. Растут и требования, которые предъявляют к приложениям пользователи. В этих условиях крайне важно поддерживать бесперебойную работу инфраструктуры. 

На помощь приходят SRE-инженеры. SRE (Site Reliability Engineering) фокусируется на создании высоконадежных систем и их поддержке. Главная задача SRE-инженеров — поддерживать высокую доступность приложений и быстрое реагировать на проблемы в производственной среде.

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

Чем занимается SRE

Ключевая задача SRE-специалиста заключается в обеспечении доступности и надежности разрабатываемых ИТ-систем и сервисов.

Исторически инженеры-программисты создавали код, затем передавали его в ИТ-подразделения для дальнейшего развертывания и обслуживания. Роль SRE позволяет инженерам-программистам участвовать в процессе развертывания и поддержки ПО, улучшать надежность и производительность системы.

SRE-инженер отвечает за все эти области:

  • общее время безотказной работы систем;

  • производительность систем;

  • простой;

  • управление инцидентами и отключениями;

  • мониторинг систем и приложений;

  • управление изменениями;

  • планирование производительности.

SRE-инженеры контролируют ПО и производительность всего технологического стека. Это означает, что они могут выявлять и устранять проблемы проще и эффективнее, чем традиционная команда разработчиков и эксплуатации. Роль SRE состоит в поддержании безотказности и надежности системы.

Какой спрос на SRE-инженеров

SRE фигурирует в ежегодном отчете LinkedIn с 2020 года. По запросу «Site Reliability Engineer» в октябре 2023 года на Хедхантере было 59 вакансий. При этом на том же Хедхантере по запросу «DevOps» уже 4 221 вакансия. 

В России граница между DevOps и SRE настолько размыта, что в вакансиях иногда эти роли идут через слеш. Разница часто заключается в следующем:

  • автоматизация сборки, настройки и развертывания ПО — работодатель ищет DevOps;

  • обеспечить отказоустойчивую работу инфраструктуры — работодателю нужен SRE.

Чем крупнее бизнес, тем более четкое разделение зон ответственности он может себе позволить.

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

Внедрение новых технологий в сочетании с увеличением скорости доставки приложений вызвало спрос на специалистов по ИТ-операциям. Результаты отчета «2021 Upskilling Report» (DevOps Institute) говорят о том, что в 2023 году глобальный уровень внедрения технологий обеспечения надежности объектов по прогнозам станет в два раза больше в сравнении с предыдущим годом, а в 2024 году продолжит свой рост.

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

Какие навыки нужны SRE-инженеру

Разберем, что конкретно нужно знать и с чем уметь работать: 

1. Научитесь программировать

SRE-инженер, должен владеть хотя бы одним языком программирования. Это связано с тем, что придется часто писать код для автоматизации задач или создания инструментов. Самые популярные языки — Python, Java и Go.

2. Разберитесь в конвейерах CI/CD

Чтобы нормально публиковать изменения кода, нужно разбираться в конвейерах непрерывной интеграции (CI) и непрерывного развертывания (CD).

3. Освойте распределенные вычисления

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

4. Изучите инструменты мониторинга

Мониторинг нужен, чтобы в режиме реального времени следить за «состоянием здоровья» рабочей ИТ-среды, автоматизировано оповещая внешних и внутренних пользователей. Мониторинг состояния ИТ-инфраструктуры и услуг, а также собираемые данные позволяют предпринимать проактивные действия до того, как что-то выйдет из строя. Поэтому SRE должен быть знаком с разными инструментами мониторинга. Например, Prometheus, Grafana. 

5. Изучите инструменты контроля версий

Частью роли SRE является разработка ПО, поскольку инженер автоматизирует системы и процессы. Работая над кодом, SRE-инженер, скорее всего, использует Git или аналогичные инструменты контроля версий. И если что-то пойдет не так, то с инструментами контроля версий будет легче проводить сравнения и возвращаться к более ранним версиям.

6. Изучите операционные системы

SRE-инженер регулярно работает с крупномасштабными серверами. Работа на этих серверах требует глубокого понимания операционных систем. Для управления инфраструктурой нужно знать — Linux, Windows. 

7. Получите глубокое понимание баз данных

Серверная разработка включает в себя работу с рядом баз данных NoSQL. У каждого типа есть определенный сценарий, в котором они чаще всего используются и где они обеспечивают наибольшие преимущества. SRE-инженер должен понимать различия при использовании баз данных и уметь дифференцировать их с помощью реляционных баз данных, таких как MySQL.

8. Освойте навыки автоматизации

Автоматизация помогает сократить ручную работу, которая нужна для поддержания инфраструктуры, и SRE-инженер, должен владеть разными инструментами автоматизации. Например, ACCELQ и Avo Assure.

9. Познакомьтесь с облачными приложениями

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

10. Развивайте софт-скилы 

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

Куда пойти учиться на SRE-инженера

Если есть опыт в системном администрировании, разработке, то шанс залететь на должность джуниора SRE-инженера возрастает. Даже у коммерческих курсов есть минимальные требования к студентам: знания Linux, компьютерных сетей, Python, навыки работы в кластере Kubernetes, пройденные курсы по разработке, DevOps. Альтернативный вариант — пойти в DevOps и потом уже плавно перейти в SRE.

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

Вы можете использовать наш видеокурс, состоящего из восьми тематических модулей. В курсе знакомят со способами построения программных архитектур, особенностями контейнерного подхода, стеком технологий для запуска микросервисных приложений, DevSecOps, инструментами CI/CD и современными облачными решениями.

Кроме того, сейчас ресурсами облаками легко воспользоваться стартапам. Для них запущена грантовая программа. 

Комментарии (3)


  1. dyadyaSerezha
    22.12.2023 18:36

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

    Именно поэтому я знаю, что такая работа не для меня.

    P. S. Что интересно, что-то в системе обычно падает потому, что разработчики сделали систему с багами или есть баги в конфигурации системы (тоже часто дело разработчиков), но виноватым себя чувствует SRE-инженер, который срочно разбирается в инциденте, потому что он "отвечает за".


    1. Hydro
      22.12.2023 18:36

      Вот, кстати, да. Сохранять спокойствие на инцидентах и (условно) постоянно таскать с собой ноут - вдруг что случиться, а текущий дежурный не вывозит и нужно ему помочь. ну и конечно телефон с всегда заряженным интернетом, который можно раздать себе на ноут.
      P.S. ссылка на видеокурс (видимо ради которого и затевалась вся статья про SRE) - ведет на курс по DevOps


      1. dyadyaSerezha
        22.12.2023 18:36

        Вот поэтому на работу SRE я бы пошёл только за +30% за вредность)