Zespół umieszcza jeden ciąg obejścia w wspólnym pliku środowiskowym. curl idzie bezpośrednio, inna aplikacja używa proxy, a kontener zachowuje się jeszcze inaczej. Wspólny plik rozprowadził te same znaki. Nie rozprowadził jednego wspólnego parsera.

Trwałym obiektem jest polityka: które cele mają być bezpośrednie i na jakich warunkach? Trzymaj to oddzielnie od ciągu, którego potrzebuje każdy program.

Najpierw zapisz oczekiwane trasy

Używaj reprezentatywnych adresów, w tym przypadków granicznych, a nie tylko łatwych sukcesów:

Kształt celuPytanie do właściciela polityki
Domena nadrzędnaCzy ma być omijana, czy tylko jej dzieci?
SubdomenaCzy dziedziczy tę samą trasę?
Dosłowny prywatny adres IPCzy ten adres jest bezpośrednio osiągalny z tego klienta?
Ta sama usługa pod nazwą hostaCzy żądania oparte na nazwie i na adresie powinny się zgadzać?
Inny port usługiCzy wyjątek obejmuje hosta, czy jeden nasłuch?

Następnie zidentyfikuj konsumentów: demon pobierający obraz, program wewnątrz kontenera, biblioteka HTTP danego języka i interaktywna przeglądarka mogą być osobnymi wpisami. Konfiguracja proxy klienta Docker może wypełnić wartości środowiska kontenera, nie zmuszając każdego klienta w środku do wdrażania tych samych reguł dopasowania.

Tłumacz, zamiast kopiować bezmyślnie

Jednym udokumentowanym przykładem rzeczywistej różnicy jest granica domeny nadrzędnej. Wykluczenie domeny w curl obejmuje nazwaną domenę i pasujące dzieci. Polityka środowiskowa .NET odróżnia samą nazwę od postaci subdomeny z wiodącą kropką. Uniwersalna zasada „zawsze dodawaj wiodącą kropkę“ nie potrafi wiarygodnie wyrazić obu polityk.

Obsługa zakresów IP także zależy od konsumenta i jego wersji. Maszyna z nowym samodzielnym curl może nadal uruchamiać aplikację połączoną ze starszą libcurl albo klienta używającego zupełnie innej biblioteki. Wydanie systemu operacyjnego nie jest pełnym spisem klientów.

Dla każdego konsumenta zapisz obsługiwany interfejs konfiguracji i najmniejsze wyrażenie zamierzonych tras. Krótka jawna lista hostów może być lepsza niż sprytny wzorzec, którego znaczenia nikt nie potrafi wyjaśnić.

Trzymaj dowody konfiguracji oddzielnie od dowodów połączenia

Przeanalizowane ustawienie lub API decyzji routingu może pokazać, co wybrał program. Wynik żądania pokazuje następnie, czy ta trasa była użyteczna. W .NET HttpClient.DefaultProxy.IsBypassed dostarcza tę kontrolę po stronie konfiguracji, gdy używana jest polityka domyślnego proxy. Nie diagnozuj nieosiągalnej usługi bezpośredniej jako awarii parsera obejścia tylko dlatego, że żądanie przekroczyło limit czasu.

Zachowaj cele graniczne przy aktualizacji klienta lub obrazu bazowego. Dzięki nim przyszłe zmiany zgodności są widoczne bez konieczności ponownego odkrywania przez cały zespół, dlaczego plik zawiera dwa podobnie wyglądające wpisy domeny.

Powiązane artykuły