← Lahat ng gabay sa paglilipat

Gabay sa paglilipat ng kakumpitensya

Ilipat mula sa Bun.serve patungo sa Webship nang walang biglaang cutover.

Paghiwalayin ang code ng aplikasyon mula sa mga tungkulin sa edge: panatilihin ang Bun bilang pinagmulan habang ang Webship ang humahawak sa TLS, static delivery, HTTP/3, proteksyon, at pag-route ng kahilingan.

Nalalapat sa Webship 1.1.0TypeScript

Tukuyin ang hangganan ng migrasyon bago baguhin ang trapiko.

Magsimula sa paglilipat lamang ng pag-uugali na kayang ulitin at beripikahin ng Webship. Iwanan ang authentication ng aplikasyon, service discovery, scripts, at espesyal na mga patakaran ng cache sa kasalukuyang origin hanggang sa maipasa ng kanilang kapalit ang mga pagsusulit na katulad ng production.

Isalin muna ang pinakamaliit na path ng produksyon.

Tinutukoy ng source fragment ang konsepto ng migration; ipinapakita ng Webship fragment ang target shape. Palitan ang example domains, addresses, certificates, limits, at health paths ng mga halagang napatunayan para sa iyong kapaligiran.

Kinatawan na Bun.serve na pagsasaayos
Bun.serve({
  port: 443,
  tls: { cert: Bun.file("cert.pem"), key: Bun.file("key.pem") },
  routes: {
    "/": new Response(Bun.file("./public/index.html")),
  },
});
Katumbas na Webship TOML
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 = true

Ima-map ang mga konsepto, hindi ang sintaks.

Hindi palaging tumutugma ang mga teknikal na direktiba nang isa-sa-isa. Gamitin ang talahanayan na ito upang hanapin ang katumbas na Webship na lugar ng konfigurasyon, pagkatapos ay i-validate ang epektibong konfigurasyon at pag-uugali sa runtime.

Kasalukuyang konsepto o direktibaTarget na konfigurasyon ng Webship
listener / virtual hostlisten + [reverse_proxy.protocols]
document root[[sites]].root
host matcher[[reverse_proxy.routes]]
certificate and private key[reverse_proxy.tls] / [[sites]] cert + key

Gumamit ng reversible na limang-hakbang na cutover.

Panatilihing handa ang lumang tagapakinig hanggang sa makapasa si Webship sa mga gate ng correctness, kapasidad, seguridad, obserbabilidad, at rollback sa kinatawang trapiko.

  1. 1

    Nakikitang asal sa imbentaryo

    Irekord ang mga listener, domain, ruta, upstreams, sertipiko, rewrite, pagpapatunay, mga patakaran sa cache, health probe, limitasyon, at mga operasyonal na integrasyon.

  2. 2

    Isalin ang isang hangganan

    Ilipat ang isang host o ruta sa mahigpit na TOML. Panatilihin ang mga module at lohika ng aplikasyon na tukoy sa vendor sa likod ng Webship hanggang sa mapatunayan ang hiwalay na kapalit.

  3. 3

    I-validate offline at lokal

    Patakbuhin ang --check-config at --print-effective-config, suriin ang na-redact na resulta, subukin ang kalusugan nang lokal, at gamitin ang TLS sa parehong TCP at UDP kapag naka-enable ang HTTP/3.

  4. 4

    Tunay na trapiko ng Canary

    Magpadala ng maliit, nakikitang bahagi ng trapiko sa Webship. Ihambing ang mga status code, header, katawan, latency, kalusugan ng upstream, gawi ng cache, mga log, at mga desisyon sa seguridad.

  5. 5

    Isulong na may handang rollback

    Dagdagan ang trapiko sa mga nasusukat na yugto. Panatilihing malusog at agad na maipa-ruta ang nakaraang target hanggang sa makalusot sa napagkasunduang bintana ng obserbasyon at mga load gate.

Suriin muna. Mag-roll back sa pamamagitan ng routing, hindi sa pag-edit ng live.

Suriin ang kandidato na file, inspeksyunin ang na-redact na epektibong configuration, at imbestigahan ang pribadong listener bago baguhin ang trapiko. Panatilihin ang lumang binary, configuration, listener, at DNS o target ng load-balancer hanggang sa magsara ang observation window.

/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