Tôi tin là ở đây có nhiều người biết đến cái tên MongoDB - một loại cơ sở dữ liệu no-SQL đã từng một thời nổi đình đám. Vài năm trước, ai mà không biết hoặc không làm Mongo thì đều có thể coi là "lạc hậu". Chà!!! Nói đùa vậy thôi chứ thật ra tôi chỉ muốn nhấn mạnh vào sự phổ biến của nó.
Có rất nhiều cách để dựng lên một máy chủ Mongo. Từ cấu hình qua mã nguồn cho đến cài đặt thông qua trình quản lý gói tích hợp trong hệ điều hành, có thể kể đến như apt của Ubuntu hay brew có trên MacOS. Chỉ cần gõ một vài câu lệnh thì phần mềm được cài đặt chỉ trong ít phút. Các phần mềm được cài bằng cách này thường sẽ được chuyển thành services, từ đó giúp hệ điều hành dễ dàng quản lý và theo dõi trạng thái của ứng dụng đang chạy. Sau này Docker nổi lên như một hiện tượng thì người người nhà nhà lại đổ sang dùng Docker. Họ dùng Docker để triển khai tất cả mọi thứ trong môi trường phát triển (development) cho đến cả môi trường sản xuất (production). Nhưng tất cả cách trên đều có một điểm chung là cần nguồn lực quản lý. Phàm những thứ thuộc về phần mềm, ắt hẳn vẫn luôn tồn tại những vấn đề tiềm ẩn để đánh hệ thống sập bất kỳ lúc nào. Nếu lỗi xảy ra, chính bạn phải đi tìm nguyên nhân và sửa chữa chúng.
Bỗng một ngày, Mongo Atlas xuất hiện. Tôi tò mò, đăng ký dùng thử xem nó là cái gì thì hoá ra... cũng chỉ là một máy chủ Mongo. Thay vì tự triển khai lên máy chủ của mình thì họ - Mongo Atlas triển khai trên một cụm máy chủ mà họ quản lý. "Kỳ lạ thật, tại sao họ lại làm thế nhỉ, chẳng phải tự triển khai sẽ rẻ hơn rất nhiều sao?". Tôi nhìn vào bảng giá dịch vụ và tự thắc mắc trong đầu.
Dùng thì mới biết Atlas có thêm phần theo dõi hệ thống, nó như một trang tổng hợp thông số, cả nhiều chức năng mà trước nay phải dùng lệnh mới làm được. Nhiều cái mà tôi đánh giá là rất trực quan và thao tác vô cùng tiện lợi. Không cần phải nhớ và gõ những câu lệnh dài dòng nữa. Chỉ cần vào trang quản lý để xem tất tần tật tình hình hiện tại của hệ thống.
Vậy, tại sao lại nhắc đến Mongo Atlas?
Với sự phát triển không ngừng của công nghệ, càng ngày người ta càng nghĩ ra các giải pháp độc lạ và sáng tạo. Nhiều nhà cung đã tìm cách làm giảm tải đi lượng công việc của các nhà phát triển. Thay vì để họ tự khai hệ thống, dành thời gian để bảo trì chúng, quản lý rủi ro... thì họ sẽ gánh hết phần này. Thứ nhà phát triển cần là tập trung vào làm và sáng tạo để cho ra được những ứng dụng hoạt động mượt mà và tốt nhất.
Mongo Atlas đã hỗ trợ thêm kiểu serverless, gián tiếp công nhận serverless là một xu thế tất yếu. Nơi người dùng dùng bao nhiêu thì trả bấy nhiêu (pay as you go). Thừa hưởng những ưu điểm của hạ tầng Atlas, serverless database nhắm đến cả những người dùng cá nhân thay vì doanh nghiệp như trước đây. Khách hàng doanh nghiệp luôn mang lại khoản thu khổng lồ nhưng bên cạnh đó khách hàng cá nhân vẫn là một tiềm năng rất lớn nếu biết cách "chăm sóc".
Serverless database có thể là một khái niệm mới đối với nhiều người. Đơn cử như tôi chỉ mới biết đến trong vòng một năm đổ lại đây. Cụm từ serverless database dùng để chỉ một mô hình cơ sở dữ liệu mà trong đó người dùng không cần quản lý các tài nguyên như máy chủ, phần cứng, hoặc cơ sở hạ tầng. Nó khác hoàn toàn với cách triển khai máy chủ truyền thống. Tại đây, thứ mà chúng ta tập trung vào là tận dụng thời gian phát triển ứng dụng, chứ không phải là thời gian cấu hình và bảo trì hệ thống.
Mặc dù vậy serverless database chưa chắc đã phù hợp với tất cả mọi người. Cách tính tiền của nó khác với máy chủ truyền thống, tuỳ thuộc vào mỗi nhà cung cấp mà lại có cách tính khác nhau, nhưng chung quy lại là dựa trên số lượng truy vấn và cả dung lượng lưu trữ.
Tôi là một trong số người được hưởng lợi từ kiến trúc serverless. Bằng chứng là tôi đã giảm được chi phí vận hành blog về con số 0 tròn trĩnh. Vì thế ngày hôm nay, tôi sẽ tổng hợp lại một số dịch vụ cung cấp cơ sở dữ liệu "trên cạnh của internet" dùng miễn phí nhưng kèm theo giới hạn, và đừng lo vì giới hạn này rất hào phóng. Hy vọng giúp ích được cho bạn đọc.
TiDB là một cơ sở dữ liệu phân tán mã nguồn mở, hoạt động dựa trên MySQL. Cũng như bao dự án nguồn mở khác, TiDB cung cấp dịch vụ Cloud để bạn không cần trực tiếp triển khai mà vẫn có thể sử dụng được. Hơn nữa, TiDB cung cấp gói miễn phí để "chào hàng".
Cụ thể, tổng dung lượng lưu trữ lên đến 25GB cho dữ liệu lưu trên hàng/cột, kèm theo 250 triệu đơn vị truy vấn - hiểu đơn giản là lượng đọc/ghi, tốc độ xử lý của CPU cho mỗi truy vấn và cả dung lượng truyền tải qua Internet cũng được tính. Để tìm hiểu chi tiết về cách tính, bạn đọc đọc thêm tại What is a Request Unit (RU).
Cơ sở dữ liệu tạo trên TiDB hỗ trợ chuẩn kết nối của mysql. Có nghĩa bạn có thể sử dụng bất kỳ thư viện nào tương thích với MySQL để mở kết nối đến cơ sở dữ liệu này. Ngoài ra Serverless cũng không nằm ngoài khi TiDB hỗ trợ cả môi trường serverless như Cloudflare Workers, Vercel Edge Functions và Netlify Edge Functions... TiDB Cloud Serverless Driver Node.js Tutorial
Supabase có lẽ là cái tên mà tôi đã nhắc trong rất nhiều bài viết của mình. Supabase hỗ trợ Postgres rất đầy đủ, hầu như những gì làm được với Postgres đều có thể làm được trên Supabase. Như Function, Triggers hay là cả Extensions...
Supabase cung cấp gói miễn phí với dung lượng hạn chế như chỉ 500MB bộ nhớ. Nhưng bù lại chất lượng và độ ổn định tương đối cao.
Neon là cái tên tiếp theo tương tự như Supabase. Cũng dựa trên Postgres, cũng cho 500MB dung lượng lưu trữ, kèm theo một số giới hạn nhất định về đơn vị tính toán và thêm cả 5GB Data transfer. Neon cũng tương thích với các driver của postgres. Cả 2 đều có driver tương thích với serverless. Mặc dù chưa trực tiếp trải nghiệm nhưng Neon đang được rất nhiều người tin tưởng, sử dụng.
Xata.io dường như lại là cái tên nổi bật khi so với 2 cái tên ở trên. Dung lượng lưu trữ lớn lên đến 15GB... còn lại không tìm thấy thêm giới hạn nào về số lượng truy vấn, tốc độ xử lý, mạng... Ngoài ra Xata còn tích hợp thêm cả AI chattings nếu như bạn có bất kỳ câu hỏi nào muốn giải đáp.
Xata tương tích với postgres driver và dĩ nhiên không thể thiếu môi trường serverless.
Kể từ khi biết đến Turso, tôi đã có cái nhìn khác về SQLite. Trước đây làm việc với nhiều dự án thì Postgres luôn là lựa chọn hàng đầu bởi vì nó quá ổn định. Trong khi SQLite thì phù hợp với các dự án nhỏ và phát triển cục bộ như ứng dụng trên thiết bị di động.
Turso đã mang SQLite lên "mây" và khẳng định chắc nịch là SQLite hoàn toàn có thể dùng để chạy các dự án thật với quy mô lớn. Họ rất hào phóng khi tung ra gói miễn phí với dung lượng rất lớn. Lên đến 9GB lưu trữ, 1 tỉ lượt đọc và 25 triệu lượt ghi.
Từ khi chuyển dần các dự án của mình sang Cloudflare để tối ưu chi phí. Cái tên D1 đã xuất hiện dưới nhãn "Beta" - tức là đang thử nghiệm trước khi đưa vào chính thức. D1 là một cơ sở dữ liệu dựa trên SQLite. Trước khi muốn sử dụng D1, bạn cần phải nâng cấp tài khoản Cloudflare lên Paid. Ngoài ra D1 hỗ trợ rất hạn chế môi trường, chỉ tương thích tốt với Cloudflare Worker và chưa hỗ trợ driver tương thích SQLite cũng như môi trường serverless khác.
Trên đây chỉ là một vài trong số rất nhiều cái tên mà tôi biết. Tôi tin rằng trong tương lai gần sẽ xuất hiện thêm những cái tên khác tham gia vào cuộc chơi này. Bạn có đang sử dụng cái nào có trong bài viết không? Hay là dịch vụ nào khác? Có ưu nhược điểm gì? Hãy để lại bình luận xuống phía dưới bài viết nhé!
Xin chào, tôi tên là Hoài - một anh Dev kể chuyện bằng cách viết ✍️ và làm sản phẩm 🚀. Với nhiều năm kinh nghiệm lập trình, tôi đã đóng góp một phần công sức cho nhiều sản phẩm mang lại giá trị cho người dùng tại nơi đang làm việc, cũng như cho chính bản thân. Sở thích của tôi là đọc, viết, nghiên cứu... Tôi tạo ra trang Blog này với sứ mệnh mang đến những bài viết chất lượng cho độc giả của 2coffee.dev.Hãy theo dõi tôi qua các kênh LinkedIn, Facebook, Instagram, Telegram.
Bình luận (0)