Неизвестная большая перемена позади WeChat: как они «передвигают слона в холодильник»?

В середине января 2020 года, менее чем за неделю до Весеннего фестиваля, Стивен Лю, глава отдела технологической архитектуры WeChat, был очень взволнован: предстоящая новогодняя ночь — самое загруженное время года для бизнеса WeChat, и сотни миллионов пользователи будут в этот момент Отправляя новогодние поздравления и красные конверты WeChat, серверы WeChat также испытывают все большее влияние с каждым годом.

Чтобы каждый мог получить новогодние благословения в соответствии с графиком и получить красные конверты WeChat, техническая команда WeChat переходит в режим «Гарантия весеннего фестиваля» в конце каждого года, чтобы проводить стресс-тесты сервера, чтобы убедиться, что WeChat не упадет. цепь.

Самый критический момент, очень сложная проблема

Но на этапе тестирования этого Весеннего фестиваля что-то пошло не так.

Красный конверт WeChat, появившийся в 2014 году, пережил серьезный сбой во время Весеннего фестиваля того года, и некоторые пользователи какое-то время не могли получить красный конверт, а также не могли увидеть сумму красного конверта. В следующем году WeChat выиграл право взаимодействовать с рекламой гала-концерта Весеннего фестиваля. В канун Нового года общее количество отправленных и полученных красных пакетов WeChat в Китае достигло 1,01 миллиарда раз, а общее количество встряхиваний WeChat во время гала-концерта Весеннего фестиваля достигло 11 миллиардов раз.В этом году WeChat был хорошо подготовлен и в целом стабильная, с редкими небольшими простоями.

Поэтому нехорошо иметь проблемы с тестированием перед Праздником Весны.

Стивен Лю сказал:

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

Так называемый стресс-тест призван расширить возможности серверов WeChat онлайн. После завершения расширения проведите агрессивное моделирование, чтобы смоделировать пиковые данные в 0:00 в канун Нового года, чтобы увидеть, насколько этот год может увеличиться по сравнению с прошлым годом, а затем полностью смоделируйте эту сумму и примените ее к системе.

Простое понимание похоже на то, как веб-сайт проводит DDoS-атаку на себя, проверяя, сколько людей могут получить доступ к веб-сайту одновременно без простоев. Более распространено понимание, что ресторан подбирает клиентов.Места и повара ресторана могут принимать одновременно только 100 гостей в межсезонье, однако в пик сезона может быть 300 гостей, которым нужно поесть. в то же время.В это время необходимо расширить ресторан заранее, чтобы набрать поваров.Похоже на "расширение", или если это действительно не работает, пусть гости стоят в очереди снаружи.

Однако WeChat не может отправлять и получать сообщения в очереди.

Проблема, с которой столкнулась техническая команда WeChat и Стивен Лю на этот раз, похоже, явно расширила ресторан и наняла больше поваров, но в то же время можно принять только 150 гостей, что не достигло цели в 300, а в это время , повара все еще довольно заняты, а места пусты.Также было очень пусто, и снаружи стояла очередь людей.

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

За проблемой стоит огромное изменение, неизвестное WeChat

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

Это большое изменение началось с революции Tencent 930 в 2018 г. 30 сентября 2018 г. Tencent снова внесла серьезные коррективы в структуру компании.Первоначальные семь бизнес-групп были реорганизованы и интегрированы, а недавно созданная бизнес-группа Cloud and Smart Industry (CSIG) ), платформа с Content Business Group (PCG). Среди них CSIG реализует грандиозное видение Tencent ToB, а WeChat Business Group (WXG) объединяет большинство C-конечных пользователей.

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

До реформы Tencent 930 Tencent не предоставляла унифицированную облачную инфраструктуру для своего внутреннего самостоятельно разработанного бизнеса, а приняла модель серверов физических машин. С макроэкономической точки зрения, учитывая огромное количество пользователей и объем бизнеса WeChat, самостоятельно разработанная миграция в облако может принести огромные преимущества в плане затрат и эффективности, которые выгодны как для бизнеса WeChat, так и для Tencent Cloud.

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

Проблема с предыдущей опрессовкой возникла в процессе замены колеса.

На самом деле колеса пора менять, сказал Стивен Лю:

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

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

