Cộng đồng tranh luận về công cụ phát triển AWS Lambda cục bộ: Serverless hay chỉ là hosting được đổi tên?

BigGo Editorial Team
Cộng đồng tranh luận về công cụ phát triển AWS Lambda cục bộ: Serverless hay chỉ là hosting được đổi tên?

Sự ra mắt của ' fun ', một môi trường runtime phát triển hàm serverless cục bộ, đã làm dấy lên cuộc tranh luận thú vị trong cộng đồng lập trình viên về bản chất và tiện ích của điện toán serverless, đặc biệt là các hàm AWS Lambda. Trong khi công cụ này nhằm đơn giản hóa việc phát triển cục bộ bằng cách mô phỏng môi trường Lambda, nó cũng đã khơi lại những thảo luận về các khái niệm cơ bản đằng sau kiến trúc serverless.

Môi trường Runtime được hỗ trợ:

  • Node.js: node hệ thống, v6.10.0, v8.10.0, v10.15.3, v12.22.7, v14.18.1
  • Python: python hệ thống, v2.7.12, python3 hệ thống, v3.6.8, v3.7.2
  • Go: go1.x (yêu cầu biên dịch theo nền tảng cụ thể)
  • Tùy chỉnh: có hỗ trợ runtime

Cuộc khủng hoảng định danh Serverless

Cộng đồng lập trình viên đã đặt ra những câu hỏi đáng suy ngẫm về thuật ngữ và marketing của các công nghệ serverless. Một nhận xét đặc biệt gây tiếng vang từ cộng đồng cho rằng:

Tôi luôn không thích gọi những thứ này là lambda hay thậm chí là serverless nói chung. Chúng không thuần túy và chắc chắn vẫn chạy trên các máy chủ... Về cơ bản chúng là các hệ điều hành.

Quan điểm này nhấn mạnh cuộc tranh luận đang diễn ra về việc liệu serverless có đơn thuần chỉ là chiến lược marketing khéo léo cho một phiên bản hiện đại của các giải pháp hosting truyền thống hay không, với một số lập trình viên so sánh nó với mô hình shared hosting PHP.

Ứng dụng thực tế và thách thức phát triển

Bất chấp những tranh luận mang tính triết lý, cuộc thảo luận của cộng đồng cho thấy sự quan tâm thực sự đến các ứng dụng thực tế của Lambda. Các lập trình viên đang tích cực tìm kiếm các trường hợp sử dụng và so sánh các phương pháp phát triển khác nhau. Runtime ' fun ' cố gắng giải quyết một nhu cầu quan trọng bằng cách cung cấp môi trường phát triển gần giống với môi trường sản xuất của AWS Lambda, mặc dù có những hạn chế đáng chú ý như sự khác biệt về ngữ cảnh người dùng và cơ chế sandbox.

Những hạn chế chính:

  • Chạy dưới quyền người dùng cục bộ thay vì sbx_user1051
  • Không có tính năng cô lập tiến trình hoặc chroot
  • Sử dụng SIGSTOP/SIGCONT để tạm dừng tiến trình
  • Các tệp thực thi gốc phải được biên dịch cho hệ điều hành cục bộ

Giải pháp thay thế và sở thích của cộng đồng

Cuộc thảo luận đã làm nổi bật một số phương pháp thay thế cho việc phát triển Lambda cục bộ, bao gồm SST (sst.dev) cung cấp khả năng phát triển Lambda cục bộ trực tiếp. Một số lập trình viên có kinh nghiệm với Serverless Framework đã bày tỏ sự quan tâm đến ' fun ' như một giải pháp đơn giản hơn tiềm năng, mặc dù những người khác lưu ý rằng nó phục vụ một mục đích khác, tập trung cụ thể vào mô phỏng runtime cục bộ thay vì quản lý triển khai đầy đủ.

Các cân nhắc về triển khai kỹ thuật

Việc triển khai công cụ cho thấy những cân nhắc kỹ thuật quan trọng cho việc phát triển Lambda. Nó hỗ trợ nhiều phiên bản Node.js (từ 6.10 đến 14.x) và runtime Python, mặc dù một số thành viên cộng đồng lưu ý về việc thiếu hỗ trợ Ruby. Sự khác biệt về runtime giữa môi trường phát triển cục bộ và môi trường sản xuất, đặc biệt là về quản lý quy trình và ngữ cảnh bảo mật, vẫn là những cân nhắc quan trọng đối với các lập trình viên.

Tóm lại, mặc dù ' fun ' cung cấp một công cụ có giá trị cho việc phát triển Lambda cục bộ, cuộc thảo luận của cộng đồng cho thấy những câu hỏi rộng lớn hơn về mô hình serverless và việc triển khai nó. Những cuộc tranh luận này tiếp tục định hình cách các lập trình viên tiếp cận chiến lược phát triển và triển khai hàm trên đám mây.

Tham khảo: fun - Local serverless function λ development runtime