17 điểm bởi kuber 2023-08-04 | 4 bình luận | Chia sẻ qua WhatsApp

[Giới thiệu]
Kuberian = Kubernetes + Librarian
Đây là một dự án toy được phát triển với cảm giác như một "thủ thư Kubernetes".

[Mục đích sử dụng]
Mục tiêu là nhanh chóng tìm ra hàm thực hiện đúng vai trò mà tôi muốn trong hơn 40.000 hàm có trong repository Kubernetes.

[Cách dùng]
Chỉ cần viết một câu tiếng Anh phù hợp để bắt đầu bằng that, hệ thống sẽ tìm ra hàm tương tự nhất.

[Mẫu tìm kiếm]

  • makes scaling decision link
    • Truy vấn được dùng để tìm hiểu việc quyết định autoscale được thực hiện dựa trên tiêu chí nào
  • checks if the system supports IPVS link
    • Truy vấn được dùng khi cần tìm hàm xác định xem hệ thống có hỗ trợ IPVS hay không
  • make requests for checking readiness of the container link
    • Truy vấn được dùng để tìm ra hàm gửi request cho Readiness Probe

Chỉ cần ném vào một câu dạng mệnh đề theo sau that, hệ thống sẽ tìm ra hàm tương tự phù hợp nhất.

[Lý do tạo ra]
Đôi khi tài liệu Kubernetes được viết hơi mơ hồ nên phải tìm vào mã triển khai, nhưng do quy mô dự án quá lớn nên việc tìm thủ công từng cái khá phiền, vì vậy tôi đã làm ra công cụ này.

[Tech stack]

  • Llama 2
  • Rust
  • eui (Elasticsearch UI)
  • Knative w/ Google Cloud Run

[Cảm nghĩ]
Sau khi dùng Google Cloud Run, tôi thấy những ngày trước từng đau đầu với AWS Lambda thật ngớ ngẩn. Có cảm giác đây là một công nghệ cloud bị đánh giá thấp nhất, mà giá lại rẻ đến mức đáng kinh ngạc, nên hãy thử một lần nhé!

4 bình luận

 
roxie 2023-08-06

Dự án này thật ngầu! Bạn có nghĩ đến việc quảng bá ở những nơi khác ngoài GeekNews không?

Ngoài ra, tôi cũng muốn nghe thêm suy nghĩ của bạn về CloudRun

 
kuber 2023-08-07

Ý kiến của tôi về CloudRun tôi đã để lại ở bình luận bên dưới. :-)

Tôi đã đăng trước lên Hacker News để thử xem mô hình người dùng haha
(đang sử dụng Google Analytics.)

Có cộng đồng nào khác mà bạn đề xuất không? Tôi không nghĩ ra được nhiều nơi lắm.

 
jwseo 2023-08-06

Ồ, đây là một dự án thú vị đấy!
So với AWS Lambda thì bạn thấy Google Cloud Run có những điểm nào khiến bạn hài lòng hơn? Mình cũng chỉ mới dùng Lambda nên rất tò mò.

 
kuber 2023-08-07

Dự định sau này sẽ viết chi tiết hơn dưới dạng bài blog hoặc tương tự, nhưng nếu chỉ giới hạn trong môi trường HTTP API thì có thể rút ra vài ý ngắn gọn như sau

HTTP
Lambda: phải tự triển khai logic xử lý request nhận RPC call từ APIGateway
Cloud Run: giao tiếp HTTP thông thường / có thể tận dụng nguyên trạng các thư viện hoặc framework dựa trên HTTP

Concurrency
Lambda: một instance bắt buộc chỉ xử lý một request tại một thời điểm (nếu có 100 request vào cùng lúc thì phải chạy 100 instance)
Cloud Run: một instance có thể xử lý đồng thời đến giới hạn do người dùng đặt ra
Giải thích thêm: nếu tính theo giờ thì Cloud Run đắt hơn Lambda khoảng 1,5 lần, nhưng nếu một instance cho phép 100 concurrency thì chi phí có thể rẻ xuống khoảng 1,5/100

Cold / Warm / Hot
Lambda: ngoài Cold và Hot còn tồn tại trạng thái Warm không được cấp tài nguyên CPU. Điều này khiến việc gửi thông tin như APM trở nên rất khó (vì nếu làm chậm tốc độ phản hồi để gửi APM thì thường là bất lợi...) Những thứ như DB Connection cũng có thể bị ngắt ở trạng thái Warm, hoặc tài nguyên không được giải phóng đúng cách khiến DB Connection Pool bị tiêu hao hết
Cloud Run: chỉ có Cold và Hot. Dù vậy, nếu tính theo AWS thì chỉ bị tính phí tương đương thời gian phản hồi của API Gateway. Khi kết thúc còn cho cơ hội dọn dẹp tài nguyên một cách bình thường

Môi trường phát triển
Lambda: rất khó thiết lập môi trường phát triển cục bộ, hoặc bị ràng buộc rất lớn bởi hệ sinh thái ngôn ngữ / kiến trúc CPU
Cloud Run: giống hệt môi trường phát triển thông thường

Tính di động
Lambda: code viết cho Lambda mang tính phụ thuộc vào Lambda nên khó chuyển sang nền tảng khác
Cloud Run: có thể chuyển sang môi trường Kubernetes mà không cần sửa code

Ngoài những điểm này còn nhiều thứ khác nữa, nhưng tôi chỉ chọn ra vài ý mà mọi người thường sẽ dễ đồng cảm thôi haha