Екип поставя един низ за заобикаляне в споделен файл за среда. curl минава директно, друго приложение използва прокси, а контейнерът се държи отново различно. Споделеният файл разпространи същите знаци. Но не разпространи един споделен анализатор.

Трайният обект е политиката: кои дестинации трябва да са директни и при какви условия? Дръжте я отделно от низа, който всяка програма изисква.

Първо запишете очакваните маршрути

Използвайте представителни адреси, включително граници, а не само лесни успехи:

Форма на дестинациятаВъпрос към собственика на политиката
Родителски домейнТрябва ли да се заобикаля, или само неговите деца?
ПоддомейнНаследява ли същия маршрут?
Литерален частен IPДостъпен ли е този адрес директно от този клиент?
Същата услуга под име на хостТрябва ли заявките по име и по адрес да съвпадат?
Друг порт на услугаИзключението покрива ли хоста или един слушател?

След това идентифицирайте потребителите: демонът, който изтегля образ, програмата вътре в контейнера, HTTP библиотека за език и интерактивен браузър могат да бъдат отделни записи. Прокси конфигурацията на Docker клиент може да попълни стойностите на средата на контейнера, без всеки клиент вътре да трябва да прилага същите правила за съвпадение.

Преведете, вместо да копирате сляпо

Един документиран пример за реална разлика е границата на родителския домейн. Изключването на домейн в curl покрива посочения домейн и съответстващите деца. Политиката за среда на .NET различава голото име от формата на поддомейн с водеща точка. Универсално правило винаги да се добавя водеща точка не може надеждно да изрази и двете политики.

Поддръжката на IP диапазони също зависи от потребителя и неговата версия. Машина с нов самостоятелен curl все още може да изпълнява приложение, свързано със стар libcurl, или клиент, който използва напълно друга библиотека. Версията на операционната система не е пълен опис на клиентите.

За всеки потребител запишете поддържания интерфейс за конфигурация и най-малкия израз на предвидените маршрути. Кратък явен списък с хостове може да е по-добър от хитър шаблон, чието значение никой не може да обясни.

Дръжте доказателствата за конфигурацията отделно от доказателствата за връзката

Анализирана настройка или API за решения за маршрутизиране може да покаже какво е избрала програмата. Резултатът от заявката след това показва дали този маршрут е бил използваем. В .NET, HttpClient.DefaultProxy.IsBypassed предоставя тази проверка от страна на конфигурацията, когато проксито по подразбиране е използваната политика. Не диагностицирайте недостъпна директна услуга като повреда на анализатора за заобикаляне само защото заявката е изтекла.

Запазете граничните дестинации при актуализиране на клиент или базов образ. Те правят бъдещите промени в съвместимостта видими, без целият екип да трябва отново да открива защо файлът съдържа два подобни записа за домейн.

Подобни статии