У нас есть веб-кластер из 10 машин с примерно 1500 запросов / сек.
Как мы можем скопировать / клонировать весь пользовательский трафик, который поступает в этот производственный кластер, чтобы протестировать новую версию программного обеспечения, установленную на тестовом кластере немного меньшего размера?
Это должно быть копирование, а не балансировка нагрузки, т.е. реальные пользователи должны получать ответ от производственного кластера, а не тестирующего.
ОС: Linux
Спасибо.
Вы можете легко добиться желаемого с помощью Parallel Proxy (http://www.parallelproxy.com).
Примечание: я являюсь одним из владельцев Parallel Proxy.
Parallel Proxy позволяет отправлять одни и те же запросы на производственный и тестовый сервер. Клиентам отправляются только рабочие ответы, и оба набора ответов регистрируются для анализа. Предоставляемые инструменты анализа позволяют легко находить и классифицировать различия в ответах серверов, позволяя выявлять и устранять проблемы с тестовым сервером до его развертывания в производственной среде.
Я никогда не пробовал это в данном контексте, но вы можете воспроизвести файлы захвата Wirehshark / tcpdump (pcap). tcp replay сделал бы это. Таким образом, вы можете захватить трафик производственного сервера, а затем воспроизвести его на тестовом сервере, если вы чувствуете, что должны захватывать тесты «неправильных сетевых пакетов и т. Д.». Я не знаю, действительно ли это имитирует трафик, хотя, как и любой другой трафик сеанса (через Интернет или TCP) необходимо поддерживать, а пакеты должным образом изменять (например, начальные порядковые номера TCP, синхронизация ACK и т. д.).
Я по-прежнему считаю, что среда тестирования, которая будет запускать сценарии, такие как jmeter, имеет наибольший смысл (вы можете заставить их вводить «хакерские вещи» в поля на веб-странице, если вы чувствуете, что это необходимо). Затем в то же время вы можете запускать свои собственные DoS и искаженные пакеты с помощью инструмента создания, такого как scapy (scapy не быстрый, поэтому не идеальный инструмент для части DoS). Хороший брандмауэр должен обрабатывать часть DoS / Malformed Packets до того, как он попадет на сервер, поэтому обычно я бы сказал, что это два разных теста.
Я считаю, что вы ищете коммутатор с зеркалированием портов.
Из Википедия - Зеркалирование портов:
Зеркальное отображение портов используется на сетевом коммутаторе для отправки копии сетевых пакетов, видимых на одном порту коммутатора (или всей VLAN), в соединение для мониторинга сети на другом порту коммутатора. Это обычно используется для сетевых устройств, которым требуется мониторинг сетевого трафика, таких как система обнаружения вторжений. Зеркальное отображение портов на коммутаторе Cisco Systems обычно называют анализатором коммутируемых портов (SPAN); у некоторых других поставщиков есть для этого другие названия, например, Roving Analysis Port (RAP) на коммутаторах 3Com.
Ты вроде не можешь. Тем не менее, каждая среда веб-тестирования позволит вам создавать сценарии, имитирующие пользователя, и тестировать их с помощью этого, включая модульное и более крупное функциональное тестирование.