paint-brush
Serverless at the Edge: Tổng quan nhanhtừ tác giả@phongnn
1,730 lượt đọc
1,730 lượt đọc

Serverless at the Edge: Tổng quan nhanh

từ tác giả Phong Nguyen5m2022/07/26
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Với các nền tảng điện toán tiên tiến như Cloudflare worker và Deno Deploy, các nhà phát triển có thể viết phần mềm trung gian và phụ trợ vừa nhanh vừa rẻ. Điện toán cạnh là một công cụ thay đổi trò chơi đã kích hoạt một thế hệ mới của các khuôn khổ ngăn xếp đầy đủ như Remix và Fresh. Bạn có thể sử dụng các khuôn khổ này để phát triển và triển khai các ứng dụng trực tiếp. Ngoài ra, tính toán biên có thể được sử dụng gián tiếp thông qua các nền tảng như Netlify và Vercel.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Serverless at the Edge: Tổng quan nhanh
Phong Nguyen HackerNoon profile picture

Một trong những chủ đề thú vị nhất trong quá trình phát triển giao diện người dùng gần đây là tính toán biên. Có thể chạy mã ở rìa là một khả năng mới sẽ thay đổi hoàn toàn cách chúng ta viết ứng dụng. Bài viết này nhằm mục đích cung cấp một cái nhìn tổng quan ngắn gọn về máy tính không cạnh máy chủ, tại sao nó lại có lợi và cách bạn có thể sử dụng nó.

Máy chủ không biên giới là gì?

Cho đến gần đây, khi nói về lợi thế, chúng ta thường nghĩ đến mạng phân phối nội dung (CDN), mạng này lưu trữ các tài sản tĩnh như HTML, tệp CSS, hình ảnh, video, v.v. trên hàng trăm máy chủ trên khắp thế giới. Vì nội dung gần gũi với người dùng nên việc truy cập rất nhanh. Máy chủ không biên mở rộng ý tưởng này bằng cách cho phép các nhà phát triển chạy mã ở biên mà không cần phải quản lý bất kỳ máy chủ nào. Điện toán cạnh cung cấp cho các nhà phát triển một vị trí mới cho mã của họ cùng với hai tùy chọn truyền thống, đó là trên phần phụ trợ và trên thiết bị.

Nền tảng điện toán cạnh đáng chú ý nhất là gì?

Hai nền tảng được nhắc đến nhiều nhất trong những ngày này là Cloudflare workerDeno Deploy . Ở cấp độ cao, chúng có nhiều điểm giống nhau:


  • Cả hai đều là thời gian chạy JavaScript sử dụng động cơ V8. Deno có một trình biên dịch tích hợp cho phép nó coi TypeScript như một ngôn ngữ đầu tiên. Với Cloudflare worker, bạn cũng có thể viết mã bằng TypeScript hoặc bất kỳ ngôn ngữ nào khác được biên dịch sang JavaScript như Python, PHP, Dart hoặc Scala.
  • Cả hai đều hỗ trợ WebAssembly , có nghĩa là bạn có thể chạy mã được viết bằng các ngôn ngữ đã biên dịch như C, C ++ hoặc Rust với tốc độ gần như nguyên bản.
  • Cả hai thời gian chạy đều dựa trên các phân lập V8 để cho thuê nhiều lần.
  • Cả hai đều triển khai các tiêu chuẩn web như API tìm nạp, API luồng, v.v.
  • API tương tự trong đó bạn cần viết một hàm xử lý nhận yêu cầu và trả về phản hồi một cách không đồng bộ.
  • Cả hai đều hỗ trợ phát trực tuyến và WebSockets.


Mặt khác, sự khác biệt rõ ràng nhất giữa hai nền tảng là Deno Deploy không cung cấp bất kỳ giải pháp lưu trữ nào trong khi Cloudflare worker có Đối tượng bền để lưu trữ nhất quán và Công nhân KV để lưu trữ độ trễ thấp với tính nhất quán cuối cùng.

Tại sao sử dụng máy chủ không cạnh?

Điện toán biên thường được sử dụng nhiều nhất để triển khai phần mềm trung gian là các tập lệnh đơn giản viết lại URL, yêu cầu chuyển hướng hoặc thao tác cookie và tiêu đề. Ví dụ: bạn có thể thực hiện thử nghiệm A / B bằng cách phân phát các phiên bản khác nhau của trang tùy thuộc vào giá trị của cookie. Bạn có thể hỗ trợ bản địa hóa, có nghĩa là người dùng từ các quốc gia khác nhau có thể xem nội dung khác nhau. Bạn cũng có thể cấp hoặc chặn quyền truy cập vào các trang nhất định dựa trên trạng thái xác thực của người dùng.


Mặc dù các trường hợp sử dụng ở trên có thể được xử lý bởi chương trình phụ trợ và / hoặc ứng dụng khách, nhưng sử dụng tính toán biên sẽ tối ưu hơn nhiều về hiệu suất và tính đơn giản. Nếu bạn triển khai thử nghiệm A / B hoặc bản địa hóa trên máy khách, bạn có thể có một gói kích thước lớn và giao diện người dùng nhấp nháy. Mặt khác, việc triển khai chức năng này ở phần phụ trợ thường yêu cầu cấu hình máy chủ và dẫn đến phản hồi chậm.


