Chuyển nhà - Từ DigitalOcean sang Cloudflare Pages

Chuyển nhà - Từ DigitalOcean sang Cloudflare Pages

Tin ngắn hàng ngày dành cho bạn
  • Mấy hôm trước OpenAI giới thiệu Deep Research - một công cụ duyệt web để nghiên cứu và cho ra một bản tổng hợp chỉ trong vài chục phút - so với nhiều giờ làm việc đối với con người, theo như họ công bố.

    Tính năng này hiện chỉ có sẵn cho người dùng Pro. Mặc dù chưa được dùng thử, nhưng qua nhiều bài viết đều nhấn mạnh vào sự ấn tượng trước khả năng của công cụ mới này. Nếu vẫn chưa biết Deep Research làm được gì thì bạn cứ hình dung như thế này: Nói với nó "Tôi cần thông tin nghiên cứu về lượng tiêu thụ cà phê của thế giới trong năm ngoái". Thế thôi! Ngồi chờ một lúc để nó tìm kiếm và tổng hợp lại kết quả và gửi lại cho bạn một bài báo cáo chi tiết. Chà, ghê thật chứ!

    Ngay lập tức huggingface đã lên một bài viết cố gắng tái tạo lại công cụ này theo cách của họ. Chi tiết tại Open-source DeepResearch – Freeing our search agents. Và không có gì ngạc nhiên khi cả 2 đều mang hơi hướng của AI Agents.

    » Xem thêm
  • Sống đủ lâu trong thế giới Internet, bạn có thể thấy rằng mọi người ở đây khá háo hức chạy theo xu hướng và chúng lan truyền với tốc độ chóng mặt.

    Chỉ vài tháng trước, chúng ta vẫn còn kinh ngạc về trí thông minh của các mô hình ngôn ngữ lớn (LLM) có thể trả lời giống như con người, và ngay sau đó, chúng đã được cập nhật với khả năng suy nghĩ và lý luận đáng kinh ngạc. Chúng được ứng dụng rộng rãi không chỉ trong lĩnh vực lập trình. Gần đây, thuật ngữ AI Agents đã tạo nên một sự khuấy động.

    Vậy, AI Agents là gì? Trong bài viết ngắn này, tất nhiên là không thể đưa ra một định nghĩa ngắn gọn nhưng toàn diện. Bạn đọc có thể tham khảo bài viết rất chi tiết này tại đây Agents | Chip Huyền. Để dễ hình dung hơn, AI Agents có thể được coi là một người hoặc một thực thể nào đó. Bản thân các Agents được trang bị tất cả các công cụ cần thiết. Từ đó, các Agents có thể kết hợp chúng để hoàn thành một nhiệm vụ mà chúng ta giao.

    Vẫn còn hơi mơ hồ phải không? Một ví dụ thực tế là khi bạn ra lệnh cho các Agents truy cập Facebook vào lúc 8 giờ tối mỗi ngày, kiểm tra bất kỳ tin tức nổi bật nào từ bạn bè, sau đó gửi tóm tắt đến Telegram. Vậy là xong!

    » Xem thêm
  • Hôm qua đến nay, lượt truy cập tới từ Facebook tăng đột biến. Thường như thế là do ai đó chia sẻ bài viết của blog vào một nhóm nào đó.

    Cơ mà lần này là liên kết trực tiếp đến trang chủ luôn. Tò mò ghê, không biết ai chia sẻ, chia sẻ ở đâu nữa. Muốn biết để tìm hiểu "insight" ghê 🥹

    » Xem thêm

Vấn đề

Nếu quan tâm, có thể bạn biết tôi đang sử dụng DigitalOcean để lưu trữ trang blog này, với cấu hình khiêm tốn chỉ 1GB RAM, 20GB SSD là vừa đủ cho TechStack mà tôi lựa chọn. Gọi là vừa đủ bởi vì nó vẫn hoạt động tốt với lượng truy cập như hiện tại, chỉ có điều triển khai bằng Docker nên việc lưu trữ hình ảnh mà nó tạo ra đôi khi là một vấn đề lớn. Docker được mệnh danh là "sát thủ ổ cứng" khi bạn có nhiều Images, cộng với thiết lập CI/CD thì phải nói rằng "combo hủy diệt". Thử nghĩ 20GB ổ cứng, chưa trừ hệ điều hành thì sao mà có thể triển khai liên tục được cơ chứ. Thi thoảng, máy chủ báo ổ cứng bị đầy tôi lại phải vào để xóa bớt.

Tình cờ được biết đến Cloudflare Pages cung cấp giải pháp triển khai rất nhiều thể loại web, như Vue, React, Nuxt.js, Next.js... tôi có tò mò xem thử xem nó có gì. Nguyên một tuần trước là khoảng thời gian để nghiên cứu. Cuối cùng quyết định thử chuyển hai trang giao diện sang xem có được không.

Quá trình chuyển nhà

Theo Cloudflare, Cloudflare Pages là một nền tảng JAMstack dành cho các nhà phát triển giao diện người dùng và triển khai các trang web. Pages tập trung vào nhà phát triển khi nó cung cấp nhiều giải pháp như tích hợp Git để hỗ trợ khả năng triển khai liên tục (CI/CD), cũng như tốc độ triển khai và tốc độ của ứng dụng được triển khai thông qua nó.

