Кто такой SRE и чем он занимается?
Леруа Мерлен переосмысливает DIY-ритейл так же как другие технологические лидеры меняют банкинг и ИТ-сервисы. Сейчас команда ищет новых людей — в компании открыт набор на стажировки. Среди направлений есть загадочное SRE, о котором слышали немногие.
Исправляем эту ситуацию! Узнали у менеджера бизнес-приложений в Леруа Мерлен про особенности этой профессии.
В интервью Олег рассказал, кто такой инженер по надежности, чем он занимается, и почему это направление перспективно для стажеров.
Олег, привет! Расскажи, что такое инжиниринг надежности?
SRE (Site Reliability Engineering) — набор методов, показателей и предписывающих способов обеспечения надежности ПО. Инжиниринг надежности был создан в Google как ответ на практики DevOps по разработке и эксплуатации IT-сервисов и стал достоянием общественности несколько лет назад после публикации книги с одноименным названием.
Кто такой инженер по надежности, и какие задачи он выполняет?
SRE (Site Reliability Engineer) — это человек, который, как и DevOps, одной ногой в Dev другой — в Ops. Но в фокусе у него не инфраструктура и доставка кода, а сам сервис. Можно сказать, что DevOps в основном про инфраструктуру, и его клиенты — айтишники, SRE — про бизнес-приложение, а его клиенты — пользователи. Работы у SRE хватает: надо понять, как устроен сервис, какая у него архитектура и зависимости, какие бизнес-процессы поддерживаются, а также определить требования по доступности и качеству. Поняв, какие показатели и события надо отслеживать, SRE организовывает и автоматизирует сбор и хранение соответствующих метрик. Он использует доступные корпоративные инструменты, а иногда и собственную разработку.
Получается, SRE должен знать программирование?
Да, SRE, в том числе немного программист. Более того, идеальный SRE тратит на ручную работу и всю операционку максимум 50% рабочего времени, а остальное посвящает автоматизации, исследовательской работе и реализации возможностей по улучшению качества сервиса и удешевлению поддержания этого качества. SRE очень важно подружить между собой команды разработки и поддержки и упростить администрирование сервиса. А если нужно, то и в траблшутинге он примет участие, куда же без этого. Работа не из простых, но интересная — она открывает бесконечный простор для развития, особенно технического.
Что нужно, чтобы стать инженером по надежности?
Нужно хорошо разбираться в архитектуре информационных систем, в протоколах взаимодействия сервисов, уметь считать пропускную способность и отказоустойчивость, разбираться в большом количестве инструментов, понимать, как работает мониторинг и алертинг, уметь читать ошибки и знать хотя бы один язык программирования — сейчас это в основном Python или Go. Еще очень важно никогда не останавливаться на достигнутом и продолжать искать возможности для улучшения. Это не перфекционизм — в эксплуатации развивающегося сервиса результат почти никогда не является конечным.
Можно ли стать SRE с нуля?
Споры по поводу ответа на этот вопрос не прекращаются до сих пор. Одни утверждают, что не бывает SRE-практикантов или Junior SRE (как и DevOps, кстати), ведь уже на входе требуется много знаний и навыков, а прокачаться полностью так и вовсе невозможно. Другие считают, что SRE — такая же профессия, в которой есть старт, и путь самурая поддается градации на уровни. Лично я убежден, что нет ограничений в такой молодой отрасли. Если компания готова растить кадры в «боевых» условиях, то стать SRE можно, начав с самых базовых навыков. Просто нужно выполнять несложные прикладные задачи (которые уже несут реальную ценность) и интенсивно осваивать востребованные инструменты и навыки. Конечно, в этом случае необходим наставник, который поможет пройти путь до специалиста или даже до профессионала.
Если ты уже знаешь и понимаешь Linux на уровне уверенного пользователя, можешь написать нехитрый скрипт, знаешь на базовом уровне Python и то, что находится «под капотом» у приложения, то ты уже можешь попробовать свои силы!