Slack: выводы из отключения обслуживания на этой неделе

В среду утром наши коллеги в новом стеке начали спрашивать друг друга, на встречах и с помощью паникованных электронных писем: эй, у вас проблемы со Slack?

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

Новый стек-это всеобъемлющая организация, с сотрудниками и участниками, разбросанными по всему миру; В результате мы в значительной степени полагаемся на слабые, чтобы поддерживать нас. Так же как и пользователи в более чем 150 странах. Слэк, принадлежащий Salesforce, сообщает, что 77 из Fortune 100 используют услугу обмена сообщениями. Пользователи Slack включают Airbnb, Target, Uber и Департамент по делам ветеранов сша.

Что вызвало отключение? А какие уроки могут извлечь другие инженерные команды из инцидента?

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

«Работа по восстановлению включает в себя ремонт пораженных осколков базы данных, которые вызывают проблемы с ухудшением функций», — прочитал обновление статуса Slack в 16:04 EST в среду. «Это стало усердным процессом, чтобы убедиться, что мы определяем приоритеты в репликах базы данных с наибольшим воздействием».

В 7:42 вечера EST компания опубликовала, что она «восстановила полную функциональность для всех затронутых функций Slack, таких как отправка сообщений, рабочие процессы, потоки и другие функции, связанные с API».

Но работа продолжала возвращаться к нормальному обслуживанию. В четверг он опубликовал обновление TimeStemed 10:17 EST, предупреждая пользователей о том, что события, созданные во время простоя, «находятся в очереди и в настоящее время приостановлены. Мы ожидаем, что это займет время, и будет обновлять ежечасно по прогрессу. Приложения и интеграции продолжают функционировать как нормальные для новых представлений и событий ».

Проблема с MySQL

В отсутствие более полного объяснения от Slack, что мы знаем о том, что могло пойти не так на этой неделе?

Вот что мы знаем: приложение Slack было впервые представлено в 2013 году, и с самого начала, согласно сообщению, опубликованному в декабре 2020 года, в блоге Slack Engineering, оно использовало MySQL в качестве механизма хранения для своих данных. В 2017 году он начал мигрировать свое хранилище данных в Vitess, систему масштабирования базы данных с открытым исходным кодом для MySQL.

По мере того, как компания выросла, в «Пост» говорится: «Наши команды по производительности приложений регулярно сталкивались с проблемами масштабирования и производительности и необходимы проектировать обходные пути для ограничений архитектуры Sharded Works -Shard».

Решение о мигрировании в визса было обусловлено общими проблемными организациями, с которыми сталкиваются организации по мере масштабирования: насколько разрушительно было бы отказаться от своих устаревших технологий. Он был глубоко женился на MySQL.

«В то время в приложении были тысячи различных запросов, некоторые из которых использовали специфичные для MySQL конструкции»,-говорится в блоге, написанном инженерами Slack Rafael Chacón, Arka Ganguli, Guido Iaquinti и Maggie Zhou. (Чакон и Чжоу сейчас на фигме, Гангули, в том же духе, а Iaqunti-соучредитель Safetyclerk).

«И в то же время у нас были многолетнюю эксплуатационную практику для развертывания, долговечности данных, резервных копий, состав данных ETL, соответствия и многое другое, все из которых были написаны для MySQL.

«Это означало, что уход от реляционной парадигмы (и даже из MySQL) было бы гораздо более разрушительным изменением, что означало, что мы в значительной степени исключили данные NOSQL, такие как DynamoDB или Cassandra, а также NewsQL, такие как Spanner или Tompachdb».

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

В обновлениях статуса Slack во время инцидента в среду, «они упомянули проблемы с поврежденными осколками базы данных», — сказал Кимбалл новому слову «Shard», сказал он, указывает на то, что «в основном то, что вы делаете, — это много клиентов, много данных, слишком много, чтобы положить в одну монолитическую базу данных. Таким образом, вы создаете много -много баз данных и называете их осколками.

