Stack công nghệ của Healthchecks.io, một SaaS do một người vận hành
(blog.healthchecks.io)Phần cứng: dùng 9 máy chủ dedicated của Hetzner: €484/tháng
- 4 máy HAProxy, 3 máy chủ web, 2 máy Postgres
Phần mềm
- Ubuntu 20.04
- Vận hành dịch vụ bằng Systemd: haproxy / nginx / postgres
- Mạng riêng giữa các máy chủ bằng Wireguard. Phân tầng nên HAProxy không thể kết nối tới Postgres
- Giám sát máy/dịch vụ bằng Netdata agent và tích hợp với Netdata Cloud để có cái nhìn tổng quan toàn bộ
- Cân bằng tải và rolling update bằng HAProxy 2.2
- Streaming replication từ Primary sang Standby bằng PostgreSQL 13. Không có failover tự động
→ Có thể kích hoạt failover bằng một lệnh duy nhất, nhưng xử lý thủ công
Trên máy chủ ứng dụng
- Chạy ứng dụng Python của Healthchecks bằng uWSGI
- Chương trình nhỏ
hchkviết bằng Go xử lý ping API và email đến - Rate limiting, phục vụ file tĩnh và reverse proxy (uWSGI và hchk) bằng NGINX
Công cụ SaaS
- AWS S3: lưu bản sao lưu DB
- Braintree: thanh toán và quản lý thuê bao
- Cloudflare: DNS
- Elastic Email: gửi email giao dịch
- Fastmail: nhận/gửi email hỗ trợ khách hàng
- GitHub: quản lý phiên bản và theo dõi, chạy test cho mỗi commit bằng GitHub Actions
- Hardypress: vận hành blog dịch vụ (dịch vụ hosting WordPress tĩnh)
- HetrixTools: giám sát uptime
- IcoMoon: tạo icon font
- pgDash: giám sát máy chủ PostgreSQL
- PingPong: vận hành trang trạng thái dịch vụ
- SSLMate: có thể provisioning certificate từ dòng lệnh
- Syften: nhận thông báo khi dịch vụ Healthchecks được nhắc đến trên HN, Twitter, Reddit...
- Twillio: gửi SMS, cảnh báo qua WhatsApp và cuộc gọi
Cron jobs
- Mỗi ngày một lần sao lưu toàn bộ DB, mã hóa bằng gpg rồi tải lên S3
- Mỗi ngày một lần gửi thông báo xóa người dùng không hoạt động
- Mỗi ngày một lần gửi thông báo cho người dùng thuê bao năm sẽ gia hạn trong vòng 1 tháng
Môi trường phát triển
- PC để bàn + màn hình 27 inch 1440p
- Ubuntu 20.04 + GNOME shell
- Sublime Text + meld / Sublime Merge
- Yubikeys
- Fabric: chạy tác vụ triển khai và bảo trì
- sops: lưu secret
- Laptop dùng cho tình huống khẩn cấp
1 bình luận
Những điều học được sau 1 năm tự vận hành một SaaS
Công cụ đề xuất cho nhà phát triển SaaS một người
Tổng kết sau 6 tháng vận hành một startup SaaS một người
Stack kiến trúc của một startup công nghệ một người