Рубрики
Uncategorized

Инженерная надежность сайта: Секретный соус Google для высокой доступности и счастливого OPS

Разработчики имеют много, чтобы узнать из книги «Техника надежности на сайте — как Google проховает производственные системы», начиная со управления временем и безупречными ретроспективами. Теги с DevOps, BookReview, производительностью.

Надежда не стратегия — традиционная попытка

Я прочитал книгу Инженерия надежности на сайте — Как Google проходит производственные системы Отказ Я многому научился, и я забрал много передовых практик, чтобы подать заявку на наши собственные услуги. Вот гист, а что я узнал от этого. Я сосредоточусь на том, какие веб-разработчики могут учиться у этой вещи, не входя в сложность инфраструктуры Google.

Один быстрый отказ от ответственности перед погружением в: в Marmelab. Мы не управляем услугами наших клиентов в производстве. Наш опыт устраняет неопределенности через гитацию Agile, поэтому мы обычно делегируем хостинг партнерской компанией. Тем не менее, наша работа не может быть отключена от производства. Мы несем ответственность за качество поставленного программного обеспечения, и это включает в себя принятие программного обеспечения, которое сообщает о качестве проблем с обслуживанием, а архитектура, которая делает его устойчивым и исполнителем. Так что, хотя даже не наша работа самостоятельно, операция веб-сервисов много интересует меня.

Что такое надежность сайта (SRE)?

Прежде всего, давайте определим эту развивающуюся профессию, изобретенную Бен Трейнор Слосс, старший ВП инженерии в Google. С его собственных слов:

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

Типичная команда SRE формируется от 6 до 8 инженеров, чтобы сохранить сбалансированное вращение на вызове. Половина из него состоит из традиционных программных инженеров (SWE в салонах Google), а другая половина инженеров, которые почти квалифицированы как SWE, но у которых есть навыки и интересы, связанные с операционными полями: Unix Internals, Networking и так далее.

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

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

Чтобы противостоять этим огромным обязанностям и сложным проблемам масштабирования, они тщательно управляют их временем. Они делают это необычным способом: Они должны посвятить менее 50% своего времени на оперативные задачи, труд и аварийного реагирования . Большую часть своего времени должно быть потрачено на написание программного обеспечения и инструментов, которые автоматизируют свою работу или убедитесь, что их приложение исцеляет себя.

Девенс против Sre.

DevOps — это движение, начатое в 2008-2009 гг. Patrick Debois продвигать ловкость в процессе развертывания, и уменьшить разрыв между разработчиками и OPS.

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

Можно было эквивалентно рассматривать SRE как конкретную реализацию DevOps с некоторыми идиосинкрачными расширениями.

Балансировка наличия и скорость

Я ожидал, что эта книга научит мне секретный путь Google к «всегда доступной системе ™». Я был неправ, но я узнал гораздо более ценный урок. Инженеры Google не сосредотачиваются на 100% доступности, потому что это нереально и неустойчиво.

Вместо этого, согласно бизнес-требованиям и ожиданиям, каждая заявка или производственная система получает объективный уровень обслуживания (SLO). Для типичного приложения Google SLO устанавливается около 99,99% (наличие «четырех дел» («четыре дельны»), или наличия 99,999% («пять дел») успешных запросов на все запросы.

Вот Как количество нищих переводит в течение времени в год :

  • 99% («Два нис»): 3,65 дня
  • 99,9% («Три нис»): 8,77 часа
  • 99,99% («Четыре нис»): 52,60 минуты
  • 99,999% («пять дел»): 5,26 минуты

В Marmelab большинство наших проектов имеют 99,9% времени работы (три нитка, не так плохо!), Хотя мы сосредоточены гораздо больше по скорости, чем наличие. Одной из важных вынос из книги SRE является то, что если мы когда-либо хотели добраться до следующей оценки уровня обслуживания (четыре дельна), мы должны были бы увеличить наши усилия на наличии десять раз Отказ

Разница между наличием 100% и «X Nine» важна, потому что она обеспечивает измеримый номер для маневра. Например, Если недоступность измеряется с точки зрения незапланированных простоя, и SLO устанавливается на 99,9%, более года считается приемлемым, чтобы иметь около восьми часов простоя.

Этот относительно тонкий край приемлемого и незапланированного простоя — это способ измерения риска, вызванного скоростью. Если доступность уменьшается и становится ближе к SLO, команда SRE должна замедлить доставку функций и сосредоточиться на стабилизации приложения. Наоборот, если наличие намного выше SLO, то команда имеет некоторую маржу, и может идти вперед и выдвигать новые функции для производства.

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

Устранение труда

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

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

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

Как разработчики, мы также должны позаботиться о труде каждый день — это просто делает другую форму. Ручные тесты являются наиболее распространенным трудом, поэтому мы пишем автоматизированные тесты. Вторым наиболее распространенным трудом является Развертывание и управление выпуском В основном. Непрерывная доставка — это роскошь, которую я определенно рекомендую! Другие трудики более тонкие: Обновление зависимостей которые не нарушают изменения, Производительность бенчмаркинга , Уязвимости аудита безопасности , так далее.

Устранение труда повышает способность масштабировать и заставляет заявку приятнее играть с. Вам решать, чтобы найти его и автоматизировать! Лучший способ — включить эту рутину как привычку на ежедневной основе, как и любая другая практика развития.

Безспективная культура ретроспективных

У Sre есть культура непрерывного улучшения (какие гибкие методологии переводятся как ретроспектива ) в форме постммерм . Каждый раз, когда проблема или несчастный случай достаточно велик или является лицом к пользователю, инженер на вызове пишет постмертем, другой инженер отзывы об этом и публикует его всей команде.

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

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

Это трудно сделать, но удаление виноваты и чувствует с ретроспективами (и в этом случае постммерм) дает доверие к обогащению реальных вопросов. Более того, большинство сбоев системы обусловлены человеческой ошибкой.

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

Заключение

Эта книга полна идеи, и я писал только о них очень маленькую часть. Среди других технических советов, таких как «делить и завоевание» или «простота по дизайну», он также учит, как Google весывает человеческие взаимодействия между его сотрудниками.

Я тепло рекомендую Инженерия надежности на сайт К любому, кто заинтересован в масштабировании производства и дежопах, конечно, особенно Практики Часть, которая полна практических вещей.

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

Но я также рекомендую прочитать Принципы Часть каждому владельцу продукции и гигиенена, чтобы получить лучшее понимание того, как команды OPS работают и сотрудничают.

Книга модульная и легко доступна. Вы можете прочитать просто главу этого, не понимая, как работает инфраструктура Google.

Книга SRE — Бесплатно читать онлайн или вы можете найти его на Amazon Действительно

Инженерия надежности на сайте — это новое и очень интересное поле, и вы можете рассчитывать больше об этом на этом очень блоге.

Дальше чтение о Sre:

Image Credit: Центр данных Google Finland

Оригинал: «https://dev.to/kmaschta/site-reliability-engineering-googles-secret-sauce-for-high-availability-and-happy-ops-34li»