← Tất cả hướng dẫn di chuyển

Hướng dẫn di chuyển của đối thủ cạnh tranh

Di chuyển từ Pingora sang Webship mà không cắt trực tiếp.

Thay thế dịch vụ cạnh tùy chỉnh Pingora bằng các tuyến Webship khai báo nơi TLS chuẩn, proxy, kiểm tra sức khỏe, chính sách và khả năng quan sát là đủ.

Áp dụng cho Webship 1.1.0Rust + YAML

Xác định ranh giới di chuyển trước khi thay đổi lưu lượng.

Bắt đầu bằng cách chỉ di chuyển hành vi mà Webship có thể sao chép và xác thực. Giữ xác thực ứng dụng, khám phá dịch vụ, kịch bản và các quy tắc bộ nhớ đệm chuyên biệt trên nguồn hiện tại cho đến khi các bản thay thế của chúng vượt qua các bài kiểm tra giống môi trường sản xuất.

Dịch đường dẫn sản xuất nhỏ nhất trước.

Mảnh nguồn xác định khái niệm di chuyển; mảnh Webship hiển thị hình dạng mục tiêu. Thay thế các miền ví dụ, địa chỉ, chứng chỉ, giới hạn và đường dẫn kiểm tra sức khỏe bằng các giá trị được xác thực cho môi trường của bạn.

Cấu hình Pingora tiêu biểu
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();
Tương đương Webship TOML
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

Ánh xạ khái niệm, không phải cú pháp.

Chỉ dẫn kỹ thuật không phải lúc nào cũng khớp một-một. Sử dụng bảng này để tìm khu vực cấu hình Webship tương đương, sau đó kiểm tra cấu hình hiệu quả và hành vi chạy thực tế.

Khái niệm hoặc chỉ thị hiện tạiMục tiêu cấu hình Webship
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

Sử dụng cắt chuyển năm bước có thể đảo ngược.

Giữ listener cũ sẵn sàng cho đến khi Webship đã vượt qua các cổng kiểm tra về tính đúng đắn, khả năng, bảo mật, khả năng quan sát và khôi phục trên lưu lượng đại diện.

  1. 1

    Hành vi quan sát được của kho hàng

    Ghi lại trình nghe, miền, tuyến đường, upstream, chứng chỉ, chuyển hướng, xác thực, quy tắc cache, kiểm tra sức khỏe, giới hạn và các tích hợp vận hành.

  2. 2

    Dịch một ranh giới

    Di chuyển một máy chủ hoặc tuyến vào TOML nghiêm ngặt. Giữ các mô-đun và logic ứng dụng đặc thù nhà cung cấp phía sau Webship cho đến khi các phương án thay thế riêng biệt được chứng minh.

  3. 3

    Xác thực ngoại tuyến và tại chỗ

    Chạy --check-config và --print-effective-config, kiểm tra kết quả đã bị ẩn, khảo sát sức khỏe cục bộ và thực hiện TLS trên cả TCP và UDP khi HTTP/3 được bật.

  4. 4

    Lưu lượng thực canary

    Gửi một lát lưu lượng quan sát được nhỏ tới Webship. So sánh mã trạng thái, tiêu đề, nội dung, độ trễ, sức khỏe upstream, hành vi cache, nhật ký và các quyết định bảo mật.

  5. 5

    Quảng bá với khả năng hoàn tác sẵn sàng

    Tăng lưu lượng trong các giai đoạn đã đo lường. Giữ mục tiêu trước đó ở trạng thái khỏe mạnh và có thể định tuyến ngay lập tức cho đến khi cửa sổ quan sát và các cổng tải đã thỏa thuận được vượt qua.

Xác thực trước. Quay lại bằng cách định tuyến, không phải chỉnh sửa trực tiếp.

Xác thực tệp ứng viên, kiểm tra cấu hình hiệu quả đã được biên tập, và thăm dò trình nghe riêng tư trước khi thay đổi lưu lượng. Giữ nguyên tệp nhị phân cũ, cấu hình, trình nghe, và mục tiêu DNS hoặc cân bằng tải cho đến khi cửa sổ quan sát kết thúc.

/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