Серии трафика миллиардного уровня — практика реализации распределенного развертывания службы

оптимизация производительности
Серии трафика миллиардного уровня — практика реализации распределенного развертывания службы

Привет всем, я树下搜胡(Название происходит от романа, который я читал раньше, может быть, все читали, изменил слово О(∩_∩)О ха-ха~), технический старик, который занимается интернет-индустрией более 10 лет, сражался на переднем крае технологий, преодолевая трудности, в данный момент работаю архитектором в неизвестной интернет-компании, спасибо за внимание, в будущем буду больше общаться.

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

При необходимости вы можете обратиться к

Если было полезно, не забудь поставить лайк ❥

Публичная учетная запись WeChat открыта, cto Alliance, студенты, которые не обратили на это внимание, не забудьте обратить внимание!

1. Развертывание версии для одной машины

1.1. Архитектура развертывания

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

1.2. Тестовый случай давления

Отчет о полимеризации: среднее время отклика, пропускная способность (количество запросов в секунду)

График кривой TPS:

График кривой ВУ:

Чрезвычайно высокие требования: каждый интерфейс составляет десятки мс, в пределах 100 мс

2. Раздельный режим

2.1. Отдельная архитектура развертывания

Для связи с сервером используется связь внутри сети, поэтому влияние сети незначительно. (связь внутри локальной сети)

2.2. Ситуация с испытанием под давлением

Совокупные отчеты: увеличение на 400 запросов в секунду

График кривой TPS:

РТ: время отклика

Процессор, ввод-вывод, память являются эксклюзивным режимом для программы.

3. Распределенное развертывание

3.1. Архитектура развертывания

Оценка трафика: Одна машина: 3288 2 машины: 3288*2 = 6500+

3.2. Openresty

скачатьоткрытый отдых имеет .org/capable/download…

.configure

make && make install

Установка по умолчанию: /usr/local/openresty

Конфигурация:

3.3. Ситуация с испытанием под давлением

Сводный отчет:

График кривой TPS:

Обычно настроенный сервер: развертывание нескольких служб на одном сервере имеет низкую производительность и низкую стабильность; Высокопроизводительный сервер: 64cpus 128G IBM Unix ($200w) ------ автономное развертывание ---- перезагрузка

4. Масштабируемая емкость K8s

4.1. облачный носитель

Alibaba: В прошлом году все проекты были переведены в облако (порядок: 50 Вт+/с)

Облачный родной:

Большое количество серверов образуют среду, и эта среда может рассматриваться в целом, которая является компьютером (CPU: сумма, память: сумма)

Вопрос: сложно управлять

Openstack 
  构建企业级私有云 (虚拟机)
容器(docker容器)
   Docker容器中部署很多服务,海量服务需要部署,意味着有海量的容器(google:2亿容器/day)

Проблема: сложно управлять

	Kubernetes 

Облачный родной:

1、容器化 (所有的项目都必须跑在容器中)
2、微服务 (按照function进行拆分)
3、DevOps  开发+运维
4、ci/cd
CNCF : service mesh 服务网格架构加入云原生 (服务限流,熔断,治理…… istio)

架构师: 构建适合云原生的项目架构即可

Бессерверный ---- без обслуживания

4.2. Архитектура развертывания

Если служба POD обнаружит, что использование ЦП и памяти слишком велико, она немедленно расширит емкость модуля, чтобы облегчить атаку большого трафика. Следовательно, также необходимо развернуть HPA (автоматически запускать расширение и сжатие)

Стресс-тест: HPA Увеличение использования памяти, ЦП, расширение емкости и увеличение параллелизма

4.3. развертывать

1. объект ресурса развертывания развертывания 2. Объект сервисного ресурса 3. Входной ресурсный объект 4. Ресурсный объект HPA

Пропускная способность одного устройства POD: (1 ЦП, 2 ГБ памяти)

TPS:

4.4. Реализация расширения

Можно обнаружить, что когда наступает пик трафика, реплика пода расширяется;