28 puan yazan xguru 2022-05-30 | 1 yorum | WhatsApp'ta paylaş

Donanım : Hetzner'den 9 adet dedicated sunucu kullanıyor : aylık €484

  • 4 HAProxy, 3 web sunucusu, 2 Postgres

Yazılım

  • Ubuntu 20.04
  • Servisler systemd ile işletiliyor: haproxy / nginx / postgres
  • Wireguard ile sunucular arasında özel ağ kurulmuş. Katmanlandırıldığı için HAProxy, Postgres'e bağlanamıyor
  • Netdata agent ile makine/servis izleniyor ve Netdata Clouda bağlanarak genel görünüm elde ediliyor
  • HAProxy 2.2 ile yük dengeleme ve rolling update
  • PostgreSQL 13 ile Primary'den Standby'a streaming replication. Otomatik failover yok
    → Tek bir komutla failover tetiklenebiliyor ama manuel olarak yapılıyor

Uygulama sunucusunda

  • uWSGI ile Healthchecks Python uygulaması çalıştırılıyor
  • Go ile yazılmış küçük hchk programı, ping API ve inbound email işlemlerini yürütüyor
  • NGINX ile rate limiting, statik dosya sunumu, reverse proxy (uWSGI ve hchk)

SaaS araçları

  • AWS S3 : DB yedeklerini depolama
  • Braintree : ödeme ve abonelik yönetimi
  • Cloudflare : DNS
  • Elastic Email : transactional email gönderimi
  • Fastmail : müşteri destek e-postalarının alımı/gönderimi
  • GitHub : sürüm kontrolü ve takip, GitHub Actions ile her commit'te test çalıştırma
  • Hardypress : servis blogunu işletme (statik WordPress hosting hizmeti)
  • HetrixTools : uptime izleme
  • IcoMoon : ikon font üretimi
  • pgDash : PostgreSQL sunucu izleme
  • PingPong : servis durum sayfasını işletme
  • SSLMate : komut satırından certificate provisioning yapabilme
  • Syften : HN, Twitter, Reddit vb. yerlerde Healthchecks servisinden bahsedildiğinde bildirim alma
  • Twillio : SMS gönderimi, Whatsapp ve telefon bildirimleri

Cron job'lar

  • Günde bir kez tüm DB yedeklenip gpg ile şifrelenerek S3'e yükleniyor
  • Günde bir kez pasif kullanıcılara silme uyarısı gönderiliyor
  • Günde bir kez yıllık aboneler arasında 1 ay içinde yenilemesi gelecek kullanıcılara bildirim gönderiliyor

Geliştirme ortamı

  • Masaüstü PC + 27 inç 1440p monitör
  • Ubuntu 20.04 + GNOME shell
  • Sublime Text + meld / Sublime Merge
  • Yubikeys
  • Fabric : deployment ve bakım işleri çalıştırma
  • sops : secret saklama
  • Acil durumlar için dizüstü bilgisayar