Chiều nay ngồi làm việc ở quán cafe quen thuộc dưới Gò Vấp, mình vừa kiểm tra xong báo cáo chạy quảng cáo tháng này cho xưởng mộc của ông anh. Đang lướt điện thoại xem tin tức thị trường thì thằng em mới học code nhắn tin hỏi thăm xem nên chọn database cho app như thế nào cho ổn. Nó tính làm một phần mềm nhỏ để quản lý lịch hẹn cho phòng khám nha khoa quy mô 3 ghế nha của gia đình. Lựa chọn không dễ. Câu chuyện hai anh em nhắn qua nhắn lại loanh quanh mãi ở việc bỏ 150.000đ tự thuê máy chủ ảo về cài hay dùng dịch vụ làm sẵn.

Backend là gì và vì sao cần chọn cơ sở dữ liệu cẩn thận
Thằng bé dân ngoại đạo mới học lập trình được vài tháng nên cứ loay hoay mãi với mấy khái niệm mạng mẽo cơ bản. Rất là khó hiểu. Mình phải ngồi gõ tin nhắn giải thích một hồi dài về chuyện backend là gì cho nó hiểu nôm na. Bạn cứ tưởng tượng phần này giống như cái nhà kho và xưởng chế biến của một nhà hàng, khách ăn không ai thấy nhưng không có kho là dẹp tiệm. Chỗ này là phần chìm của phần mềm, nơi lưu trữ toàn bộ dữ liệu người dùng và xử lý các thao tác tính toán để ứng dụng tải trang chưa tới 1 giây.
Việc chọn database cho app quyết định trực tiếp tốc độ mở ứng dụng. Làm sai là mệt. Đầu tuần trước mình có qua văn phòng hỗ trợ một cậu bạn tự cài cơ sở dữ liệu Postgres lên con máy chủ VPS thuê bên Singapore. Cậu ấy tự tin làm theo hướng dẫn trên mạng nhưng cấu hình sai file pg_hba.conf làm rớt mạng kết nối suốt ba tiếng đồng hồ liền. Sửa xong phần phân quyền đó lại quên mở bọt 5432 trên tường lửa hệ thống máy chủ Ubuntu. Phần mềm viết xong tải nhanh 100 dòng dữ liệu trên máy tính cá nhân nhưng đẩy lên môi trường thật lại báo lỗi không lấy được dữ liệu. Hai anh em tốn cả buổi tối để mò mẫm đọc vài ngàn dòng log báo cáo truy vấn pg_stat_statements, tìm từng lỗi nhỏ rồi xử lý mới thông được luồng kết nối. Khách hàng họ chỉ cần bấm nút là xem được lịch khám, họ không rảnh để quan tâm bạn xài công nghệ gì đằng sau.
Bài toán chi phí giữa tự cài máy chủ và đi thuê dịch vụ
Thằng em khăng khăng bảo muốn tự mua gói máy chủ giá rẻ rồi cài database cho app cho tiết kiệm chi phí hàng tháng. Tiền bạc luôn quan trọng. Đúng là tự cài đặt thì bạn chủ động hoàn toàn mọi thứ từ phiên bản phần mềm đến tinh chỉnh tối ưu hệ điều hành. Nhưng mình nhẩm tính cho nó nghe thử một bài toán thu chi thực tế của công ty. Mua một gói máy chủ giá 5 đô la của các nhà cung cấp nước ngoài như Vercel hay Supabase cấu hình 2 core và 4GB RAM cũng mất một khoản không hề nhỏ. Trả bằng tiền đô la thông qua thẻ ngân hàng lại sinh ra chuyện phiền phức kê khai thuế nhà thầu cho kế toán công ty. Hoá đơn thanh toán của mấy nhà cung cấp nước ngoài thường không có mã số thuế Việt Nam rất khó hạch toán hợp lệ vào chi phí hoạt động doanh nghiệp, chuyện này rất phiền. Bạn đem cái chứng từ thanh toán đó về phòng kế toán, các chị em lại nhăn nhó cằn nhằn suốt ngày vì không làm cách nào giải trình khớp số liệu với cơ quan thuế.
Thêm một rắc rối nữa là mỗi khi phần mềm có trục trặc kỹ thuật, bạn gửi email gọi bộ phận hỗ trợ thì toàn gặp chuyên viên nói tiếng Anh theo múi giờ nước Mỹ. Kẹt cứng luôn. Bạn phải thức trắng đợi đến hai ba giờ sáng chờ họ trả lời thư, lúc đó thì người dùng của bạn đã bực dọc phàn nàn chán chê trên trang chủ Facebook rồi. Tháng trước mình làm một cái ứng dụng nội bộ lưu thông tin cho một vị khách và có dịp dùng thử hệ thống của MONA. Trải nghiệm ban đầu cài đặt xong cụm Postgres 15 chỉ mất đúng 3 phút, không gặp rào cản ngôn ngữ lúc cần hỏi đáp kỹ thuật. Bạn có thể tham khảo thêm bài viết của mình về việc nhập hàng trung quốc lần đầu chuẩn bị thủ tục hải quan để thấy quy trình hành chính và ngôn ngữ lúc nào cũng rắc rối.
Trải nghiệm dùng thử dịch vụ hạ tầng trên MONA Base
Bên dịch vụ MONA Base gom chung cả bộ gồm nền tảng Postgres 17, hệ thống Auth đăng nhập, Storage lưu file, tính năng Realtime và bảng pgvector vào cùng một cụm hạ tầng. Mọi thứ rất tiện. Thao tác khởi tạo cụm Postgres 17 diễn ra theo đúng ba bước: đầu tiên là chọn cấu hình 2 core, tiếp theo là thiết lập mức RAM 4GB kèm ổ cứng 40GB, và cuối cùng là nạp ví 1.241.000đ để kích hoạt. Cấu trúc gọi hàm API để giao tiếp giống hệt như thư viện supabase-js quen thuộc nên mình đổi đoạn địa chỉ đường dẫn cái là ứng dụng kết nối nhận liền. Mình ngồi nhâm nhi ly nước đợi chưa tới năm phút là có ngay một cụm dữ liệu với chứng chỉ bảo mật HTTPS hợp lệ để xài. Bữa đó bên chỗ anh khách mới chuyển qua mảng ứng dụng có nhờ mình rà soát rồi kéo thanh tính phí của hệ thống để coi mức chi hàng tháng ra sao.
Gói dịch vụ đang niêm yết mức 1.700đ mỗi giờ cho phần cứng 2 core, 4 GB RAM và 40 GB Disk. Tính ra để máy chủ chạy liên tục suốt 730 giờ thì tốn khoảng hơn một triệu hai tiền Việt Nam mỗi tháng. Hệ thống tách riêng ba khoản phí theo giờ rất rõ ràng, trong đó 250đ cho mỗi core CPU, 150đ mỗi GB RAM và 15đ mỗi GB ổ cứng. Mọi thao tác mình chỉ việc gõ vài dòng lệnh thiết lập là công cụ tự động đẩy tài nguyên lên máy chủ. Trợ lý trí tuệ nhân tạo nó thông báo trước giá tiền bằng VND rành rọt cho mình nhẩm tính ngân sách công ty dễ dàng. Khách hàng muốn nạp tiền thì qua cổng MONA Pay thao tác quét cái mã VietQR rẹt rẹt, tài khoản ảo nhận báo có liền để ví bắt đầu trừ dần phí. Đợt mua hộ cái tên miền bên MONA Domain, máy tự điền dùm luôn bản khai hồ sơ đăng ký chủ thể chỉ mất tầm bảy trăm ngàn. Nạp sẵn ví rồi hệ thống tự động trừ tiền theo đúng số lượng giờ xài, không phải đóng gộp nguyên năm nặng tiền mặt.

