Бизнес

DevOps vs SRE

Должности DevOps Engineer или SRE, безусловно, востребованы. Говоря «DevOps / SRE», важно понимать совпадение и различия между двумя наборами навыков и организациями. Оба решения решают совершенно разные задачи с помощью уникальных и инновационных подходов, открывая новые парадигмы в технологиях.
DevOps vs SRE

Что такое проектирование надежности сайта (SRE)?

SRE расшифровывается как Site Reliability Engineering или Site Reliability Engineer. Это набор практик и культуры, а также служебная роль.

Этот термин был придуман Google и обычно считается слегка развитой версией DevOps. Возможно, потому, что основатель группы надежности сайтов Google Бен Трейнор сказал, что SRE — это «то, что происходит, когда программисту поручено то, что раньше называлось операциями», что также можно сказать о DevOps.

Но что это на самом деле означает?

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

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

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

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

Понимание DevOps

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

Сотрудничество охватывает конвейер жизненного цикла разработки программного обеспечения (SDLC) без пресловутых стен или разрозненных структур, которые жестко разделяют три роли.

Вместо использования инструментов или процессов в качестве дескрипторов, DevOps лучше всего описывать с точки зрения его характеристик, как межличностных, так и культурных, необходимых для достижения:

  • Непрерывная доставка приложений;
  • Более короткие циклы выпуска;
  • Сокращение отходов процессов;
  • Более низкие расходы.

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

Например, DevOps требует, чтобы ИТ-команды принимали неудачи как нормальное явление. Согласно DevOps, нет конкретного определения понятий «сбой» и «нормально». Это оставляет потенциальные пробелы в преобразовании принципов DevOps в конкретные и практические шаги.

Разработка, эксплуатация и надежность

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

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

Официальное определение DevOps — это «культура и практика программной инженерии, нацеленная на объединение разработки и эксплуатации программного обеспечения». Этот термин впервые был введен Эндрю Шейфером и Патриком Дебуа в 2008 году, и хотя потребовалось несколько лет, чтобы он стал общепринятой концепцией, в настоящее время почти каждая компания, от предприятий до стартапов, нанимает DevOps.

Концепция Site Reliability Engineer (SRE) существует с 2003 года, что делает ее даже старше, чем DevOps. Он был придуман Беном Трейнором, основателя группы по обеспечению надежности сайтов Google. По словам Трейнора, SRE — это «то, что происходит, когда программисту поручено то, что раньше называлось операциями».

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

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

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

В чем разница между SRE и DevOps?

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

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

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

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

Итог

Команды DevOps и SRE не так уж сильно отличаются. Оба помогают объединить команды разработчиков и операторов, разделяя при этом схожие обязанности и уделяя особое внимание автоматизации и надежности.
Digex Co предлагает услуги DevOps и SRE, чтобы выпуск Ваших программных продуктов был современным и эффективным. Наши инженеры постоянно повышают свою квалификацию для более эффективного внедрения инструментов, которые ускорят и улучшат процессы разработки, тестирования и выпуска ИТ-решений.
Автор статьи: Digex Co.

Появился вопрос?

Нужна консультация по проекту или хотите работать с нами?

Читать ещё

Поделиться: