Cuộc tranh luận Serverless vs Kubernetes bộc lộ sự chia rẽ sâu sắc về mặt kỹ thuật và văn hóa

Nhóm Cộng đồng BigGo
Cuộc tranh luận Serverless vs Kubernetes bộc lộ sự chia rẽ sâu sắc về mặt kỹ thuật và văn hóa

Cuộc chiến đang diễn ra giữa những người ủng hộ serverless và các kỹ sư Kubernetes đã châm ngòi cho những cuộc thảo luận sôi nổi trong cộng đồng công nghệ, bộc lộ những bất đồng cơ bản về cách tiếp cận hạ tầng, chi phí và động lực nhóm. Trong khi câu chuyện hài hước của một nhà phát triển về việc thất bại trong việc thuyết phục nhóm Kubernetes của họ áp dụng các giải pháp serverless của AWS đã lan truyền rộng rãi, phản ứng của cộng đồng đã làm nổi bật những vấn đề sâu xa hơn nhiều.

Quan niệm sai lầm về độ phức tạp

Nhiều nhà phát triển tin rằng các giải pháp serverless giảm độ phức tạp, nhưng các kỹ sư có kinh nghiệm chỉ ra rằng điều này không nhất thiết đúng. Thực tế là serverless thường chuyển dịch độ phức tạp thay vì loại bỏ nó. Mỗi dịch vụ AWS đều có mô hình bảo mật, hạn chế và thách thức tích hợp riêng mà các nhóm phải nắm vững một cách độc lập. API Gateway , Lambda , DynamoDB và các dịch vụ khác đều yêu cầu kiến thức chuyên môn để triển khai hiệu quả.

Cộng đồng đã lưu ý rằng các nhà phát triển gặp khó khăn với các tệp cấu hình YAML có thể thấy mình bị choáng ngợp bởi sự phức tạp của việc quản lý nhiều dịch vụ serverless. Infrastructure-as-code cho các triển khai serverless có thể phức tạp không kém gì cấu hình Kubernetes , đặc biệt khi xử lý quyền hạn, giám sát và giao tiếp giữa các dịch vụ.

Các Dịch Vụ AWS Chính Được Đề Cập:

  • Tính Toán: Lambda (các hàm), ECS Fargate (container)
  • Lưu Trữ: DynamoDB (NoSQL), RDS (SQL được quản lý)
  • Mạng: API Gateway , VPC
  • Tích Hợp: EventBridge , Kinesis , Step Functions
  • Vận Hành: CloudWatch , CloudTrail

Cân nhắc chi phí vượt ra ngoài bề mặt

Lập luận tài chính cho serverless so với Kubernetes không đơn giản như nhiều người nghĩ. Trong khi những người ủng hộ serverless lập luận rằng việc trả tiền cho AWS loại bỏ nhu cầu về các kỹ sư chuyên môn, những người chỉ trích lưu ý rằng kiến trúc serverless thường yêu cầu các nhóm chuyên gia riêng. Những chuyên gia này tập trung vào tối ưu hóa chi phí, gỡ lỗi các lần quét bảng DynamoDB tốn kém và quản lý mạng lưới phức tạp của các tương tác dịch vụ serverless.

Đối với các khối lượng công việc chạy hơn 30% thời gian, các giải pháp container truyền thống thường chứng minh hiệu quả chi phí hơn. Cộng đồng đã quan sát thấy rằng một instance CPU duy nhất xử lý tải liên tục có thể rẻ hơn đáng kể so với các lần thực thi Lambda tương đương, với một số ước tính cho thấy chi phí thấp hơn 10-20 lần cho các tình huống có lưu lượng truy cập cao.

Các Kịch Bản So Sánh Chi Phí:

  • Lambda so với Traditional Compute: Đắt hơn 10-20 lần đối với các khối lượng công việc liên tục
  • Quy Mô Đội Ngũ Kubernetes: Trái ngược với tuyên bố cần 5-10 kỹ sư chuyên môn, K8s được quản lý chỉ yêu cầu ít nhân viên chuyên trách
  • Yêu Cầu Đội Ngũ Serverless: Vẫn cần các chuyên gia để tối ưu hóa chi phí, giám sát và tích hợp dịch vụ

Kiểm tra thực tế về việc bị khóa nhà cung cấp

Cả hai cách tiếp cận đều tạo ra các hình thức khóa nhà cung cấp riêng, mặc dù theo những cách khác nhau. Kubernetes cung cấp khả năng di chuyển giữa các nhà cung cấp đám mây và môi trường tại chỗ, trong khi các giải pháp serverless gắn các tổ chức chặt chẽ với các nền tảng đám mây cụ thể. Tuy nhiên, cộng đồng nhận ra rằng hầu hết các ứng dụng thực tế cuối cùng đều sử dụng các dịch vụ được quản lý bất kể lựa chọn hạ tầng cơ bản của họ.

Mỗi dịch vụ trong số đó đều có mô hình bảo mật, hạn chế, điểm yếu và vấn đề khả năng tương tác riêng mà bạn phải tìm hiểu một cách độc lập.

Lập luận về việc di chuyển thường chứng minh mang tính lý thuyết hơn là thực tế. Các công ty hiếm khi chuyển đổi nhà cung cấp đám mây một khi đã thiết lập, khiến khả năng di chuyển trở nên ít có giá trị hơn so với dự kiến ban đầu.

Động lực văn hóa và tổ chức

Có lẽ thông tin quan trọng nhất từ các cuộc thảo luận cộng đồng liên quan đến yếu tố con người. Cuộc tranh luận thường phản ánh các vấn đề tổ chức sâu xa hơn xung quanh quyền tự chủ của nhóm, an ninh công việc và bản sắc kỹ thuật. Các kỹ sư Kubernetes đã đầu tư thời gian đáng kể để nắm vững các khái niệm điều phối phức tạp, trong khi các nhà phát triển tìm kiếm các mô hình triển khai đơn giản hơn.

Cộng đồng gợi ý rằng các tổ chức thành công tìm cách tận dụng cả hai cách tiếp cận một cách phù hợp. Một số nhóm sử dụng các dịch vụ Kubernetes được quản lý như EKS Fargate cho các khối lượng công việc container trong khi sử dụng các hàm serverless cho các tác vụ điều khiển bằng sự kiện. Cách tiếp cận lai này thừa nhận rằng các mẫu khối lượng công việc khác nhau được hưởng lợi từ các mô hình hạ tầng khác nhau.

Đánh đổi Kỹ thuật:

  • Ưu điểm của Kubernetes: Tính di động của container, hiệu quả chi phí cho khối lượng công việc liên tục, khả năng kiểm soát chi tiết
  • Ưu điểm của Serverless: Mở rộng theo sự kiện, giảm chi phí vận hành cho khối lượng công việc không thường xuyên, triển khai ban đầu nhanh hơn
  • Giải pháp Lai: ECS Fargate , Knative trên Kubernetes , các dịch vụ K8s được quản lý như EKS Fargate

Các giải pháp trung gian

Thay vì chọn phe, nhiều người thực hành có kinh nghiệm khuyến nghị đánh giá từng cách tiếp cận dựa trên các trường hợp sử dụng cụ thể. ECS Fargate đã nổi lên như một điểm trung gian phổ biến, cung cấp triển khai container mà không có độ phức tạp của Kubernetes trong khi duy trì chi phí dự đoán được hơn so với các giải pháp serverless thuần túy.

Cộng đồng cũng đã làm nổi bật các lựa chọn thay thế như Knative , mang khả năng serverless vào môi trường Kubernetes . Cách tiếp cận này cho phép các tổ chức thử nghiệm với các mẫu serverless trong khi duy trì các khoản đầu tư hạ tầng container hiện có của họ.

Cuộc tranh luận cuối cùng phản ánh những căng thẳng rộng lớn hơn trong phát triển phần mềm giữa sự đơn giản và kiểm soát, giữa các dịch vụ được quản lý và các giải pháp tự lưu trữ. Thay vì tuyên bố người thắng và kẻ thua, các nhóm thành công tập trung vào việc kết hợp công cụ với vấn đề trong khi xem xét bối cảnh và ràng buộc tổ chức của họ.

Tham khảo: How I convinced my k8s team to go AWS serverless