«Итак, вы говорите:« Хорошо, хорошо, клиенты с одной по 100 на Shard One, а от 100 до 200 в Shard два »и так далее, верно? Проблема в том, что вы вроде в положении управления 100 базами данных. Так что у вас нет просто одной базы данных. У вас есть 100 из них, и все они отдельные. Они залиты, что на самом деле является огромной проблемой, потому что у вас может быть клиент, который слишком большой, чтобы поместиться в одном осколках ».

И в этом случае есть компромиссы, сказал Кимбалл. С одной стороны, «когда вы теряете осколок, вы теряете только подмножество своих клиентов. Но проблема в том, что у вас есть 100 вещей, которые для управления, и все они имеют свой собственный уникальный вид странности, потому что у разных клиентов есть разные способы их использования ».

Тестирование того, что пошло не так

Флагманский продукт компании Kimball, Tackroachdb, является распределенной системой управления базами данных SQL. Таким образом, он проявляет интерес к продвижению своего продукта и в хранении данных иначе, чем Slack — в одной распределенной базе данных, предназначенной для горизонтального масштабирования, со встроенной избытостью данных.

Но он также дал некоторое представление о том, почему унаследованная архитектура Слэка может столкнуться с проблемами со сложностью и устойчивостью.

«Я не знаю, сколько осколков Slack, но я думаю, что на данный момент есть немало», — сказал он. «По сути, они стали компанией с базой данных, а также компанией по обмену корпоративными сообщениями, из -за того, что они создали, которая приспосабливает эту идею осколков и устойчивость к каждому из этих осколков.

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

Если вы такая компания, как Slack, это глубоко инвестировано в систему хранения данных MySQL, с сотнями или тысячами осколков, что вы можете сделать, чтобы предотвратить бедствия обслуживания, подобные тем, которые он испытал в среду?

«Что бы ни случилось с ними, это должно быть частью их стандартного процесса тестирования», — сказал Кимбалл. Команда тестирования должна сосредоточиться на улучшении своей цели восстановления (RTO), сократив ее с девяти человек, которые потребовались, чтобы восстановить большинство услуг после отключения среды.

Что -то, что нужно иметь в виду, он сказал: «Слэк не уникален. Повсюду видели эти отключения, которые происходили в этом году. Это безумие. Из [Federal Aviation Administration]В Barclays и Capital One у каждого есть отключения.

«Но вопрос в том, хорошо, что бы ни случилось, давайте регулярно проверяем это. И когда у нас есть наши runbooks, и мы применяем их, к чему мы можем оптимизировать наш RTO? »

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

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

Стоимость устойчивости

Он отметил, что другой проблемой, с которыми сталкиваются организации, заключается в том, что стандарт устойчивости продолжает меняться. Десять лет назад, когда был основан Tockroach Labs, стандартом был: «Давайте выжить в центре обработки данных. Потому что это довольно распространено: как, когда Google начинал, это как, эй, давайте пережить узел или физическую машину, сбой или что -то в этом роде.

«Тогда это:« Давайте пережить центры обработки данных, уходящие. Тогда это: «Эй, люди хотят пережить целые регионы. И это похоже на то, что теперь люди хотят пережить поставщики целых облачных провайдеров ».

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

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

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

«Это зависит только от того, каково это ваш вариант использования и какова стоимость будет от времени простоя. [For] Финансовые услуги, это больше не вариант, особенно при проверке регулятора. Вы знаете, для Slack, может быть, они будут оставаться на своей вещи, потому что это слишком сложно двигаться. В конце концов, вы должны модернизировать вещи, и они просто найдут подходящее время ».

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Хизер Джослин является главным редактором нового стека, с особым интересом к вопросам управления и карьеры, которые имеют отношение к разработчикам и инженерам программного обеспечения. Ранее она работала главным редактором контейнерных решений, облачного консалтинга … Подробнее от Хизер Жослин

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *