37signals tarafından geliştirilen hafif Kamal 2 (Kamal Proxy), web panelli Coolify v4, tek sunuculu Dokku ve hafif Kubernetes (K3s) araçlarını RAM tüketimi, sıfır kesinti süresi ve küme ölçeklenebilirliği bazında karşılaştırın.
| Platform | Yönetim Ek Yükü (RAM) | Uygulamaya Kalan RAM | Maks Konteyner | Çoklu Sunucu | Sıfır Kesinti Mekanizması | Durum |
|---|---|---|---|---|---|---|
Kamal 2 (37signals / DHH) CLI / GitOps | ~25 MB | 3.66 GB(%91) | 7 adet | Evet (SSH / Küme) | Kamal Proxy HTTP hold & atomik konteyner takası (0 paket kaybı) | En Yüksek Verim |
Coolify v4 (Açık Kaynak PaaS) Web UI | ~1400 MB | 2.31 GB(%58) | 4 adet | Evet (SSH / Küme) | Traefik dinamik etiket (label) yenileme & healthcheck | Uyumlu |
Dokku (Heroku-Mini) Git Push CLI | ~180 MB | 3.5 GB(%88) | 7 adet | Yalnızca Tek Sunucu | Nginx upstream atomik port geçişi & SIGQUIT | Uyumlu |
K3s (Hafif Kubernetes) Kubernetes YAML | ~1600 MB | 2.12 GB(%53) | 4 adet | Evet (SSH / Küme) | RollingUpdate ReplicaSet + Ingress endpoint draining | Uyumlu |
config/deploy.yml)Kamal 2, kamal-proxy aracılığıyla Let's Encrypt SSL sertifikasını otomatik yönetir ve yeni konteyner sağlık testinden (/up) geçene kadar eski konteynere gelen istekleri sıfır kesintiyle yönlendirir.
# config/deploy.yml (Kamal 2 Üretim Yapılandırması)
service: web-app
image: registry.digitalocean.com/my-org/web-app
servers:
web:
hosts:
- 195.201.54.80 # VDS 1
- 195.201.54.81 # VDS 2 (İsteğe bağlı küme)
labels:
traefik.http.routers.app.rule: Host(`app.example.com`)
proxy:
ssl: true
host: app.example.com
app_port: 3000
healthcheck:
path: /up
interval: 2s
timeout: 3s
registry:
server: registry.digitalocean.com
username: deploy-token
password:
- KAMAL_REGISTRY_PASSWORD
env:
clear:
NODE_ENV: production
PORT: 3000
secret:
- DATABASE_URL
- SESSION_SECRET
accessories:
db:
image: postgres:16-alpine
roles:
- web
port: 5432
directories:
- /var/lib/postgresql/data:/var/lib/postgresql/data
env:
clear:
POSTGRES_DB: app_prod
secret:
- POSTGRES_PASSWORDBuluttan kendi VDS ve fiziksel sunucularına geçiş yapan (Cloud Exit) ekipler, konteyner dağıtımı için genellikle iki uç arasında sıkışıp kalıyordu: Bir yanda yüzlerce YAML dosyası, etcd ve yüksek RAM tüketen Kubernetes; diğer yanda tek sunucuya bağımlı ve dahili panelleriyle 1 - 2 GB RAM tüketen Coolify veya Dokku. Basecamp ve Hey'in yaratıcısı 37signals tarafından geliştirilen Kamal 2, bu denklemi kökten değiştirdi:
Kamal, sunucunuzda arka planda çalışan ağır yönetim servisleri (Node.js, PostgreSQL vb.) barındırmaz. Doğrudan geliştirici makinesinden veya GitHub Actions üzerinden standart SSH ile bağlanır ve saf Docker API komutlarını koşturur. Sunucunun CPU ve belleği tamamen uygulamanıza kalır.
Kamal 2 ile birlikte Traefik yerine Go dilinde yazılmış ultra hafif kamal-proxy (~25 MB RAM) tanıtıldı. Yeni konteyner ayağa kalkıp /up sağlık testinden onay alana kadar gelen HTTP bağlantılarını tamponlar (buffer) ve ardından trafiği milisaniyeler içinde yeni konteynere aktarır; 502 Bad Gateway hatası oluşmaz.
Dokku tek bir sunucuya hapsolmuşken, Kamal 2 tek bir deploy.yml dosyasında 1 ila 50+ VDS sunucusunu paralel olarak yönetebilir. Web katmanını ayrı, veritabanı (accessory) katmanını ayrı sunucularda kolayca çalıştırabilirsiniz.
Eğer ekibiniz terminal ve SSH anahtarları yerine tarayıcı tabanlı görsel bir web arayüzü, kullanıcı yetkilendirmesi, tek tıkla PostgreSQL/Redis/MinIO kurulumu ve hazır Git webhook arayüzü istiyorsa ve sunucunuzda en az 4 GB - 8 GB RAMbulunuyorsa, Coolify v4 olağanüstü bir kullanıcı deneyimi sunar. Ancak 2 GB RAM'lik bütçe dostu sunucularda Kamal 2 rakipsizdir.