Guía de migración de competidor
Migrar de Bun.serve a Webship sin un corte ciego.
Separa el código de la aplicación de las funciones de edge: conserva Bun como el origen mientras Webship se encarga de TLS, entrega estática, HTTP/3, protección y enrutamiento de solicitudes.
Define el límite de migración antes de cambiar el tráfico.
Comienza trasladando solo el comportamiento que Webship puede reproducir y validar. Deja la autenticación de aplicaciones, el descubrimiento de servicios, los scripts y las reglas de caché especializadas en el origen existente hasta que sus reemplazos pasen pruebas similares a producción.
Traduzca primero la ruta de producción más pequeña.
El fragmento de origen identifica el concepto de migración; el fragmento Webship muestra la forma de destino. Reemplace los dominios de ejemplo, direcciones, certificados, límites y rutas de salud con valores validados para su entorno.
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 = trueMapear conceptos, no sintaxis.
Las directivas técnicas no siempre coinciden uno a uno. Usa esta tabla para localizar el área de configuración equivalente de Webship, luego valida la configuración efectiva y el comportamiento en tiempo de ejecución.
| Concepto o directiva actual | Objetivo de configuración de Webship |
|---|---|
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 |
Use un corte reversible de cinco pasos.
Mantenga el antiguo listener listo hasta que Webship haya pasado los controles de corrección, capacidad, seguridad, observabilidad y reversión con tráfico representativo.
- 1
Comportamiento observable del inventario
Registre listeners, dominios, rutas, upstreams, certificados, reescrituras, autenticación, reglas de caché, sondeos de salud, límites e integraciones operativas.
- 2
Traducir un límite
Mover un host o ruta a TOML estrictamente. Conservar los módulos específicos del proveedor y la lógica de la aplicación detrás de Webship hasta que se prueben reemplazos separados.
- 3
Validar sin conexión y localmente
Ejecutar --check-config y --print-effective-config, inspeccionar el resultado redactado, comprobar la salud localmente y usar TLS sobre TCP y UDP cuando HTTP/3 esté habilitado.
- 4
Tráfico real canario
Envíe un pequeño fragmento de tráfico observable a Webship. Compare códigos de estado, encabezados, cuerpos, latencia, salud de upstream, comportamiento de la caché, registros y decisiones de seguridad.
- 5
Promocionar con reversión lista
Aumentar el tráfico en las etapas medidas. Mantener el objetivo previo saludable y con enrutamiento inmediato hasta que la ventana de observación acordada y las puertas de carga pasen.
Valide primero. Haga la reversión mediante el enrutamiento, no editando en vivo.
Valide el archivo del candidato, inspeccione la configuración efectiva redactada y examine el escuchador privado antes de cambiar el tráfico. Conserve el binario antiguo, la configuración, el escuchador y el objetivo DNS o del equilibrador de carga hasta que se cierre la ventana de observación.
/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