← Minden migrációs útmutató

Versenytárs migrációs útmutató

Migrálás Pingora-ről Webship-ra anélkül, hogy vak váltást végeznénk.

Cserélje le az egyedi Pingora edge szolgáltatást deklaratív Webship útvonalakra, ahol a szabványos TLS, proxy, egészségügyi ellenőrzés, szabályzat és megfigyelhetőség elegendő.

Érvényes Webship 1.1.0-raRust + YAML

Határozza meg a migráció határát a forgalom megváltoztatása előtt.

Kezdje azzal, hogy csak az Webship által reprodukálható és validálható viselkedést mozdítja el. Hagyja a meglévő eredeti rendszeren az alkalmazás hitelesítését, a szolgáltatás-felderítést, a szkripteket és a speciális gyorsítótár-szabályokat, amíg azok helyettesítői át nem mennek a termeléshez hasonló teszteken.

Elsőként azonosítsd a legkisebb gyártási útvonalat.

A forrásfragment az átállási koncepciót azonosítja; a Webship fragment a célformát mutatja. Cserélje ki a példadomainokat, címeket, tanúsítványokat, korlátokat és egészségügyi útvonalakat a környezetében érvényesített értékekre.

Képviselő Pingora konfiguráció
let mut server = Server::new(None)?;
server.bootstrap();
let mut proxy = http_proxy_service(
    &server.configuration, MyProxy::new("127.0.0.1:8080"),
);
proxy.add_tcp("0.0.0.0:443");
server.add_service(proxy);
server.run_forever();
Webship TOML megfelelője
listen = "0.0.0.0:443"
workers = 4

[reverse_proxy]
enabled = true
connect_timeout_ms = 2000
max_retries = 0

[reverse_proxy.protocols]
h1 = true
h2 = true
h3 = true

[reverse_proxy.tls]
cert = "/etc/letsencrypt/live/app.example.com/fullchain.pem"
key = "/etc/letsencrypt/live/app.example.com/privkey.pem"

[[reverse_proxy.routes]]
domain = "app.example.com"
path_prefix = "/"
upstreams = ["127.0.0.1:8080", "127.0.0.1:8081"]
load_balancing = "weighted-peak-ewma"

[[reverse_proxy.upstreams]]
address = "127.0.0.1:8080"
protocol = "http1"
health_check_path = "/health"
health_check_interval_ms = 5000
health_check_timeout_ms = 1000

[[reverse_proxy.upstreams]]
address = "127.0.0.1:8081"
protocol = "http1"
health_check_path = "/health"
health_check_interval_ms = 5000
health_check_timeout_ms = 1000

[[reverse_proxy.policies]]
name = "default"
hosts = []
path_prefixes = ["/"]
methods = []
max_body_bytes = 1048576
total_timeout_ms = 30000

Fogalmakat térképezzen fel, ne szintaxist.

A műszaki utasítások nem mindig felelnek meg egy az egyhez. Használja ezt a táblázatot a megfelelő Webship konfigurációs terület megtalálásához, majd ellenőrizze a hatályos konfigurációt és a futásidejű viselkedést.

Jelenlegi koncepció vagy irányelvWebship konfigurációs cél
listener / frontendlisten + [reverse_proxy.protocols]
host + path matcher[[reverse_proxy.routes]]
backend / cluster / service[[reverse_proxy.upstreams]]
health probe[[reverse_proxy.upstreams]].health_check_*
request limits and timeouts[[reverse_proxy.policies]]
certificate and private key[reverse_proxy.tls] / [[sites]] cert + key

Használj visszafordítható, ötlépéses átkapcsolást.

Tartsd készen a régi hallgatót, amíg Webship át nem megy a helyesség, kapacitás, biztonság, megfigyelhetőség és visszagörgetés kapuin a reprezentatív forgalmon.

  1. 1

    A készlet megfigyelhető viselkedése

    Rögzítse a hallgatókat, domaineket, útvonalakat, upstream-eket, tanúsítványokat, átírásokat, hitelesítést, gyorsítótár szabályokat, állapot probe-okat, korlátokat és operatív integrációkat.

  2. 2

    Fordítson le egy határt

    Mozgasson egy hosztot vagy útvonalat szigorú TOML állapotba. Tartsa meg a gyártó-specifikus modulokat és az alkalmazáslogikát a Webship mögött, amíg külön csere nem bizonyított.

  3. 3

    Érvényesítés offline és helyben

    Futtassa a --check-config és --print-effective-config parancsokat, ellenőrizze a kiadott eredményt, vizsgálja meg a helyi állapotot, és használja a TLS-t mind TCP, mind UDP felett, amikor HTTP/3 engedélyezve van.

  4. 4

    Valódi canary forgalom

    Küldjön egy kis, megfigyelhető forgalmi szeletet a Webship-nak. Hasonlítsa össze a státuszkódokat, fejlécet, tartalmakat, késleltetést, upstream állapotot, gyorsítótár viselkedést, naplókat és biztonsági döntéseket.

  5. 5

    Promóció visszagörgetésre készen

    Növelje a forgalmat a mért szakaszokban. Tartsa az előző célt egészséges és azonnal útvonalra állítható állapotban, amíg az egyeztetett megfigyelési ablak és a terhelési kapuk el nem telnek.

Először ellenőrizze. Visszagörgetés útválasztással, ne élő szerkesztéssel.

Érvényesítse a jelölt fájlt, vizsgálja meg a letiltott érvényes konfigurációt, és ellenőrizze a privát hallgatót, mielőtt forgalmat változtatna. Őrizze meg a régi bináris fájlt, konfigurációt, hallgatót és DNS- vagy terheléselosztó célpontot, amíg a megfigyelési ablak le nem zárul.

/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:443/health