Основываясь на реальных производственных бизнес-сценариях и системных средах, он моделирует массивные пользовательские запросы и данные, тестирует и проверяет всю бизнес-связь в различных сценариях, постоянно обнаруживает и оптимизирует узкие места, а также обеспечивает стабильность системы.
Ввиду все более сложных бизнес-сценариев и воздействия огромных объемов данных процесс обнаружения и решения проблемы доступности, масштабируемости и отказоустойчивости всей бизнес-системы.
Основной процесс Основной процесс реализации полноканального стресс-тестирования выглядит следующим образом:
На изображении выше представлена топологическая диаграмма взаимоотношений основных бизнес-приложений Taobao в 2012 году. Она не включает другие неосновные бизнес-приложения. Так называемый основной бизнес — это бизнес, связанный с транзакциями и деньгами. Возможно, вы не сможете ясно увидеть эту картину, но это нормально, поскольку в то время существовало так много приложений Alibaba и запутанных взаимосвязей между приложениями, что разобраться в них вручную было невозможно.
В реальных бизнес-сценариях нагрузка на каждую систему относительно высока, и между системами существуют взаимозависимости. При испытаниях под давлением на одной машине не учитывается относительно высокая нагрузка на зависимые звенья, что приводит к неопределенной ошибке. Это похоже на то, как если бы мы хотели изготовить инструмент, каждая деталь была тщательно протестирована, и, наконец, детали собирались в инструмент. Неясно, каким будет рабочее состояние инструмента.
Техническая перспектива: снижение затрат, повышение доступности услуг и техническое обучение. & Работа в команде & Быстрое реагирование; бизнес-перспектива: улучшайте взаимодействие с пользователем, используйте технологии для лучшего обслуживания бизнеса и создания большей ценности для бизнеса.
Как следует из названия, стресс-тестирование проводится в тестовой среде и является методом тестирования для некоторых ключевых проектов, поскольку аппаратные ресурсы и данные стресс-тестирования тестовой среды слишком отличаются от онлайн-ресурсов, а зависимости между сервисами сложны. тестовая среда сложна для моделирования и недостаточно стабильна, показатели данных, полученные в результате стресс-теста, имеют мало эталонного значения, и трудно использовать результаты, полученные в тестовой среде, для вывода фактической производственной мощности.
Обычно это включает синхронное копирование аппаратного и программного обеспечения производственной среды в производственную среду, затем перехват интерфейса внешнего вызова внутри службы и последующее проведение стресс-тестирования. Таким образом можно оценить реальную производительность производственной среды и оценить ее. Цель нагрузочного тестирования может быть достигнута, однако его стоимость очень высока. Для этого требуется полная копия оборудования производственной среды, а затраты на обслуживание очень высоки. При развертывании его необходимо развертывать одновременно в предпроизводственной среде. и изменения кода стресс-теста.
В связи с непрерывным ростом объема бизнеса, учитывая точность результатов автономных испытаний, мы начали пробовать испытания под давлением на производстве. Этот метод испытания под давлением называется испытанием на отводящее давление. На самом деле, не существует реального смоделированного испытания под давлением усиления, а есть способ повысить вычислительную мощность одной машины за счет сокращения количества кластеров онлайн-сервисов. Например, если кластер бизнес-системы имеет 100 узлов, 90 из них будут моделироваться в автономном режиме или трафик будет перенаправляться на оставшиеся 10 узлов для стресс-тестирования.
Недостатком отводных опрессовок является то, что давление на ДБ остается неизменным, а давление на вышестоящую и нижестоящую системы остается неизменным. Результаты стресс-тестирования могут отражать производительность только одного приложения, но они часто не могут выявить скрытые опасности на уровне канала и архитектуры. Более того, если в процессе перенаправления трафика возникают аномалии или внезапные пиковые нагрузки, это может легко привести к сбоям в работе.
С ростом популярности микросервисной архитектуры сервисы делятся по разным измерениям, и один запрос часто включает в себя несколько сервисов. Интернет-приложения создаются на основе разных наборов программных модулей. Эти программные модули могут разрабатываться разными командами, реализовываться с использованием разных языков программирования и распространяться на тысячах серверов в различных центрах обработки данных. Поэтому нам нужны инструменты, которые помогут понять поведение системы и проанализировать проблемы с производительностью, чтобы в случае сбоя мы могли быстро обнаружить и решить проблему. Однако ее недостатки также очевидны: она требует высокой технической сложности и необходимости ее преодоления. Технические проблемы, такие как окрашивание, изоляция данных, изоляция журналов, риск автоматического выключателя и т. д., находятся в производственной среде для стресс-тестирования, поэтому риск плохого контроля также очень высок.
Таким образом, в системе со сложной микросервисной архитектурой почти каждый внешний запрос будет формировать сложное соединение вызова распределенной службы. Полная цепочка вызовов запроса может выглядеть следующим образом:
Эффект стресс-теста | техническая трудность | Стоимость машины | Стоимость обслуживания | риск | |
---|---|---|---|---|---|
Автономное испытание давлением | Разница | Низкий | Низкий | Низкий | никто |
Предпроизводственный стресс-тест | хороший | Низкий | высокий | высокий | середина |
Испытание дренажного давления | Разница | середина | никто | Низкий | высокий |
Полный стресс-тест ссылки | хороший | высокий | никто | Низкий | высокий |
На основе реальных производственных бизнес-сценариев и производственных сред моделируйте массовые запросы пользователей и данные для стресс-тестирования всей бизнес-цепочки (обычно основной бизнес-цепочки) и непрерывно оптимизируйте процесс.
Устраните узкие места всей бизнес-цепочки системы, возможности обслуживания и планирования мощности, поскольку бизнес-сценарии становятся все более сложными и оказывают огромное влияние на данные.
Когда добавлять или удалять машины, чтобы обеспечить стабильность системы и сэкономить средства?
Цель планирования мощности — позволить каждой бизнес-системе четко знать: когда следует добавлять машины, а когда следует сокращать их? Сколько машин необходимо подготовить для масштабных сценариев продвижения, таких как Double 11, чтобы обеспечить стабильность системы и сэкономить затраты?
Отображение различных показателей от общего измерения до локального измерения.,Отображение всех цепочек вызовов между приложениями в наборе информации середина.,Можно легко измерить общую и локальную производительность.,И удобно найти источник неисправности,Время устранения неполадок в производстве может быть значительно сокращено.
Используйте распределенное стресс-тестирование для имитации пользовательских запросов. В настоящее время существует множество инструментов с открытым исходным кодом, которые могут обеспечить распределенное стресс-тестирование, например JMeter, nGrinder, Locust и т. д.
Теперь мы представим и продемонстрируем общий бизнес
Оригинальный текстЧуаньчжи Образование Долина Эрудитов
Опубликовано преподавательско-исследовательским коллективом,Вторжение и удаление!