Cloudflare: Lần đầu thử Edge Computing

5 min read

Gần đây khi lang thang trên mạng tìm một vài giải pháp miễn phí cho hosting website của tôi, để thay thế cho gói free tier google sắp hết hạn. Review lại những gì tôi đang có, tôi có 1 domain mang tên tôi https://dungxbuif.com được add DNS vào cloudflare. Cloudflare, một nền tảng tuyệt vời support tôi có giao thức https, che dấu IP public của server gốc của tôi, tất cả đều miễn phí.

Tôi bắt đầu để ý sâu hơn vào các tab trên dashboard ở cloudflare và vô tình phát hiện ra Worker and Page. Tìm hiểu sơ bộ thì có thể gọi đây là các dịch vụ edge computing của cloudflare, nhưng sau một thời gian tìm kiếm thông tin nhiều hơn, tôi bắt đầu tìm thấy nhiều điều thú vị hơn về Edge Computing

Trước tiên hãy định nghĩa ‘Edge’

Bạn thấy cái ảnh bìa của bài viết này rồi chứ. Đúng vậy khi nhắc về ‘cạnh’, hãy nghĩ rằng ứng dụng hoặc website của bạn được hosting rất nhiều bản ở khắp nơi trên thế giới. Mục đích là mang các ứng dụng này đến gần người dùng hơn, khi người dùng truy muốn truy cập đến tài nguyên sẽ được điều hướng đến tài nguyên được hosting (lưu trữ) gần người dùng nhất và lợi ích hiển hiện nhất đó chính là giảm độ chễ.

Edge Computing

Qua phần giải thích bên trên chúng ta có thể thấy rằng định nghĩa khá giống CDN. Vậy câu hỏi đặt ra là edge computing khác CDN như thế nào. CDN viết tắt của Content Delivery Network thường để cache và phân phối các tài nguyên tĩnh. CDN chính là tiền thân của Edge Computing trong quá trình phát triển.

Edge Computing hay còn gọi là 1 mô hình điện toán phân tán. Trong đó việc xử lý dữ liệu sẽ được mang đến gần người dùng hơn và được xử lý 1 cách phân tán chứ không cần tập trung tại 1 dịch vụ đám mây truyền thống, thường là các dịch vụ serverless (VD: Cloudflare Worker).

Less servers, more serverless

Máy chủ truyền thống có vấn đề về sử dụng không hiệu quả, phải hoạt động liên tục ngay cả khi không có nhiều yêu cầu. Serverless giải quyết vấn đề này bằng cách chỉ kích hoạt máy chủ khi có yêu cầu, giúp tiết kiệm chi phí và giảm công việc quản lý. Tuy nhiên, serverless cũng có nhược điểm về hiệu suất do thời gian khởi động lạnh và máy chủ vẫn tập trung. Tóm lại, máy chủ truyền thống vẫn tồn tại nhưng có thể gặp sự cố, CDN chỉ lưu trữ nội dung tĩnh, còn serverless giúp tiết kiệm chi phí nhưng có thể có độ trễ cao hơn.

Với Edge Compting, ta có thể thực thi code gần gũi với người dùng hơn. Điều này có rất nhiều lợi ích.

Ưu điểm Edge Computing

Hiệu năng tốt hơn

  • Ứng dụng ít tốn tài nguyên trên máy của người dùng cuối, do đó giảm việc sử dụng CPU và bộ nhớ, đồng thời giảm khả năng trình duyệt bị treo.
  • Các gói dữ liệu nhỏ hơn được gửi đến người dùng cuối, do đó sử dụng ít băng thông hơn.
  • Vì các chức năng được chạy trong một môi trường được kiểm soát, nên có sự nhất quán trong việc thực thi của các chức năng và API.

Bảo mật tốt hơn

Chuyển tính toán sang edge serverless giúp tăng cường bảo mật ứng dụng bằng cách:

  • Chống lại DDoS hiệu quả hơn: Kẻ tấn công cần hạ gục nhiều máy chủ edge phân tán trên toàn cầu, khó khăn hơn so với tấn công vào một máy chủ tập trung. Hệ thống có khả năng tự phục hồi bằng cách chuyển hướng lưu lượng truy cập đến các máy chủ khác khi một số máy chủ bị tấn công.

Nhược điểm Edge Computing

Nếu không được cấu hình và quản lý tốt sẽ gây ra 1 số nhược điểm:

  • Edge Computing có thể làm tăng nguy cơ bị tấn công do số lượng thiết bị “thông minh” tăng lên.
  • Edge Computing đòi hỏi nhiều phần cứng cục bộ hơn, mặc dù chi phí phần cứng đang giảm.
  • Sử dụng edge server có thể giúp giảm thiểu nhu cầu về phần cứng bổ sung.

Chuyển nhà sang Cloudflare

Trước khi thực sự đi vào sử dụng Cloudflare đặc biệt là Edge Computing với cloudflare hãy đi qua 1 lượt các yêu cầu liệu có đáp ứng được.

Bài toán

Tôi có 1 ứng dựng bao gồm clientside (React) đang chạy trên google cloud run. backend (nodejs ) host trên google cloud engine (do cần chạy cronjob) và 1 Postgres Cloud SQL.

Giải quyết vấn đề với Cloudflare

Đối với react app khi chạy trên production thực ra server chỉ làm 1 vai trò đó là serve và trả ra file build React tĩnh cho client. Với yêu cầu này Cloudflare Page tương thích 100%.

Backend tôi có thể thử để đẩy 1 server đơn giản len cloudflare worker cũng không có vấn đề gì.

Cronjob. Woker của cloudflare có hỗ trợ trigger job với thời gian được đặt trước.

https://developers.cloudflare.com/workers/configuration/cron-triggers

Song mọi thứ đêu tương thích và quan trọng nhất cloudflare support mọi thứ free.

Tổng kết

Trong bài này tôi đã giải thích cho mọi nguời về Edge Computing và xem xét được các khả năng để migrate từ 1 ứng dụng Cloud Central sang Edge Computing.

Trong bài tiếp theo hãy cùng tôi migrate từng component sang môi trường mới.

Tham khảo

https://deno.com/blog/the-future-of-web-is-on-the-edge

https://blog.cloudflare.com/cloudflare-workers-serverless-week

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *