Chuyển đến nội dung

Giải phápBackend cho từng người dùng

Mỗi người dùng một instance

Khóa trong yêu cầu đưa mỗi người dùng, tenant hay agent tới instance riêng của mình; instance đó giữ bộ nhớ, đĩa và ngủ giữa các yêu cầu.

Đọc về instance theo khóa

Python
from glac import Glac

glac = Glac()
app = glac.cube.deploy(
    "ghcr.io/acme/notes:2", name="notes", port=8080,
    keys={"from": {"header": "X-User"},          # the key
          "delete_after_idle_ms": 30 * 86_400_000},
    scale={"suspend_after_ms": 1000})  # sparse traffic: asleep a second after
# a request with X-User: ada reaches ada's own instance
ada = app.instance("ada")         # or make or wake it from code

Mỗi người dùng một tiến trình, giờ nào cũng tốn tiền

Mỗi người dùng một tiến trình là thiết kế đơn giản nhất, nhưng nếu cứ để chạy thì bạn vẫn trả tiền khi họ vắng mặt. Ở đây instance của mỗi khóa ngủ giữa các yêu cầu, và bạn chỉ trả cho những gì nó lưu giữ.

mỗi tháng chỉ riêng cho bộ nhớ của 10 000 instance 256 MiB chạy liên tục, theo giá niêm yết1
$14,600.00
cho chính các instance đó khi ngủ, mỗi instance giữ 100 MB1
$20.00

Định tuyến theo khóa hoạt động thế nào

Đặt keys.from là một header hoặc một đoạn của đường dẫn. Yêu cầu đầu tiên của một khóa mới tạo instance của nó; mọi yêu cầu sau đó tới đúng instance đó, với bộ nhớ và đĩa của nó. Các yêu cầu không có khóa dùng chung các instance của ứng dụng.

Một ứng dụng và các instance của nó: với khóa, mỗi instance thuộc về một khóa, thức khi có yêu cầu của khóa đó và ngủ sau đó.

Instance của mỗi người dùng nhận được gì

  • Chọn mô hình: instance dùng chung, hoặc mỗi khóa người dùng một instance.

  • Khóa lấy từ yêu cầu, trong một header hoặc đường dẫn; yêu cầu đầu tiên tạo instance của nó.

  • Trạng thái riêng từng người dùng: bộ nhớ được giữ cả khi ngủ, đĩa riêng, và một ổ đĩa.

  • Chi phí: khi ngủ, không tốn CPU, chỉ tính những gì nó lưu giữ.

  • Vòng đời do bạn chọn: bị xóa sau khi ngủ quá thời gian đó, rồi được tạo lại khi khóa của nó quay lại.

  • Mức sử dụng theo từng khóa, từ khóa mà mỗi instance mang làm nhãn.

Đọc tài liệu

Hình minh họa

Đo thực tế, không phải hứa hẹn

Trung vị trên máy chủ vật lý khi không có gì khác chạy: trường hợp tốt nhất, và chúng tôi nói rõ như vậy. Instance của một khóa cùng loại với sandbox, nơi các số này được đo. Cách chúng tôi đo

để đánh thức một instance đang ngủ2
3.5 ms
cho lệnh gọi đã đánh thức nó, từ lúc gửi đến lúc được trả lời2
6.7 ms
để đưa nó vào trạng thái ngủ, cùng bộ nhớ và tiến trình2
2.3 ms

Khi dịch vụ mở, bạn có thể tự kiểm chứng với các khóa của mình: dòng log của yêu cầu nào đã đánh thức instance sẽ cho biết việc đánh thức mất bao lâu.

Shell
glac cube logs notes -f
# one line a request; one that woke an instance says how long it took

Các sản phẩm được dùng

Tính thử một tháng

Mười nghìn người dùng, mỗi người một instance riêng, theo giá niêm yết. Tự ước tính chi phí của bạn

Kịch bản sử dụng

  • 10 000 người dùng, mỗi người một instance riêng, dùng 256 MiB.
  • Mỗi người dùng gửi 300 yêu cầu mỗi ngày trong 30 ngày, mỗi yêu cầu 20 ms CPU và phản hồi 5 KB, vào thời điểm ngẫu nhiên.
  • Ứng dụng được đặt để ngủ hẳn một giây sau khi instance dừng (scale.suspend_after_ms 1000), đúng cài đặt cho lưu lượng thưa như thế này: các yêu cầu của một người dùng cách nhau vài phút, và instance nào được giữ tạm dừng trong bộ nhớ giữa các yêu cầu thì bị tính phí bộ nhớ suốt thời gian đó. Vì vậy mỗi instance thức khi trả lời và thêm 1 giây sau đó, tạm dừng thêm 1 giây, rồi ngủ với bộ nhớ đã được lưu lại, giữ khoảng 100 MB.
  • Cái giá phải trả: yêu cầu gặp instance đang ngủ được trả lời sau 6.7 ms, còn instance đang tạm dừng thì trả lời trong 0.43 đến 1.72 ms; và mỗi lần ngủ rồi thức dậy tốn 25.6 ms CPU, đã tính vào CPU của tháng.

Chi phí một tháng theo giá niêm yết

$192.40

  • CPU4.3 tỷ mili giây CPU × $0.01 / triệu$42.95
  • Bộ nhớ12 581 GiB-giờ × $0.008$100.65
  • Yêu cầu90 triệu × $0.30 / triệu$27.00
  • Lưu lượng ra450 GB × $0.004$1.80
  • Lưu giữ khi ngủ1 000 GB-tháng × $0.02$20.00

Trên gói Trả phí, tháng này hết $189.60: phí $5, cộng $184.60 cho phần vượt lượng đi kèm, trừ vào số dư theo cùng mức giá.

Cho mỗi người dùng một instance riêng

Một khóa, rồi một ứng dụng với keys.from, triển khai chỉ bằng một lệnh gọi.

KhốiSDK Python