Micro blog - maximum scale
Mình thường hay viết blog, vì mình tin rằng kiến thức và trải nghiệm chia sẻ thì sẽ có nhiều giá trị hơn so với giữ cho riêng mình. Tuy nhiên, làm sao để tạo ra một blog siêu đơn giản, hiệu quả và không tốn nhiều tiền để duy trì hosting. Mình đã thử trải nghiệm nhiều dịch vụ và các nền tảng viết blog và đưa ra một số đánh giá từ trải nghiệm của bản thân mình. Bên cạnh đó, bài viết này cũng chia sẻ một số tips để bạn có thể tối ưu hóa về chi phí và tối ưu trải nghiệm tốt cho người dùng.
Vài giải pháp blog mình đã trải nghiệm
Wordpress
Wordpress là nền tảng blog mình sử dụng trong khoảng từ 2010 - 2017. Mình thử viết blog trên cloud service của Wordpress và cũng thử tự host. Nói chung là khá hài lòng vì tính tùy biến và Wordpress cũng cung cấp đa dạng các template và plugin cho nhiều nhu cầu khác nhau. Trải nghiệm viết blog ở focus mode và cho phép tạo các block content đa dạng khá hay và mình thấy rằng nó cho người viết cảm giác sáng tạo hơn khi viết blog.
TLDR: Một điểm mình "cảm giác" chưa thích ở Wordpress là quá trình cài đặt (cho dù có wizard hỗ trợ) vẫn chưa tiện lắm cho người dùng cuối. Tất nhiên với lập trình viên thì không thành vấn đề. Hiện tại mình chưa quay lại trải nghiệm với Wordpress nên có thể chưa cập nhật kịp điểm này.
Các giải pháp sử dụng git để host blog

(còn nhiều giải pháp khác, nhưng mình chỉ note những giải pháp mình đã dùng)
Nói chung các giải pháp này khá thú vị. Tận dụng được repository trên Github để tạo ra blog đơn giản. Mình cũng có trải nghiệm thử và cũng dùng được một thời gian ngắn. Tuy nhiên, mình thích trải nghiệm viết blog với một editor xịn hơn để tập trung cho nội dung và kích thích sáng tạo.
Ghost

Ghost là một micro blog engine, tập trung vào trải nghiệm viết blog, xây dựng nội dung và newsletter. Và blog platform hiện tại mình đang dùng là sử dụng Ghost.
Hiện tại mình khá hài lòng với Ghost, đặc biệt là editor của Ghost khá tốt, tích hợp được nhiều loại content block khác nhau. Ngoài ra, Ghost cũng tích hợp với Unsplash để sử dụng hình có license phù hợp cho blog. Khi viết blog, mình chỉ tập trung vào nội dung, việc format và làm giàu nội dung, hình ảnh đã có sẵn.
Deploy Ghost cũng khá tiện, chỉ cần NodeJS. Về database: với một blog cho cá nhân, mình cũng không nhất thiết phải sử dụng MySQL, dùng SQLite cũng ok. Nhẹ nhàng, vừa đủ cho nhu cầu. Còn làm cách nào để tối ưu hạ tầng và đạt được maximum scale, mình sẽ giải đáp trong section kế tiếp.
Maximum scale
Với một giải pháp về hạ tầng tốt thì bạn hoàn toàn có thể làm cho mini-blog của mình đáp ứng được vài ngàn, vài trăm ngàn lượt truy cập cùng lúc là bình thường. Vậy mình nên làm sao để đạt được điều này?
Trả lời: caching và CDN. Bất chấp bạn chọn giải pháp nền tảng nào, tính chất của blog là với mỗi bài viết bạn rất ít khi phải cập nhật lại nó. Do đó cache full bài viết và tất cả các trang liên quan là giải pháp hợp lý.
Hiện tại blog coderphonui này của mình được host trên một micro instance của AWS và tất cả các bài viết được cache hoàn toàn ở Cloudflare. Cho dù server mình shut down hoàn toàn thì bài viết vẫn được serve bình thường từ CDN. Cloudflare mình vẫn đang sử dụng free chứ chưa dùng đến gói premium. Toàn bộ hosting của blog mình đang sử dụng là miễn phí. Chi phí của micro instance trên AWS sau khi hết free tier cũng khá rẻ. t2-micro instance tầm 4.3$ tháng. t2-nano bằng 1/2 giá ~2.2$ / tháng (Lưu ý: giá có thể thay đổi so với thời điểm viết bài này). Giá ngang một ly cafe hơi hơi sang chảnh xíu mà phục vụ được cho vài trăm ngàn lượt truy cập. Ghê hông?

Thực chất cấu hình của server mình hoàn toàn có thể chọn option thấp nhất có thể vì server chỉ dùng duy nhất cho mục đích host admin site và viết bài.
Chi tiết mình cấu hình CloudFlare như thế nào để cache toàn bộ blog của mình với Ghost thì bạn xem video dưới đây nhé.
Have fun!
Comments ()