← 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ừ HAProxy sang Webship mà không cắt trực tiếp.

Di chuyển các frontend HTTP, backend, kiểm tra sức khỏe, cân bằng tải, thời gian chờ, và xử lý chứng chỉ vào Webship trong khi vẫn giữ được đường dẫn rollback nhanh.

Áp dụng cho Webship 1.1.0haproxy.cfg

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 HAProxy tiêu biểu
frontend https
  bind :443 ssl crt /etc/haproxy/app.pem
  default_backend app
backend app
  balance roundrobin
  server app1 127.0.0.1:8080 check
  server app2 127.0.0.1:8081 check
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