Nhận xét bên dưới về tất cả 4 tùy chọn bạn đã đề cập
- Chúng ta đã có nginx chạy trên Compute VM, vì vậy hãy thiết lập một
proxy ngược cho https://www.myapp.com/v2 có vẻ như là một ý tưởng tốt tại
đầu tiên, nhưng có vẻ như hiện tại không có cách nào để truy cập Cloud
Chạy từ Điện toán qua IP riêng nên yêu cầu sẽ phải tắt
qua internet làm mọi thứ chậm lại (cũng không chắc có đảo ngược không
ủy quyền cho một URL bên ngoài sẽ gây ra sự cố với xác thực
vân vân?)
Điều này đúng về mặt kỹ thuật, bạn có thể thiết lập dịch vụ Cloud Run để chỉ chấp nhận lưu lượng truy cập từ VPC (cái này được gọi là Tùy chọn xâm nhập, bạn có thể đọc về nó trong tài liệu tại đây [1]). Và khi bạn thực hiện, Dịch vụ Cloud Run của bạn sẽ tiếp tục phân phát trên URL có vẻ là URL công khai (URL được tạo khi bạn triển khai dịch vụ).Tuy nhiên, URL đó chỉ có thể truy cập được từ VPC và ngay cả khi có vẻ như khách hàng sẽ thực hiện cuộc gọi đến một dịch vụ internet, thì lưu lượng truy cập đó vẫn nằm trong mạng của chúng tôi và không bao giờ rời khỏi đường trục của chúng tôi, vì vậy về mặt kỹ thuật, điều này sẽ không gây thêm độ trễ.
- với https://v2.myapp.com/books tùy chọn, có vẻ như ánh xạ
miền tùy chỉnh cho Cloud Run vẫn đang trong bản phát hành xem trước nên tôi
do dự về việc sử dụng nó trong một hệ thống sản xuất, lý tưởng nhất là chúng tôi
muốn sử dụng chứng chỉ SSL của riêng chúng tôi mà dường như không
được hỗ trợ.
Tôi sẽ không khuyến nghị và sử dụng tính năng xem trước trong sản xuất, có nguy cơ tính năng đó sẽ thay đổi theo cách không tương thích ngược. Về chủ đề sử dụng chứng chỉ SSL của riêng bạn, bạn có thể triển khai HTTP LoadBalancer trước dịch vụ Cloud Run (được đặt ở chế độ riêng tư) và tùy chỉnh LoadBalancer để phù hợp với nhu cầu của bạn.
- Tùy chọn lưu trữ Firebase có vẻ hơi phức tạp
và cũng có thời gian chờ yêu cầu là 60 giây, quá ngắn đối với một số
video tải lên, v.v. chúng tôi nhận được.
Tôi không quen lắm với Firebase.
- Bộ cân bằng tải cho NEG sẽ tăng thêm một chút phức tạp/chi phí nhưng điều đó
dường như là lựa chọn khác. Có vẻ như NEG không có máy chủ không thể
kết nối với Điện toán và VM NEG được quản lý không thể kết nối với Cloud Run nên
tôi có cần một trong số đó trong trường hợp đó không?
Tùy chọn LoadBalancer trông có vẻ phức tạp nhưng thực ra không phải vậy, bạn có thể sử dụng một số thứ như Terraform để cung cấp LoadBalancer, bạn chỉ phải thực hiện một lần
Hy vọng điều này sẽ giúp làm sáng tỏ các lựa chọn của bạn
[1] https://cloud.google.com/run/docs/securing/ingress