Разработка программного обеспечения прошла долгий путь развития — от непересекающейся модели разработки (водопадной модели) до модели итеративной разработки, такой как Agile и DevOps. Интересно отметить, что SRE появилась в Google для обеспечения надёжности и отказоустойчивости всей инфраструктуры в 2003 г., то есть раньше появления DevOps (примерно 2007–2008 гг.). Google в своей книге об SRE описали, насколько совместные усилия инженеров DevOps, SRE и других инженеров, таких как инженеры по безопасности приложений, жизненно важны для поддержки такого продукта, как, например, Gmail.
Глядя на приведённый выше пример, можно с уверенностью сказать, что наша растущая зависимость от приложений активно способствовала широкому внедрению DevOps и SRE. Нам постоянно нужны надёжные и масштабируемые системы, будь то оптимизация бизнес-функций или запуск приложения, упрощающего нам жизнь.
Что такое DevOps?
DevOps определяет подход к организационной культуре разработки программного обеспечения, основываясь на принципах гибкости, автоматизации и совместной работы. Он направлен на устранение разрозненности и разрывов между различными отделами разработки и эксплуатации. В этом процессе разработка кода проходит итерационные этапы: непрерывная разработка, непрерывная интеграция, непрерывное тестирование, непрерывная обратная связь, непрерывный мониторинг, непрерывное развёртывание и непрерывная работа. Эти принципы широко известны как «7C цикла DevOps».
Что такое SRE?
Site Reliability Engineering или SRE играет более комплексную роль в оптимизации взаимодействия с конечным пользователем и больше занимается внедрением методов разработки программного обеспечения в IT-задачах. Проще говоря, концепция SRE подразумевает максимальную автоматизацию, в то время как разработчик работает в рамках IT-задач. Это означает применение автоматизации как средства решения многих проблем, возникающих при управлении приложениями в производственной среде. SRE использует три соглашения об уровне обслуживания для измерения производительности приложения:
- Соглашения об уровне обслуживания (SLA) — для определения надлежащей надёжности, производительности и степени задержек в приложении относительно пожеланий конечного пользователя.
- Цели уровня обслуживания (SLO) — цели, установленные командой SRE для удовлетворения ожиданий SLA.
- Индикаторы уровня обслуживания (SLI) — индикаторы для измерения конкретных показателей (таких как задержка системы, пропускная способность системы, время выполнения заказа, среднее время восстановления (MTTR), частота разработки и коэффициент ошибок доступности) для соответствия SLO.
- Сходство между SRE и DevOps в том, что обе системы ориентированы на мониторинг производства и обеспечение максимальной оптимизации управления операциями. Один из их фундаментальных принципов — ломать стены, то есть они направлены на взаимодействие при разработке приложений всех заинтересованных сторон (команда разработчиков и команда эксплуатации). Их общая цель — упростить операции в распределенной системе.
Различия и связь между SRE и DevOps:
Разработка и применение
DevOps фокусируется на создании ядра продукта. Ядром же является изначальная цель разработки продукта. DevOps работает исходя из требований клиентов, их запросов и спецификаций, с применением гибкого подхода к разработке программного обеспечения с непрерывным процессом сборки, тестирования и развертывания. Команды SRE сосредоточивают свое внимание на полноценной реализации ядра и соответствии продукта ожиданиям покупателя. DevOps отслеживает показатели производительности приложения и дает обратную связь команде в случае необходимости внедрения изменений.
Суть подхода
Команда DevOps имеет более экспериментальный характер. Они пишут коды и постоянно проверяют их на наличие ошибок или на добавление новых функций. Они разрабатывают основной дизайн продукта, придают ему форму и запускают в производство. С другой стороны, команда SRE скорее занимается исследованиями. Они постоянно отслеживают соответствующие показатели и дают отзывы о возможных направлениях улучшения. Их больше волнует опыт конечного пользователя. Они проводят анализ каждой проблемы, чтобы увидеть ее частоту и найти способы автоматизации повторяющихся операций. Их цель — найти способы внесения изменений в случаях повторяющихся ошибок.
Автоматизация
Цель существования и DevOps и SRE состоит в автоматизации ручных процессов. Речь идёт не только об экономии времени при выполнения задач, но и о том, что все, что делается вручную, подвержено ошибкам. Когда речь идёт об автоматизации в DevOps, это означает автоматизацию развёртывания (задач и новых функций). Однако в SRE автоматизация направлена на поддержание резервов мощности. Она преобразует ручные задачи в программные задачи, чтобы поддерживать технологические стеки в рабочем состоянии.
Цель
Каждый набор поставленных задач имеет конкретную цель. Цель DevOps — разработать шаблон для продвижения действий по направлению к совместной работе. А команда SRE фокусируется на разработке мер для повышения надёжности каждого созданного приложения.
Вывод
SRE и DevOps имеют общую цель объединить разрозненный рабочий процесс, автоматизировать повторяющиеся ручные задачи и внедрить постоянный мониторинг.
Вот некоторые основные области, в которых они работают с проблемами:
- Управление конвейером CI/CD: внедрение различных автоматизированных тестов на разных этапах конвейера для обеспечения безошибочного кода.
- Мониторинг и оповещение. Основная функция — помочь повысить надежность приложений. Полная прозрачность системы улучшает диагностику работоспособности сервисов и получение важной аналитики.
- Управление инцидентами: понимание причины сбоев, серьёзности ошибок или даже немедленного оповещения, когда какие-либо запросы начинают завершаться сбоем, что требует оперативной связи.
Платформы, поддерживающие управляемые микросервисы и управляемый Kubernetes, помогают поддерживать жизненный цикл приложений, решая вышеупомянутые проблемы. Глядя на данные о размере рынка услуг управления сетью, который прогнозируется в 274 миллиарда долларов к 2026 году, нетрудно увидеть их потенциал в процессах упрощения управляемости приложений.
Благодаря тому, что мировые технологические гиганты, такие как Google, Amazon и Netflix, первыми внедрили DevOps и SRE, рентабельность их инвестиций выросла как на дрожжах. Кроме того, глядя на их надёжную инфраструктуру, которая почти никогда не выходит из строя, становится очевидным, что эти системы рассчитаны на очень долгосрочную перспективу.
ссылка на оригинал статьи https://habr.com/ru/company/timeweb/blog/671274/
Добавить комментарий