Вопрос

На моей повседневной работе у нас есть веб-серверы с балансировкой нагрузки, которые взаимодействуют с серверами приложений с балансировкой нагрузки через веб-службы (и в последнее время WCF).В любой момент времени у нас есть 4-6 различных команд, которые могут добавлять новые веб-сайты или сервисы или использовать существующие сервисы.У нас, вероятно, есть около 20-30 различных веб-приложений и соответствующих сервисов.

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

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

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

Какие есть варианты для попытки наметить отношения между веб-сервисами?По большей части, мы в основном говорим о внутренних сервисах (web to app, app to app, batch to app и т.д.).Навскидку я могу придумать два способа подойти к этому:

  • Анализируйте сборки на наличие любых веб-ссылок.Недостатком здесь является то, что не все является веб-ссылкой, и я не уверен, как перечислены соединения WCF.Однако это, по крайней мере, было бы началом для поиска 80% соединений.Кто-нибудь знает о каких-либо инструментах, которые могут провести такой анализ?Как я уже сказал, я использовал Reflector для ссылок на сборку, но ничего не могу найти для веб-ссылок.
  • Возможно, подключитесь к IIS и пассивно следите за входящим и исходящим трафиком и каким-то образом выясняйте, что вызывается и откуда.Мы рассматриваем корпоративные инструменты, которые могли бы помочь, но пройдет некоторое время, прежде чем они будут внедрены (и будут стоить дорого).Но есть ли там что-нибудь, что могло бы помочь быстро и дешево?В частности, один инструмент (AmberPoint) может подключаться к IIS на серверах и отслеживать входящий и исходящий трафик, добавляет немного специального соуса и начинает строить карту трафика.Очень хороший, но стоит дорого.

Я знаю, я знаю, как, черт возьми, ты вообще вляпался в эту историю?Это просто попытка помочь нам взять ситуацию под контроль и выбраться из нее.

Спасибо, Мэтт

Это было полезно?

Решение

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

Я думаю, что самым быстрым решением было бы запросить ваши журналы IIS и найти исходные URL-адреса, исходящие от ваших собственных серверов.Вы, по крайней мере, смогли бы отследить, с каких серверов приходят ваши потребители.

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

Вы правы насчет Амберпойнта.Существуют и другие инструменты, которые каталогизируют трафик сервисов и предоставляют отчеты, показывающие, что происходит с вашими сервисами.У Systinet, SOA Software и Actional также есть продукты, похожие на Amberpoint, но, по-моему, у Amberpoint есть бесплатная версия.

Другие советы

Самый простой способ - просмотреть журналы, но если в них нет ссылки, вы также можете захотеть отслеживать, что передается из вашего Интернета на сервер приложений.Вы можете использовать такие инструменты, как Wireshark или Microsoft Network Monitor, чтобы просмотреть этот трафик.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top