▲ Предыдущий отчет WeChat PPT

Это требование по снижению затрат и повышению эффективности побудило команду WeChat впервые оптимизировать архитектуру сервера и в то время принять системную архитектуру под названием YARD.

Однако на этот раз самостоятельно разработанная облачная платформа должна быть согласована с Tencent, и принята системная архитектура K8S с открытым исходным кодом.По сравнению с YARD, архитектура K8S более открыта и имеет неотъемлемые преимущества в адаптации к искусственному интеллекту и большим данным. рамки. Сейчас многие функции WeChat связаны с искусственным интеллектом и большими данными, например преобразование голоса в текст и перевод текста.

Другими словами, в 2014 году WeChat принял архитектуру YARD для очень простой цели, которая заключалась в том, чтобы помочь гибко планировать ресурсы сервера и сократить расходы, не считаясь с большей сложностью и долгосрочностью, а K8S в то время не был открытым исходным кодом.

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

Эдсел Ван, инженер инфраструктуры WeChat, рассказал Айфанеру о макроэтапах самостоятельной разработки WeChat и миграции в облако:

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

После реформы 930 в 2018 году продвижение компанией собственных исследований и облачной миграции прошло два этапа. Первый этап — с 2018 по 2020 год. Компания в основном изменила способ предоставления серверов, то есть с первоначального предоставления физических машин на CVM (Cloud Virtual Machine, облачная виртуальная машина). Второй этап начинается с 2020 г. Компания также требует от каждого бизнес-подразделения изменить некоторые внутренние системы планирования на K8S, для нас это означает переход с YARD на K8S. На первом этапе, от исходной физической машины до использования CVM, поскольку мы разработали YARD в качестве уровня планирования, наша основная работа состоит в том, чтобы заставить YARD адаптироваться к облаку, поскольку изначально YARD поддерживала физические машины. Теперь, когда YARD поддерживает виртуальную CVM машин, бизнес-уровень не нуждается в больших изменениях.

На втором этапе для команды WeChat необходимо использовать K8S, то есть заменить платформу YARD собственной разработки на возможности планирования кластера K8S, предоставляемые Tencent Cloud. Чтобы сделать эту миграцию более плавной, мы запланировали три шага в процессе замены YARD на K8S. Первый шаг — решить проблему, может ли WeChat работать на K8S, и может ли программа работать на нем. Вторым шагом является перенос части опыта, накопленного YARD, на K8S, чтобы K8S можно было привести в соответствие с исходными возможностями YARD, а затем можно было использовать все возможности, предоставляемые оригинальным YARD. На третьем этапе мы должны в полной мере использовать возможности K8S, потому что мы предоставили первые два шага, предоставленные YARD.На третьем этапе мы должны полностью использовать возможности K8S, что в основном отражено в стоимость и эффективность.

Первые два шага мы выполнили до 2020 года. Со второй половины 2020 года мы начали использовать K8S в больших масштабах, а в 2021 году вышли на третий шаг. С текущей точки зрения, наша стоимость и эффективность исследований были дополнительно улучшены по сравнению с оригинальным YARD. С точки зрения облака в широком смысле, у команды WeChat также есть знаковое событие в продвижении виртуальной машины CVM ранее, то есть команда хранения также совершила прорыв в облаке, потому что WeChat всегда использовал в себе -разработанная система хранения, мы испытали множество различных DB (база данных, база данных) и KV (ключ-значение, разновидность системы базы данных) за последние десять лет и, наконец, осознали возможности облачного хранилища в версии infinityKV. Во второй половине 2020 года будет запущен infinityKV, и около 80% данных в фоновом режиме WeChat хранится в новой системе infinityKV.

Это облако (процесс) WeChat, о котором я упоминал, то есть есть несколько шагов (процесс), чтобы переместить слона в холодильник.

Эдсель Ванг далее представил постепенно возникающие ограничения YARD.В 2014 году отраслевое определение облачной платформы было не очень четким.С другой стороны, аппаратная среда Tencent сильно отличалась от текущей облачной аппаратной среды. В то время YARD разрабатывался и проектировался в этой аппаратной среде, из-за чего в нем отсутствовали некоторые основные возможности, такие как виртуализация дисков и сетевых карт.

