BaaS
Backend đóng gói sẵn. Một dịch vụ gộp database, đăng nhập, lưu file và hàm xử lý vào một chỗ.
Khi dùng AI để tạo app, phần nhìn thấy (frontend) thường xong rất nhanh. Nhưng để app nhớ được dữ liệu, cho người dùng đăng nhập và chạy thật cho nhiều người, bạn cần backend. Trang này giúp bạn hiểu backend vừa đủ để chỉ huy AI đúng hướng và chọn đúng công cụ.
Người dùng chỉ thấy giao diện. Phía sau, backend lưu dữ liệu, kiểm tra ai được làm gì và xử lý logic. Bạn có hai con đường để có nó.
Bạn tự lo mọi thứ từ đầu.
Thuê một dịch vụ đã gói sẵn.
Không cần học sâu ngay. Chỉ cần hiểu đúng vai trò để gọi tên được thứ mình muốn AI làm.
Backend đóng gói sẵn. Một dịch vụ gộp database, đăng nhập, lưu file và hàm xử lý vào một chỗ.
Cửa giao tiếp. Frontend gọi backend qua API để lấy hoặc gửi dữ liệu.
4 việc với dữ liệu. Create (tạo), Read (đọc), Update (sửa), Delete (xóa). Gần như mọi app chỉ xoay quanh 4 việc này.
Hai kiểu lưu dữ liệu. SQL là bảng hàng cột có quan hệ chặt. NoSQL là tài liệu linh hoạt dạng JSON.
Tự cập nhật ngay. Dữ liệu mới hiện ra cho mọi người mà không cần tải lại trang.
Nơi lưu file. Dành cho ảnh, video, tài liệu. Khác với database vốn lưu chữ và số.
Code chạy mà không phải quản máy chủ. "Edge" là chạy ở nơi gần người dùng cho nhanh.
Xác thực danh tính. Backend biết người đang dùng là ai trước khi cho thao tác.
Hầu hết dịch vụ cho dùng miễn phí tới một mức, vượt mức thì trả thêm. Đây là những "đồng hồ đo" quyết định chi phí. Con số cụ thể đổi theo thời gian, nên xem trực tiếp trên trang của dịch vụ.
Hình minh họa, không phải số thật.
Tổng dung lượng dữ liệu chữ và số bạn lưu. Càng nhiều bản ghi càng lớn.
Lượng dữ liệu app gửi ra cho người dùng. App đông người xem nhiều thì egress cao.
Monthly Active Users: số người dùng có hoạt động trong tháng, thường tính qua đăng nhập.
Monthly Active Third-Party Users: người đăng nhập qua nhà cung cấp bên ngoài, được đếm và tính riêng.
Dung lượng file ảnh, video. Tính tách riêng với database.
Mỗi lần edge function chạy đều được đếm. Chạy càng nhiều càng tốn.
Không có backend "tốt nhất", chỉ có backend hợp với bài toán. Đây là cách định hướng nhanh, từ dễ tới khó.
Dữ liệu có cấu trúc rõ, nhiều bảng liên kết nhau (người dùng, nhóm, đơn hàng, quyền). Truy vấn phức tạp dễ dàng.
Dữ liệu hay đổi hình dạng, cần ghi nhanh và realtime. Thường hợp với app mobile.
Mục tiêu là có app chạy nhanh nhất có thể.
Vài trăm tới vài chục nghìn người. Cần đủ database + đăng nhập + lưu file.
Khi truy vấn phức tạp và dữ liệu quan hệ là trọng tâm.
Quy mô doanh nghiệp, yêu cầu đặc biệt, cần đội kỹ thuật.
Supabase là điểm bắt đầu rất hợp: có sẵn database SQL, đăng nhập, lưu file, realtime và function; mã nguồn mở; tài liệu tốt và AI cũng rất "rành" Supabase nên hỗ trợ bạn tốt. Bắt đầu ở đây, sau này đổi vẫn kịp.
Hầu hết BaaS lo sẵn phần này. Bạn chỉ cần bật cách phù hợp và hiểu hai khái niệm dễ nhầm bên dưới.
Xác thực danh tính: kiểm tra đúng người trước khi cho vào.
Phân quyền: ai được xem, sửa, xóa cái gì sau khi đã đăng nhập.
Quen thuộc với mọi người. Cần xử lý quên mật khẩu và xác minh email.
Gửi một đường link vào email, bấm là vào. Không phải nhớ mật khẩu.
Bấm "Tiếp tục với Google / GitHub". Nhanh, không phải tạo mật khẩu mới. Đây là OAuth.
Gửi mã số qua SMS. Hợp với app cần số điện thoại thật.
AI viết code rất nhanh, nhưng bảo mật là chỗ dễ sai nhất. Đây là những điều cần nhớ khi vibe coding với backend.
Row Level Security: mỗi người chỉ đọc và sửa dữ liệu của mình. Không bật RLS thì bất kỳ ai cũng có thể lấy sạch dữ liệu. Đây là việc bắt buộc.
Khóa công khai (anon key) có thể để ở frontend vì đã bị RLS giới hạn. Khóa bí mật (service key) mở mọi cửa, tuyệt đối không để lộ.
Để khóa bí mật trong environment variable. Thêm file .env vào .gitignore để không vô tình đẩy lên GitHub.
Không dán khóa bí mật hay mật khẩu database vào prompt. Sau khi AI viết xong, kiểm tra xem có khóa nào bị ghi thẳng vào code công khai không.
Luôn kiểm tra quyền ở backend. Người xấu có thể gọi thẳng API mà không qua giao diện đẹp của bạn.
Bật xác minh email, giới hạn số lần gọi, và chỉ mở đúng quyền thật sự cần. Mặc định nên đóng, mở dần khi cần.
Đây là luồng có backend thật, để bạn thấy các phần ăn khớp với nhau ra sao.
Bấm một nút trên giao diện, ví dụ thêm hoặc lưu một mục.
Frontend gửi yêu cầu kèm dữ liệu tới backend.
Backend hỏi: đã đăng nhập chưa, RLS có cho phép không?
Nếu hợp lệ, dữ liệu được lưu lại an toàn.
Kết quả hiện ra. Nếu có realtime, người khác cũng thấy ngay.
Khi bạn nắm được database, đăng nhập, chi phí và bảo mật, bạn không còn "nhờ AI làm backend" một cách mơ hồ. Bạn biết chọn đúng công cụ, giao việc rõ ràng và giữ dữ liệu người dùng an toàn.
Phong Ho - AI Business