- Web bắt đầu từ một máy tính
- Đã 32 năm trôi qua, nhưng chúng ta vẫn phát triển như thể chỉ có một máy tính duy nhất
- Trong vài năm qua, các trang web tĩnh đã được phục vụ ở nơi gần người dùng thông qua CDN
- Giờ đây điều tương tự cũng đang xảy ra với các ứng dụng web động. Nay có thể triển khai ở mọi nơi
Edge là gì
- Khi mọi người nói về "The Edge", điều đó có nghĩa là site hoặc ứng dụng của bạn được triển khai trên nhiều máy chủ gần từng người dùng trên khắp thế giới
- Khi ai đó truy cập site/ứng dụng của bạn, họ sẽ được định tuyến tới máy chủ gần nhất
- Các máy chủ phân tán này không chỉ lưu trữ tài sản tĩnh của website mà còn có thể chạy mã tùy biến hỗ trợ ứng dụng web động
- Việc dịch chuyển sang các máy chủ ở gần như vậy cũng là một nỗ lực để tối ưu độ trễ
- Thời gian tải trang càng lâu thì xác suất người dùng rời đi càng cao
- Nếu triển khai trên những nơi như Heroku thì ứng dụng sẽ nằm trong trung tâm dữ liệu AWS ở Bắc Mỹ, và với người dùng ở châu Âu hay các thành phố khác, TTFB (Time to First Byte) sẽ chậm hơn
- Nhưng nếu thử kiểm tra Deno.com được triển khai trên mạng Edge của chúng tôi là Deno Deploy, bạn sẽ thấy TTFB nhanh hơn rất nhiều
- Khái niệm "server" lần đầu được giới thiệu trong RFC năm 1969
- Chiếc máy NeXT trong văn phòng của Tim Berners-Lee là web server đầu tiên. Nhưng Internet khi đó đã vận hành hơn 20 năm rồi
Lưu cache nội dung gần người dùng
- Kiến trúc máy chủ đã hoạt động tốt trong thời gian dài, nhưng từ cuối thập niên 90 khi web phát triển mạnh, các vấn đề bắt đầu xuất hiện
- Akamai là đơn vị đầu tiên giới thiệu CDN vào năm 1998
- CDN của Akamai cache nội dung trên một hệ thống máy chủ phân tán
- CDN đã trở thành một mảnh ghép quan trọng của web hiện đại
Ít server hơn, nhiều serverless hơn
- Server cũng gặp vấn đề ở phía ngược lại của "quá tải": sử dụng không hiệu quả
- Server không thể tắt nguồn, phải luôn bật 100% thời gian, và tất cả đều tốn chi phí
- Serverless giúp giảm bớt vấn đề này. Chỉ khởi động khi cần rồi lại tắt đi
- Nhưng "serverless" là một cái tên gây hiểu nhầm. Không phải là không có server, chúng vẫn liên quan
- Chỉ là không có server chuyên dụng chạy thường trực
- Framework serverless đầu tiên được sử dụng rộng rãi là AWS Lambda
- Serverless có hai ưu điểm
- Chỉ trả tiền cho phần bạn sử dụng
- Không cần bận tâm đến việc quản lý server. Không cần lập kế hoạch, quản trị hay bảo trì
- Nhược điểm chủ yếu là hiệu năng
- Vấn đề "cold start"
- Và vì server vẫn được tập trung hóa nên vẫn có round-trip dài
- Và đó là cách chúng ta đi đến hiện tại
Livin's on the edge
- Vẻ đẹp của Edge là nó kết hợp ưu điểm của CDN (gần người dùng) với ưu điểm của serverless (chạy được hàm)
- Nói cách khác, với Edge, bạn có thể chạy mã tùy biến ở gần người dùng. Điều này mang lại nhiều lợi ích
Hiệu năng tốt hơn
- Đây là điều duy nhất mà người dùng thực sự quan tâm
- Khi site hoặc ứng dụng chạy trên máy chủ Edge gần người dùng, nó sẽ nhanh hơn máy chủ trung tâm
- Nhưng lợi ích về hiệu năng không dừng lại ở đó
- Việc tính toán được thực hiện ở Edge thay vì trong trình duyệt của người dùng
- Ứng dụng sẽ cần ít tài nguyên hơn trên máy của người dùng
- Dữ liệu truyền tới người dùng ít hơn nên chỉ dùng ít băng thông hơn
- Vì hàm chạy trong môi trường được kiểm soát nên các hàm và API hoạt động nhất quán hơn
Bảo mật tốt hơn
- Chuyển việc tính toán từ client/thiết bị sang serverless Edge sẽ làm giảm bề mặt tấn công của ứng dụng
- Việc thực hiện tấn công DDoS trở nên khó hơn
Trải nghiệm nhà phát triển tốt hơn
- Hiện tại, viết mã cho Edge vẫn phức tạp hơn mức cần thiết
- Phần lớn vấn đề đến từ tính chất lai của phát triển Edge
- Nhiều framework không được xây dựng theo hướng Edge-First, nên nhà phát triển phải chọn xem mỗi hàm hay mỗi trang sẽ chạy ở edge hay trong trình duyệt
- Nhưng các framework mới như Fresh đang đơn giản hóa điều này bằng kiến trúc SSR và Islands
- Khi dùng Fresh cùng với Deno Deploy, có thể đạt điểm Lighthouse tuyệt đối nhờ tối ưu độ trễ
- Edge là vòng lặp tiếp theo của Internet.
Bước tiếp theo để làm web nhanh hơn, và là một nơi an toàn hơn cho cả người dùng lẫn nhà phát triển
3 bình luận
Theo blog của Fastly, họ dự đoán khoảng 70% hạ tầng điện toán trung tâm dữ liệu hiện có sẽ dịch chuyển ra edge đấy haha
https://www.youtube.com/watch?v=yOP5-3_WFus
Deno Deploy Beta 1
Deno Deploy Beta 2
Fresh - framework web thế hệ tiếp theo