28 poin oleh xguru 2022-05-30 | 1 komentar | Bagikan ke WhatsApp

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 hchk yang 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