Первоначально опубликовано на Ошибка неизбежна Отказ
Twitter Sre Team является одним из самых продвинутых в отрасли, управляя услугами, которые захватывают импульс мира каждый день и на протяжении всего моментов, которые соединяют нас всех. У нас была привилегия интервьюирования Брайана Брифи, СР. Сотрудники СРР, Кэрри Фернандес, руководитель инженерной надежности сайта, JP Doherty, инженерные менеджеры и ZAC Kiehl, SR. Персонал пытается узнать о том, как SRE практикуется в Twitter.
Как компания, Twitter составляет около 4800 сотрудников, сильных с офисами по всему миру. SRE является частью инженерной организации формально с 2012 года, хотя основательная практика вокруг надежности и операций начала возникать ранее. Сегодня SRE в Twitter представлены как встроенные, так и основные/центральные модели взаимодействия, с членами команды, которые держат название SRE, а также без того, но кто выполняет обязанности SRE. Независимо от их роли или титула, ключевая мантра среди тех, кто заботится о надежности, — «Давайте лучше сломать вещи в следующий раз».
Чтобы узнать о том, как практика надежности в Твиттере развивалась, чтобы поддержать их взрывной рост, давайте погрузимся в свое путешествие Sre вместе.
В то время как команда SRE была официально объявлена в 2012 году, его практика предшествует 2012 года в том, что там уже существовали операции и программные инженеры, которые имели невероятное внимание и влияют на надежность.
До 2012 года в Твиттере была традиционная команда OPS с Sys Admins, которые отвечали за операции по центру обработки данных, системы обеспечения, DNS, управление пакетами, развертывание и другие типичные обязанности. Команда по эксплуатации релиза отвечала за развертывание Ruby on Rails Monolith, а также построило тестирование и инфраструктуру вокруг его благополучно проскальзывания. В то время с монолитной кодовой базой было меньше ограниченных границ обслуживания, а также ограниченные интерфейсы обслуживания и API, что затрудняет обнаружение проблем.
Эти ранние команды, ориентированные на надежность, начали работать над разработкой сигналов для мониторинга использования ресурсов, выкатывая предупреждение в их экземплярах путем поэтапного подхода. Одновременно инженерная организация начала разлагаться монорельсы на Scala MicroServices. Это привело к реструктуризации из одной инженерной группы, работающей на одном монолите для нескольких услуг, ориентированных на сервисных командах для основных областей продукции, таких как твиты и сроки.
Sre появился как практика, чтобы обеспечить эксплуатационный опыт и готовность к этим распределенным основным командам программного обеспечения, начиная с встроенных СРЭ в командах. Со временем, поскольку архитектура отправилась от одного сервиса до сотен и тысяч услуг, также сформировалась специальная команда SRE: 24×7 Twitter Command Center, также известный как TCC.
Twitter SRES имеют первые ключевые инициативы для проведения консистенции и повторяемости, включая следующие:
* Развертывание и тестирование: один процесс развертывания, тестирование Redline, тестирование синтетического нагрузки * долговечность, а также приборостроение и метрики по всей системе для обеспечения ситуационной осведомленности * Большое планирование событий, управление инцидентами и постмертем
TCC также следит за визуализациями инфраструктуры и здоровья продукта в реальном времени, а также приводит к управлению инцидентом, когда происходит воздействие на продукцию и/или надежность.
Такие практики и ресурсы позволяют команде подготовиться к вопросам, которые они обучали себя спрашивать, и водить постоянный ответ по инженерам, таким как:
* Будет ли система поддерживать ожидаемую нагрузку? * Сколько емкости нужна? * Каковы следующие узкие места?
События большого трафика особенно интересны: шипы могут не обязательно быть больше, чем ежедневные пики, как интернет-трафик на Twitter Elbbs и потоки в течение всего глобального дня. Ключевое отличие состоит в том, что ежедневный пик может занять несколько часов, чтобы постепенно подняться, а затем возвращаться, тогда как с большими событиями оно может быть внутри минуты, создавая гораздо больший риск нестабильности. Инженеры используют тестирование стресса и отказов для информирования о готовности событий. Команда создает PlayBooks, чтобы подготовиться к большим событиям трафика, которые начинаются с ключевых сводных деталей, таких как кто-вызов, различные способы достижения их, эскалаций и топ-литровых метрик вокруг области продукта, чтобы определить, будет ли услуга здоровой или нездоровое состояние. Они играли в пьесы также погрузитесь в том, как предвидеть то, что может пойти не так, основано на существующих знаниях о системах и что согласовано на действия, чтобы принять, если кто-либо из них происходит. Как отмечает Кэрри, «Twitter также обладает автоматической инфраструктурой, которая принимает корректирующие действия, основанные на различных деградации производительности SLO».
В последствиях инцидентов команда придерживается безумного постммерного процесса. Основная цель постмертем состоит в том, чтобы поверхности, способствующие факторам, которые могут быть интеллектуально решены, а также для создания следующих пунктов действий (а также консенсус по приоритетному приоритету последующей деятельности). С лучшей документацией и целенаправленным действием для решения пробелов в ограничениях скорости, оповещения или другими процессами, команда выровнена на том, как предотвратить аналогичное происходящее происхождение.
Важной особенностью безупречной культуры Twitter — это различие от подотчетности, ожидая вперед, а не назад, поэтому члены команды не придерживаются ответственности за прошедшие решения, которые могут быть ошибками или надзорами. Участники команды предполагают позитивные намерения, и что их коллеги приняли решения, основанные на инструментарии и контексте, которые они имели в наличии. Скорее, типичное понятие подотчетности перевернуты на его голове, так что оно фокусируется на том, что должно быть сделано для решения уязвимостей, которые создали место для провала. Другими словами, сделал что-то о приспособлении членов команды ведущей команды в неоптимальный результат, и что можно сделать, чтобы улучшить это?
Кэрри добавляет: «Во время постмертемного процесса это часто более просты, чтобы сосредоточиться на дефекте или ошибке как основную причину инцидента. Следствием того, что подход может означать аналогичные инциденты, могут продолжать происходить, но в других службах или с несколькими различными презентацией. Twitter разработал свой постмертемный процесс, чтобы также посмотреть сбои процессов и возможностей для автоматизации этих процессов для систематического решения потенциально более широких проблем, которые представлены в течение одного инцидента ».
Хотя есть люди, которые наняты в Twitter, в частности, как SRES, некоторые также в боковых «отделении» от внутренних команд в роль Sre. Кроме того, в то время как есть некоторые, которые формально имеют SRE в качестве заголовки, Twitter также имеет программные инженеры и команды платформы, которые могут не иметь надежности в их названии, но это ядро для их квалификации и основания, которое он играет в инфраструктуре.
Независимо от их титула, Twitter повезет, что владельцы внеочередных служебных услуг, которые понимают зависимости в многослойной распределенной архитектуре обслуживания, а также при возникновении аномальных узоров, они являются первыми изготавшими из-за их способности к сложным ситуациям.
Кроме того, поскольку надежность была такой основной аспект эволюции Twitter Evolution с течением времени, трудно изолировать влияние Sre. В качестве примера разложение монорельса в микросервисы поддерживали FINAGLE, библиотеку RPC Twitter, которая реализует много функций основной надежности. Поддерживается командой основных систем Twitter (CSL), Финагль Доставляет многие функции инженерных функций надежности в стек обслуживания Twitter, включая соединительные бассейны, балансировку нагрузки, детекторов отказов, стратегию отработки отработки, автоматические выключатели, запрос на время ожидания, ретримоты, заднее давление и многое другое. В то время как FINAGLE не был построен или доставлен SRES, это большая часть истории надежности твиттера, которая получила практику, к которой она сегодня.
Брайан, Зак и JP также указывают на поддержку руководства как необходимо для обеспечения надежности первоклассному приоритету, который помогли катализировать инициативы и нанять для поддержки надежности. Из-за уникального места Twitter в общественном диалоге аварии из-за событий с огромными наполнениями твитов, таких как Новый год, а также привлечение замка в небе. В то время как кит излучения был первоначально предназначен для демонстрации того факта, что проводится те, что исправления масштабируемости, она также стала сигналом для руководства важности надежности для успеха бизнеса и общественного восприятия. Организация в целом стала беспокойно сосредоточена на том, как «изящно» потерпеть неудачу и минимизировать влияние будущих масштабных событий.
Препараты для Кубка мира в 2014 году были особенно гордным моментом для команды. Инженерная организация внедрила структуру тестирования синтетических нагрузок для моделирования шипов движения в мероприятиях и их потенциальному воздействию на основные услуги. Они проходили просмотр процесса просмотра доступа до производства (который можно рассматривать как преподавательный запуск) для аудита своих ронгоровок, панелей мониторин и предупреждений. Как часть упражнений, команда рассмотрела их игрушкование нагрузки на выброс нагрузки, что продиктовало порядка шагов, если необходимо будет нагрузить нагрузку на сайт во время катастрофического сценария.
Prep в день игры помог команде приоритетировать то, о чем они заботились, и действия, которые они собираются взять, снизить риск и стресс в случае реального инцидента. В свидетельство их замечательных усилий все вышло без сцепки в большой день.
Ожидаемый трафик только что ожидаемый — поэтому в подготовке к крупным мероприятиям трафика всегда есть элемент догадок. Но со временем в Twitter Engineering Team стала все более устойчивыми и адептами выветривания комплексных мероприятий, уступая сильное чувство цели и проверку всех авансовых инвестиций в надежность.
Оригинал: «https://dev.to/blameless/twitter-s-reliability-journey-2fhl»