В начале проблема стресс-теста, возникшая при саморазвитии и миграции WeChat в облако, заключалась в сетевой карте, причина заключалась в том, что Tencent Cloud использовала в то время новую модель, а операционная система и оборудование CVM не хорошо адаптирован.

Наконец, команда технической архитектуры WeChat временно решила проблему, заключавшуюся в том, что загрузка ЦП была небольшой, но производительность сетевой карты была узким местом методом спасения страны через кривую. Проще говоря, если исходный ЦП сервера имеет 180 ядер, а 90 ядер оснащено 1 сетевой картой после нарезки, то в результате сетевая карта загружена полностью, а загрузка ЦП составляет всего около 20%. Команда технической архитектуры WeChat повторно сегментировала ядро ​​​​ЦП и изменила его на 48 ядер ЦП, соответствующих одной сетевой карте, так что загрузка ЦП составляет более половины, а нагрузка на сетевую карту не является узким местом при полном использовании производительности.

Это решение симптомов, это решение симптомов, а решение первопричины — CVM для оптимизации планировщика сетевой карты. Оптимизация планировщика сетевой карты CVM и переход на K8S позволяют фоновому WeChat более эффективно контролировать сетевой трафик, дополнительно повышая гибкость и стабильность фонового развертывания WeChat.

Меняться не страшно, страшно не меняться

В 2013 году WeChat пережил самый продолжительный сбой. Из-за того, что экскаватор оборвал оптический кабель связи, бизнес-запросы Восточно-китайского центра обработки данных были обращены к Южному Китаю и Северному Китаю, что привело к параличу сервисов WeChat более чем на пять часов.

С тех пор, когда в следующем году была развернута архитектура YARD, WeChat выполнял важную функцию: поддержку трех кампусов. То есть построить в каждом городе по три компьютерных зала (парка).Сеть и питание компьютерных залов независимые.Даже если одно из оптических волокон будет отрезано, в качестве поддержки остаются два других.

Это общепринятая концепция «избыточности» в сегодняшних развертываниях серверов.

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

За 11-летнюю историю WeChat определение WeChat также постоянно меняется. Моменты, красные конверты WeChat, небольшие программы, видеоаккаунты и другие функции, основанные на узлах, снова и снова расширяют определение WeChat — социальной сети, платежного инструмента и контент-платформы.

Поддержка серверов WeChat также сталкивается с таким постоянно меняющимся процессом.

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

Однако изменения погоды и поведение пользователей в определенном месте непредсказуемы.Неизбежна коллективная отправка красных конвертов в ноль часов на Праздник Весны и в канун Нового года, и подобных неизбежностей много. Например, концерт Джей Чоу. номер видео транслируется в прямом эфире, и десятки миллионов зрителей правы.Это огромный тест сервера WeChat, но его можно подвергнуть стресс-тестированию и развернуть заранее.

Вспоминая прямую трансляцию в сентябре прошлого года, Бок Чжоу, бэкенд-разработчик видеоаккаунта, все еще был взволнован.

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

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

Стивен Лю, руководитель отдела технической архитектуры WeChat, сказал:

Я поделился с командой точкой зрения более года назад и в качестве аналогии взял 5 уровней автономного вождения. Уровень 0 — это управление человеком без какой-либо автоматизации. На уровне 1 есть некоторая помощь при вождении, на уровне 2 более сильная помощь при вождении, на уровне 3 уже есть определенная степень способности к автоматическому вождению, а затем есть уровень 4 и уровень 5.

Одна из моих надежд состоит в том, что в будущем он сможет добиться такого же автоматического вождения, а в будущем, когда Праздник Весны гарантирует, что он сможет полностью управляться машинами. Вероятно, несколько лет назад мы были на уровне 0. Позже, после YARD, это был уровень 1. После изучения различных возможностей K8S в течение 2021 года я думаю, что сейчас мы должны быть на уровне 2. Я надеюсь, что в следующий раз смогу достичь уровня 3 с относительно полными функциями автоматического вождения.

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

#Добро пожаловать на официальный аккаунт Айфанер в WeChat: Айфанер (WeChat: ifanr), в ближайшее время вам будет представлен более интересный контент.

Love Faner | Исходная ссылка · Просмотреть комментарии · Sina Weibo