Tech stack Healthchecks.io, SaaS satu orang
(blog.healthchecks.io)Perangkat keras : menggunakan 9 server dedicated Hetzner : €484 per bulan
- 4 HAProxy, 3 server web, 2 Postgres
Perangkat lunak
- Ubuntu 20.04
- Menjalankan layanan dengan systemd : haproxy / nginx / postgres
- Jaringan privat antarserver dengan Wireguard. Dibuat bertingkat sehingga HAProxy tidak bisa terhubung ke Postgres
- Memantau mesin/layanan dengan Netdata agent dan menghubungkannya ke Netdata Cloud agar bisa melihat gambaran keseluruhan
- Load balancing dan rolling update dengan HAProxy 2.2
- Replikasi streaming PostgreSQL 13 dari Primary ke Standby. Tidak ada failover otomatis
→ Failover bisa dipicu dengan satu perintah, tetapi ditangani secara manual
Di server aplikasi
- Menjalankan aplikasi Python Healthchecks dengan uWSGI
- Program kecil
hchkyang ditulis dalam Go menangani ping API dan email masuk - Rate limiting, penyajian file statis, dan reverse proxy (uWSGI dan hchk) dengan NGINX
Alat SaaS
- AWS S3 : menyimpan backup DB
- Braintree : pembayaran dan pengelolaan langganan
- Cloudflare : DNS
- Elastic Email : pengiriman email transaksional
- Fastmail : menerima/mengirim email dukungan pelanggan
- GitHub : kontrol versi dan pelacakan, menjalankan tes pada setiap commit dengan GitHub Actions
- Hardypress : menjalankan blog layanan (layanan hosting WordPress statis)
- HetrixTools : pemantauan uptime
- IcoMoon : membuat font ikon
- pgDash : pemantauan server PostgreSQL
- PingPong : menjalankan halaman status layanan
- SSLMate : provisioning sertifikat dari command line
- Syften : menerima notifikasi saat layanan Healthchecks disebut di HN, Twitter, Reddit, dll.
- Twillio : pengiriman SMS, notifikasi WhatsApp, dan panggilan telepon
Cron jobs
- Sekali sehari melakukan backup seluruh DB, mengenkripsinya dengan gpg lalu mengunggahnya ke S3
- Sekali sehari mengirim notifikasi penghapusan pengguna tidak aktif
- Sekali sehari mengirim notifikasi kepada pelanggan tahunan yang akan memperbarui langganan dalam 1 bulan
Lingkungan pengembangan
- PC desktop + monitor 27 inci 1440p
- Ubuntu 20.04 + GNOME shell
- Sublime Text + meld / Sublime Merge
- Yubikeys
- Fabric : menjalankan deployment dan tugas pemeliharaan
- sops : menyimpan secret
- Laptop untuk keadaan darurat
1 komentar
Hal yang saya pelajari setelah menjalankan SaaS sendirian selama 1 tahun
Rekomendasi alat untuk pengembang SaaS solo
Retrospektif menjalankan startup SaaS solo selama 6 bulan
Stack arsitektur untuk startup teknologi satu orang