Mặc dù vậy, điện toán Edge còn hơn rất nhiều so với phần mềm trung gian. Trên thực tế, bạn thậm chí có thể sử dụng tính toán biên để thay thế hoàn toàn phần phụ trợ của mình. Nhiều khung công tác full-stack, chẳng hạn như Remix và Fresh, giờ đây cho phép bạn viết các hàm truy cập trực tiếp vào cơ sở dữ liệu và hiển thị HTML ở rìa. Làm như vậy, bạn có thể sẽ không cần phải phát triển một API như bạn thường làm trước đây. (Nhưng nếu bạn muốn cung cấp API RESTful hoặc thậm chí là API GraphQL ở biên, bạn cũng có thể làm điều đó.)


Nhưng tại sao bạn nên xem xét việc thay thế chương trình phụ trợ của mình bằng máy tính không cạnh máy chủ? Có nhiều lý do cho điều đó. Đầu tiên, bởi vì nó không có máy chủ, không phải lo lắng về việc bảo trì máy chủ cũng như tự động phân tỷ lệ. Thứ hai, nó nhanh hơn nhiều so với các phần mềm phụ trợ truyền thống vì nó chạy rất gần với người dùng và so với các nền tảng Chức năng như một Dịch vụ thông thường, điện toán biên có rất ít hoặc không có khởi động nguội . Và thứ ba, nó rẻ hơn các tùy chọn không máy chủ thông thường vì các nền tảng điện toán biên sử dụng các công nghệ nhẹ hơn, chẳng hạn như phân lập V8 (trái ngược với máy ảo hoặc thùng chứa) để cho thuê nhiều lần, cho phép họ sử dụng tài nguyên hiệu quả hơn và xử lý rất nhiều nhiều yêu cầu hơn.

Làm thế nào để sử dụng Edge Computing?

Nếu bạn đang sử dụng một nền tảng như Netlify hoặc Vercel để triển khai các ứng dụng web, thì việc chọn tham gia tính toán biên rất đơn giản. Ví dụ: bạn có thể sử dụng Các chức năng Edge của Netlify (được xây dựng trên Deno Deploy) hoặc Phần mềm Trung gian Edge của Vercel (có thể chạy trên Cloudflare worker). Khi bạn triển khai ứng dụng Next.js (kể từ phiên bản 12.2) cho Vercel hoặc Netlify, bạn có thể định cấu hình một số hoặc tất cả các trang để sử dụng thời gian chạy cạnh cho kết xuất máy chủ (khả năng này được gọi là Edge SSR ).


Nếu bạn không triển khai cho Netlify, Vercel hoặc một nền tảng tương tự, bạn nên sử dụng khung ngăn xếp đầy đủ edge-native và triển khai ứng dụng của mình trực tiếp đến dịch vụ điện toán biên mà bạn đã chọn. Ví dụ: bạn có thể phát triển ứng dụng của mình với khuôn khổ Fresh và xuất bản nó lên Deno Deploy. Một ví dụ khác là khuôn khổ Remix cung cấp bộ điều hợp cho cả Cloudflare worker và Deno Deploy (cùng với nhiều mục tiêu triển khai khác).


Nếu bạn không muốn sử dụng một khuôn khổ ngăn xếp đầy đủ, bạn có thể phát triển giao diện người dùng và phần phụ trợ của mình một cách riêng biệt. Với Cloudflare, bạn có thể cung cấp giao diện người dùng và nội dung tĩnh của mình với Trang hoặc Trang web dành cho người lao động . Với Deno Deploy, bạn có thể cung cấp các tài sản tĩnh từ hệ thống tệp . Đối với phần phụ trợ, bạn có thể muốn sử dụng một khung công tác HTTP như Sunder (nếu bạn nhắm mục tiêu Cloudflare Worker), sồi , Bộ định tuyến hoặc Sift (nếu bạn nhắm mục tiêu Deno Deploy).

Hạn chế của Điện toán Edge là gì?

Trong khi tính toán biên là hoàn hảo để triển khai các tập lệnh phần mềm trung gian, nếu bạn muốn triển khai toàn bộ phần phụ trợ với nó, bạn nên biết các giới hạn của nền tảng mục tiêu về thời gian chạy CPU, bộ nhớ, kích thước gói, v.v. Bạn có thể tìm thông tin chi tiết về giới hạn của Cloudflare worker tại đây và Deno Deploy tại đây .

Sự kết luận

Tóm lại, với các nền tảng điện toán tiên tiến như Cloudflare Worker và Deno Deploy, các nhà phát triển có thể viết phần mềm trung gian và phụ trợ vừa nhanh vừa rẻ. Điện toán biên là một công cụ thay đổi trò chơi đã kích hoạt một thế hệ mới của các khuôn khổ toàn ngăn xếp như Remix và Fresh. Bạn có thể sử dụng các khuôn khổ này để phát triển và triển khai các ứng dụng trực tiếp. Ngoài ra, tính toán biên có thể được sử dụng gián tiếp thông qua các nền tảng như Netlify và Vercel.


Nó chỉ là sự khởi đầu. Trong tương lai gần, chúng ta có thể mong đợi nhiều framework, thư viện và công cụ hơn nữa sẽ được phát triển. Hy vọng rằng, bài viết này đã thu hút sự quan tâm của bạn và cung cấp cho bạn một số thông tin cấp cao về điện toán biên để bạn có thể bắt đầu khám phá tiềm năng của nó.