- OVH Cloud’daki büyük bir sunucu üzerinde birden fazla SaaS uygulaması çalıştırıyorum
- Günde yaklaşık 6 milyon önbelleğe alınmamış isteği işliyor
- Backend: Django/Python + MySQL + Redis + WebSocket(Pub/sub)
- Gizli silahım OpenResty (NGINX ve LuaJIT tabanlı dinamik web platformu)
- Lua script’leriyle karmaşık sayfa önbelleklemesini yönetiyor, DDoS’u engelliyor, WebSocket’i işliyor ve uzun süren istekleri başka yere aktarıyorum
- 1500 satırlık Lua kodundan oluşan “yoksulun Cloudflare’ı”
- Bu uygulamalar Docker’dan önce yapıldığı için doğrudan process olarak çalışıyor(systemd)
- Başta uwsgi kullanıyordum ama gunicorn çok daha verimli olduğu için artık tamamen ona geçtim
- Benim SPOF noktam DNS. DNSMadeEasy ile aram iyiydi, bu yüzden otomatik ban konusunda endişem yoktu ama şimdi DigiCert onları satın aldığı için sorun çıktı
- Ödemeleri Stripe ve Paypal ile alıyorum. Paypal’dan hoşlanmama rağmen eklememin sebebi, Stripe’ın ne zaman uyarı vermeden engelleyeceğini bilememem
- Kullanıcı yüklemeleri aiohttp Python sunucusuyla dosyaları Wasabi ve Backblaze’e gönderiyor, nginx de önbellekliyor. Bu yüzden bulut transfer ücretim 0
- WebSocket katmanı biraz kararsız. Başta her şeyi Python WebSocket asyncio kütüphanesiyle yapıyordum; bir yere kadar çalıştı ama sonra çoklu process’e geçmeye çalışınca aşırı kaynak tüketmeye başladı
- Bu yüzden OpenResty’nin WebSocket özelliğini kullanmaya karar verdim ama karmaşık mantığı Lua ile yazmak istemedim
- Mesajları Python process’lerine iletmek için Redis Pub/Sub kullanacak şekilde değiştirdim
- Ama servisimin adını söylemeyeceğim (daha fazla rakip istemiyorum!)
- Pek bilinmeyen seçenekleri tercih etme eğilimindeyim; bunun tek başına çalışan geliştiriciler için daha üretken olduğunu düşünüyorum
- PostgreSQL + SQLite
- Ana dil Rust
- Frontend htmx + tailwindcss
- CloudFlare + Vultr hosting
- nginx + nixos + circle ci
- Bazıları nefret edecek ama benim için en iyi seçim Wordpress oldu
- Forum için bbPress
- Üyelerin içerik paylaştığı topluluk için buddyPress
- Bülten için çok pahalı bir SaaS yerine uygun fiyatlı mailster.co eklentisi(Critsend.com kullanıyor)
- İstediğim özelliklerin çoğu eklenti olarak bulunabiliyor: aranabilir FAQ, Captcha, reklamlar, Discord’a gönderi paylaşma, kullanıcı raporlama sistemi vb.
- https://rpgplayground.com/ işletiyorum
- OpenAI ile rekabet eden bir servis olan https://text-generator.io ’yu işletiyorum
- Eskiden GCP üzerinde Kubernetes kullanıyordum, şimdi ise Cloudflare tüneli üzerinden evdeki GPU’larımla çalıştırıyorum. Böylece GPU maliyeti 10 kat daha ucuz
- Girilen bağlantı ya da görselleri Tesseract / Unified IO / OFA / Beautiful Soup vb. ile analiz edip görsel/makbuzlarla ilgili cevaplar veriyor
- Sitenin kendisi AppEngine üzerinde Python + Stripe + Firebase UI ile çalışıyor, bu yüzden haftalık düşük bir maliyetle işletiyorum
- Render üzerinde host ediyorum
- https://allaboutberlin.com işletiyorum
- DigitalOcean’daki Docker üzerinde Craft CMS ile çalışıyor
- Craft, WordPress’te oluşturması zor olan, özel alanlara sahip özel içerik türlerini kolayca oluşturabiliyor
- Ama WordPress olmadığı için ihtiyaç duyduğum çok fazla eklenti yok
- Önbellekleme ve daha birçok iş için nginx kullanıyorum
- Daha üretken olmak istiyorsan PETAL’ı dene
- Phoenix + Elixir + Tailwind + Alpine.js + LiveView
- Rails + Postgres + Redis + SideKiq
- Herokus’ta host ediliyor, hata takibi için Sentry, performans izleme için New Relic, e-posta için Send Grid
- Yakın zamanda Google Analytics’i Plausible ile değiştirdim ve içeride daha derin analiz için Ahoy(Rails Middleware) kullanıyorum
- Müşteri desteği/sohbet için Intercom kullanıyorum ama Chatwoot ile değiştirmeyi planlıyorum
- Heroku’dan çıkmayı planlıyorum ama en öne çıkan alternatif olan Render’da hâlâ otomatik failover’lu HA Postgres seçeneği yok
- GitHub master branch’ine push yapılınca production’a otomatik deploy oluyor
- master branch’e merge sadece PR ile mümkün ve yalnızca Linter(Rubocop) + Tests(Rspec on CircleCI) + %100 coverage(codecov.io) yeşilse yapılabiliyor
- UI Bootstrap, JavaScript ile server-side rendering yapıyorum
- Daha fazla etkileşim gereken UI’lar için Hotwire/Turbo vs. Alpine vs. Stimulus vs. React arasında düşünüyorum
- Bir Agtech platformu geliştiriyorum
- Backend: Rust, Rocket, sqlx, Postgres, biraz Ansible
- Frontend: Rescript + React. Oldukça fazla Rust/WASM kullanıyorum ama bu bir hataymış. Geri almaya çalışıyorum
8 yorum
Vay be, bütün bunları tek başınıza nasıl yönetiyorsunuz? vay canına
Uzun süren web isteklerini offload etmekten tam olarak ne kastedildiğini gerçekten merak ediyorum; bu konuda pek bir açıklama yok ^^;
Vay be
Vay be, gerçekten çok çeşitli kullanıyorsunuz,, PETAL gibi bir kombinasyonu ilk kez görüyorum, güzel
👍
Gerçekten çok faydalı bir makale, teşekkürler teşekkürler!
Tek kişilik teknoloji girişimleri için mimari yığını
Tek kişilik SaaS olan Healthchecks.io’nun teknoloji yığını
Tek kişilik SaaS geliştiricileri için araç önerileri
Bir startup’ı yıllık 6$ ile işletmek
Minimum çabayla bir yazılım startup’ı işletmek
Stimulus + Turbo Frames - Hotwire : HTML Over The Wire
HN'de paylaşılmış eski yazılara da göz atın
2021 https://news.ycombinator.com/item?id=28299053
2020 https://news.ycombinator.com/item?id=25465582
2019 https://news.ycombinator.com/item?id=21024041