Comments 20
Как мне кажется, 160 портов, это было несколько лет назад.
https://docs.microsoft.com/ru-ru/azure/load-balancer/load-balancer-outbound-connections
Хотя это не гарантируется, максимальное количество доступных SNAT-портов на сегодня составляет 64 511 (65 535 – 1024 привилегированных портов).
Хм. Это максимум. В доке по ссылке описываются, в том числе, разнообразное случаи, когда это может быть не так Если можно, опишите вашу задачу, где вы столкнулись с этим ограничением. Можно в личку.
от них идет веб запрос в ажуровский балансировщик по внутреннему IP.
балансер распределяет запросы между виртуальными серверами винды.
проблема в том, что запросы все у нас реализованы через async и их очень много. и в какой то момент набирается очередь таких запросов и начинают сыпаться по таймауту.
Before we go, we should probably also acknowledge another long-standing problem with this design. Since Azure allocates these outgoing ports in batches of 160, it is possible that the creation of a new batch of 160 may not happen fast enough and an outgoing connection attempt will fail. We typically only see this under very high load (almost always load testing), but if you fall victim to this, the solution is the same – use a PIP.
Не совсем так. Похоже, что это ограничение у Cloud Services, а не у "любого сервера в Azure".
Я имею базовые представления о том, как работает сеть в Azure, необходимые для разрабочика, поэтому я схожу ещё к коллеге, который больше разбирается в инфраструктуре и если будет что добавить, отпишусь в комментариях.
Коллега ниже подтвердил https://habrahabr.ru/company/microsoft/blog/326054/#comment_10166032
Это ограничение связано с Cloud Services и классической моделью развёртывания.
А Cloud Services выбраны из-за простого масштабированя/развёртывания? Необходимости входных портов, отличных от 80 и 443? Ну, т.е. если ограничение "пьёт кровь", почему не перейдёте на что-то, доступное в ARM модели? Я понимаю, что есть причины, очень было бы интересно узнать, какие, если это возможно.
почему не перейдёте на что-то, доступное в ARM модели
Да по тем же причинам, почему не будем переписывать аппликацию на go. Придется отвлекать разработчиков от создания фич. Плюс отлаживание процессов в ARM модели. Плюс переписывание документации. Это дорого.
Эта статья 2015 года. В Azure новые фичи/релизы/фиксы выкатываются каждые 2 недели. Я бы не стал на 100% на неё полагаться.
Предположу, что это ограниечение связано именно с Cloud Services, и классической моделью развёртывания, только в которой они и доступны, но не касается "просто виртуальных машин", разворачиваемых по модели ARM, собственно ссылку на описание SNAT для которых я приводил ввыше.
К сожалению по работе не смог принять участие в вебинаре "Новые подходы в облачной архитектуре: контейнеры и микросервисы". Можно ли где нибудь посмотреть запись?
Да, она будет доступна через некоторое время по ссылке
https://info.microsoft.com/CE-Azure-WBNR-FY17-03Mar-28-Theuseofcontainersandmikroservisov307264_02OnDemandRegistration.html
Правда там всё равно надо будет регистрироваться.
Приложение на основе микросервисов на Azure