Et team setter én omgåelsesstreng inn i en felles miljøfil. curl går direkte, en annen applikasjon bruker proxyen, og en container oppfører seg på en tredje måte. Den felles filen spredte de samme tegnene. Den spredte ikke én felles parser.

Det varige objektet er policyen: hvilke mål skal være direkte, og under hvilke betingelser? Hold det atskilt fra strengen som hvert program trenger.

Skriv ned de forventede rutene først

Bruk representative adresser, også grensetilfellene, ikke bare de enkle suksessene:

MålformSpørsmål til den som eier policyen
Overordnet domeneSkal det omgås, eller bare underdomener av det?
Et underdomeneFår det samme rute?
En privat IP skrevet direkteKan den adressen nås direkte fra denne klienten?
Samme tjeneste bak et vertsnavnSkal navnebaserte og adressebaserte forespørsler samsvare?
En annen tjenesteportGjelder unntaket verten eller bare én lytter?

Deretter identifiserer du forbrukerne: daemonen som henter et avtrykk, programmet inne i containeren, et HTTP-bibliotek i et språk og en interaktiv nettleser kan være hver sin oppføring. Proxyoppsettet til en Docker-klient kan fylle ut miljøverdiene i containeren uten at hver klient på innsiden må implementere de samme reglene for treff.

Oversett framfor å kopiere i blinde

Ett dokumentert eksempel på en virkelig forskjell er grensen for overordnet domene. Domeneunntaket i curl dekker det navngitte domenet og treffende underdomener. Miljøpolicyen i .NET skiller det nakne navnet fra underdomenformen med ledende punktum. En universell regel om å „alltid sette et ledende punktum“ klarer ikke å uttrykke begge policyene pålitelig.

Støtte for IP-områder avhenger også av forbrukeren og versjonen dens. En maskin med en ny frittstående curl kan fortsatt kjøre et program som er koblet mot en eldre libcurl, eller en klient som bruker en helt annen bibliotek. Utgivelsen av operativsystemet er ikke en fullstendig oversikt over klientene.

For hver forbruker noterer du det støttede grensesnittet for konfigurasjon og den minste formen for de tiltenkte rutene. En kort og uttrykkelig vertsliste kan være bedre enn et smart mønster som ingen kan forklare betydningen av.

Hold bevis for konfigurasjon atskilt fra bevis for tilkobling

En tolket innstilling eller et API for rutingsbeslutninger kan vise hva programmet valgte. Utfallet av en forespørsel viser så om den ruten var brukbar. I .NET gir HttpClient.DefaultProxy.IsBypassed den kontrollen på konfigurasjonssiden når standardproxyen er policyen som brukes. Ikke diagnoser en direkte tjeneste som ikke nås som en feil i omgåelsesparseren bare fordi forespørselen fikk tidsavbrudd.

Behold grensemålene når du oppdaterer en klient eller et basisavtrykk. De gjør framtidige endringer i kompatibiliteten synlige uten at hele teamet må oppdage på nytt hvorfor filen inneholder to domeneoppføringer som ser like ut.

Relaterte artikler