Vài điểm lưu ý khi làm việc với hệ thống mới
Một sản phẩm phần mềm nào mới phát hành trên thị trường cũng có vài chỗ làm mình cấn cá. Ứng dụng MONA Base hiện tại vẫn đang ở giai đoạn beta thử nghiệm. Bảng điều khiển trang chủ còn khá sơ sài chưa có nhiều nút bấm quản lý. Anh em sẽ không tìm thấy một trình xem bảng dữ liệu đẹp và thao tác trực quan như cái Supabase Studio. Việc này làm mình hơi hụt hẫng lúc mới đăng nhập vào để rà soát thông tin đơn hàng, phải cố gắng làm quen thao tác chay thông qua câu lệnh psql. Lại thêm việc tính tiền theo từng giờ chạy máy, nếu treo ứng dụng 24/7 nguyên năm thì đắt hơn việc đi mua hẳn một cái VPS trả trọn gói vì đóng tiền năm vẫn rẻ hơn. Cuối tuần trước mình nghịch tạo một cụm máy ảo rồi đi ngủ quên không tắt, sáng hôm sau dậy thấy ví bị trừ đi mất 25.000đ khá xót ruột.
Điểm dở thứ hai là hệ thống tài liệu kỹ thuật của họ viết còn rất mỏng, chưa cập nhật hết mọi ngóc ngách của các tình huống thực tế phức tạp. Mấy lỗi vặt mình dính phải lúc gọi hàm Realtime để đẩy thông báo trạng thái tức thì, đem lên mạng gõ tìm mỏi mắt cũng không ra bài nào hướng dẫn trên cộng đồng Stack Overflow nên kẹt thì phải tự lo. Anh em chỉ có nước mò mẫm tải vài tệp log hệ thống về đọc hoặc chạy thử mã đi lại vài chục lần mới lòi ra vấn đề. Mấy nền tảng ít lập trình viên bàn tán thì lúc bí rị chỉ có cách tự lực cánh sinh mà mày mò mã lỗi. Khá là mất thời gian. Hệ thống cũng không cấp sẵn giao diện thân thiện kiểu cPanel để kéo thả thao tác, thành ra ai yếu tay nghề dòng lệnh sẽ loay hoay mất vài ngày.
Quyết định chốt phương án xây dựng dữ liệu cho phòng khám
Cuối cùng mình gọi điện dặn thẳng thằng em phải cân nhắc kỹ số vốn hiện có và giới hạn kỹ năng lập trình của nó. Phải tính kỹ đường dài. Xây dựng một cơ sở hạ tầng backend là gì đi nữa thì yếu tố sống còn cốt lõi luôn là độ ổn định liên tục và an toàn thông tin khách hàng. Việc rò rỉ dữ liệu lịch khám người dùng sẽ làm phòng khám mang tiếng xấu rất lớn. Báo cáo thống kê bên hãng bảo mật Symbiotic Security quét hàng ngàn ứng dụng thì phát hiện 98% hệ thống dính lỗ hổng mạng. Bạn bỏ công thức đêm tiết kiệm vài trăm ngàn mỗi tháng mà ứng dụng lăn ra chết giữa lúc phòng khám đông khách thì hỏng hết việc kinh doanh. Rất đau đớn khi để tuột 41 lượt khách hàng nhắn tin xin tư vấn và 27 cái cọc tiền làm răng chỉ vì trang mạng sập đúng lúc chiến dịch đang chạy tốt.
Gợi ý của mình là nó nên bắt đầu bằng cụm cấu hình nhỏ nhất niêm yết giá 550đ một giờ để đánh giá lượng khách thực tế ra sao rồi nâng cấp tiếp. Thiết lập cái database cho app chạy thẳng trên máy chủ đặt tại Việt Nam tiện cái là tốc độ truy xuất thông tin từ điện thoại cực nhanh, không lo sự cố đứt cáp quang biển. Ngân sách làm ăn eo hẹp thì tối ưu từng đồng rất quan trọng. Bạn có thể tham khảo qua góc nhìn quản trị vốn trong bài viết quản trị dòng tiền từ 200 lên 500 triệu để thấy cách phân bổ tài chính.
Tháng tới xưởng mộc của ông anh dọn xưởng sang mặt bằng rộng hơn bên quận 7, mình chuẩn bị phải lên bản vẽ nâng cấp cái hệ thống quản lý đơn hàng nội bộ. Tối nay rảnh rỗi mình định rủ thằng em mở máy tính lên gõ lệnh tạo thử luôn một cái dự án đặt lịch nha khoa nhỏ trên máy chủ kia coi quá trình chạy thực tế diễn ra như thế nào.
Comments are closed