Versenytárs migrációs útmutató
Migrálás Bun.serve-ről Webship-ra anélkül, hogy vak váltást végeznénk.
Válasszuk szét az alkalmazáskódot és a edge feladatokat: tartsuk meg a Bun-t mint az eredeti forrást, miközben a Webship átveszi a TLS-t, a statikus szállítást, a HTTP/3-t, a védelmet és a kérések irányítását.
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.
Bun.serve({
port: 443,
tls: { cert: Bun.file("cert.pem"), key: Bun.file("key.pem") },
routes: {
"/": new Response(Bun.file("./public/index.html")),
},
});listen = "0.0.0.0:443"
workers = 4
[[sites]]
domain = "app.example.com"
root = "/srv/app/public"
listen = "0.0.0.0:443"
cert = "/etc/letsencrypt/live/app.example.com/fullchain.pem"
key = "/etc/letsencrypt/live/app.example.com/privkey.pem"
[sites.protocols]
h1 = true
h2 = true
h3 = trueFogalmakat 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ányelv | Webship konfigurációs cél |
|---|---|
listener / virtual host | listen + [reverse_proxy.protocols] |
document root | [[sites]].root |
host matcher | [[reverse_proxy.routes]] |
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
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
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
É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
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
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