Nhận thấy tiềm năng của Cloudflare, tôi có thể di chuyển hai trang Front-end là trang quản trị (AdminCP) & giao diện của trang Blog sang. AdminCP được viết bằng Vue.js sử dụng SPA, blog thì bằng Nuxt.js và dùng SSR. Đối với SPA thì lượng tài nguyên nó dùng không đáng là mấy, theo như tôi thấy chỉ chiếm vài MB bộ nhớ vì vốn dĩ nó được triển khai thông qua Nginx. Còn SSR thì chiếm kha khá bộ nhớ, phải nói là nhiều nhất trong số các service đang chạy. Đơn giản vì nó được triển khai thông qua máy chủ Node.js, mà Node thì tiêu tốn nhiều bộ nhớ. Cả Vue và Nuxt.js đều được Pages hỗ trợ, thế cho nên bước đầu hoàn toàn có thể di chuyển hai trang này sang. Nhưng trước khi chuyển, cần phải đánh giá lại tính năng cần chuyển.

Đầu tiên là trang quản trị, do viết bằng Vue và sử dụng SPA cho nên việc chuyển qua Pages không quá phức tạp, tất cả những gì cần làm là thay đổi biến môi trường để nó nhận cấu hình trong khi build.

Đến trang giao diện của Blog thì tôi chợt nảy ra ý tưởng: thay vì sử dụng SSR như hiện tại thì tại sao mình không thử chuyển nó thành SGG? Bằng cách này tôi có thể dùng lệnh tạo trang web thành các file HTML tĩnh rồi tải nó lên bất kì đâu hỗ trợ Static page không chỉ riêng Cloudflare Pages. Hơn nữa tốc độ sẽ nhanh hơn đáng kể so với SSR thông thường vì không cần phải truy vấn vào database và sinh mã HTML mỗi lần truy cập nữa. Nghĩ là làm, tôi đã dành nguyên một tuần trước để sửa lại mã Nuxt sao cho nó hoạt động tốt với chế độ SGG.

Cuối cùng, đầu tuần này tôi đã hoàn tất cơ bản việc di chuyển hai trang giao diện sang Pages. Tất nhiên là còn có một vài lỗi cần phải sửa nhưng hiện tại nó hoàn toàn đáp ứng được nhu cầu đọc và tìm kiếm của mọi người.

Lợi ích của việc chuyển nhà

Bỏ được một phần chi phí tài nguyên cho trang quản trị và trang giao diện của Blog, tuy rằng không nhiều nhưng giờ đây tôi không phải quá lo lắng khi máy chủ đột ngột quá tải hay một lỗi nào đó xảy ra, nó vẫn có thể hoạt động như bình thường do Cloudflare đã lưu trữ lại toàn bộ HTML.

Quy trình CI/CD được rút ngắn và đỡ phức tạp hơn khi trước đây tôi cần viết nhiều tập lệnh hỗ trợ việc này thông qua Gitlab CI và Docker thì giờ đây, bất kỳ lúc nào "đẩy" code lên gitlab, nó hoàn toàn có thể build một cách tự động.

Tôi đã chuyển DNS sang Cloudflare để tận dụng hạ tầng CDN cũng như cơ chế Cache dữ liệu của họ. Blog giờ đây có tốc độ truy cập rất ấn tượng.

Cuối cùng, có thể Web in the EDGE sẽ thành xu hương trong thời gian tới. Nghĩa là bạn không cần phải triển khai máy chủ cụ thể để chạy trang web nữa, mà chỉ cần chạy thông qua các dịch vụ như Pages. Để tìm hiểu thêm xu hướng này, bạn đọc có thể xem tại https://deno.com/blog/the-future-of-web-is-on-the-edge.

Những gì còn phải làm

Mặc dù quá trình chuyển đổi đa phần thuận lợi, tuy nhiên vẫn còn một số vấn đề cần thời gian để khắc phục.

Thứ nhất là các lỗi chưa phát hiện ra hoặc phát hiện ra rồi nhưng không quá ảnh hưởng đến trải nghiệm người dùng. Vấn đề này chỉ cần thời gian để khắc phục, hoặc nếu bạn đọc phát hiện ra lỗi, có thể để lại bình luận để thông báo cho tôi biết và sửa chúng.

Có một số tính năng sau khi chuyển sang Pages thì trở nên thừa hoặc bị vô hiệu hóa, việc cần làm là gỡ nó ra để tránh gây nhầm lẫn sau này.

Một vấn đề nữa là sau khi Pages deploy thành công hoặc thất bại, chưa có cách nào để kích hoạt lại một thông báo về cho mình biết. Hy vọng rằng Cloudflare sớm sẽ bổ sung thêm tính năng thông báo hoặc trước hết, tôi sẽ chạy một đoạn mã curl cùng với lệnh npm run generate để gửi thông báo về Telegram.

Đó là những gì trước mắt, xa hơn là loại bỏ hoàn toàn máy chủ, đưa tất cả dịch vụ lên đám mây. Khi đó tôi sẽ thiết lập được một hệ thống tự động và không cần phải lo lắng quá nhiều về hạ tầng nữa.

Cao cấp
Hello

5 bài học sâu sắc

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (1)

Nội dung bình luận...
Avatar
Noi Truong1 năm trước
Cho mình hỏi, khi bạn chuyển blog sang SSG thì blog có full static được không? các bài viết có được generate thành html tĩnh không hay vẫn phải chạy runtime rendering lại post mỗi khi có request mới?
Trả lời
Avatar
Xuân Hoài Tống1 năm trước
Các bài viết của mình được generate thành các file .html luôn, đồng nghĩa với việc nó sinh ra hết nội dung của bài viết trong file đó luôn. Còn một vài phần cần dữ liệu động, như phần bình luận thì mình vẫn sử dụng JavaScript để tải như bình thường 😄
Bấm hoặc cuộn mạnh để sang bài mới