Heroku'nun "git push heroku main" deneyimi PaaS kavramını tanımladı — bu yazı onu karalamak için değil. Ama gerçekler de ortada: bedava katman 2022'de kalktı, eco dyno'lar 30 dakika boşlukta uyuyor ve fiyat merdiveni hâlâ dik. "Heroku alternatifi" arayan çoğu kişi platformu bırakmak istemiyor — faturayı ve uyku modunu bırakmak istiyor. İkisini ayıralım.
Heroku'nun Hâlâ Çok İyi Olduğu Yerler
- Add-on ekosistemi: 200+ hazır entegrasyon (Postgres, Redis, monitoring, logging) — tek tıkla tak-çalıştır. Kimse bu pazarın genişliğine yaklaşamadı.
- Olgunluk: 2007'den beri işleyen build pipeline, her edge-case'i görülmüş dokümantasyon.
- Buildpack'ler: onlarca dilde "kodu at, çalışsın" deneyiminin standardı.
- Review apps + pipeline: PR başına otomatik ortam.
Bunları küçümsemek dürüstlük olmaz — Heroku'yu Heroku yapan bunlar. Sorun fiyat/performas tarafında.
Gerçek Fatura Nasıl Büyüyor
| Heroku katmanı | Fiyat (ay) | Ne alırsın |
|---|---|---|
| Eco dyno | ~$5/dyno | 30 dk boşlukta uyur — ilk istekte 5-10 sn cold start; günlük saat kotası |
| Basic dyno | ~$7/dyno | Uyumaz ama 512MB RAM — küçük uygulama bile zorlanır |
| Standard-1X/2X | ~$25-50/dyno | Gerçek production başlangıcı |
| Heroku Postgres Mini | ~$5/ay | Sınırlı bağlantı, küçük plan |
| Essential Postgres | ~$5-50+/ay | Büyüdükçe dik merdiven |
| SSL (otomatik ACM) | Plan kapsamında | Eco'da dahil değil — basic+ gerekir bazı özellikler için |
Tipik küçük ekip faturası: web dyno + worker dyno + Postgres → $20-60/ay ve daha başlangıç. Aynı iş yükü TL fiyatlı planlarda ₺339,9'dan başlıyor — ve dyno hiç uyumuyor.
Uyuyan Dyno Meselesi — "5 Saniyelik İlk İstek"
Eco dyno 30 dakika istek almazsa uyur; ilk gelen ziyaretçi cold start'ı bekler. Demo/hobi için kabul edilebilir; müşterisi olan sitede değil. "Uyandırıcı ping" ile kandırmak yaygın bir hack'tir ama kotayı yiyor ve Heroku'nun istemediği bir davranış. Basic katman uyumaz ama orada da fiyat başlar — yani "uyumayan dyno" zaten ücretli.
Türkiye'den Bakanlar İçin İki Ek Faktör
- Region yokluğu: Heroku yalnız US ve EU'da çalışır. EU'dan İstanbul'a ~40-60ms RTT — Türkiye lokasyonunda ~5-10ms. Yoğun sayfa isteyen sitenin hissedilir farkıdır.
- KVKK tarafı: kişisel veri yurt dışına çıkınca aktarım makinesi doğar (standart sözleşme, bildirim). KVKK veri yerleşimi yazımızda detaylı anlattık — veri Türkiye'de kalırsa bu makine hiç çalışmaz.
Heroku vs Skyversal — Dürüst Tablo
| Heroku | Skyversal | |
|---|---|---|
| Deploy deneyimi | git push, buildpack | git push, container build |
| Uyku modu | Eco'da var (30 dk) | Yok — süreç hep çalışır |
| Worker/queue/cron | Ayrı dyno ücreti her biri | Aynı projede dahil |
| Add-on pazarı | 200+ — tartışmasız lider | Yönetilen servisler (DB, Redis, mail) — sayıca az |
| Region | US / EU | Türkiye |
| Fiyat para birimi | USD — kur sürprizi | TL — sabit |
| Veritabanı | Heroku Postgres (ayrı ücret) | Yönetilen, yedek+PITR dahil |
| Olgunluk / ekosistem | 18 yıl, dev topluluk | Genç — dokümanlar güçlü ama pazar yeri yok |
Kaybettiğimiz yer açık: add-on pazarının genişliği ve 18 yıllık ekosistem. Egzotik bir servis arıyorsanız Heroku pazarında vardır; bizde yönetilen çekirdek servisler vardır. Kazandığımız yer de açık: fiyat para birimi, uyku olmayışı, Türkiye lokasyonu, worker/cron'un ayrı faturalandırılmaması.
Kim Heroku'da Kalmalı, Kim Geçmeli
Heroku'da kalın:
- Ekibiniz Heroku ekosistemine derin bağlı (belli add-on'lar kritik)
- Müşterileriniz US/EU'da — oraya yakın olmak doğru
- Demo/prototip aşamasında eco dyno yeterli geliyorsa
Geçin:
- Türkiye'deki kullanıcıya hizmet — gecikme ve KVKK tarafında kazanırsınız
- Kur oynaklığından bıktıysanız — TL fiyat sabittir
- Worker + web + cron için üç ayrı dyno faturası ödüyorsanız
- Uyuyan dyno'nun cold start'ı müşteriye dert oluyorsa
Heroku'dan Geçiş Adımları
- Repo bağla: GitHub/GitLab deponuzu panelden bağlayın — Heroku remote'u yerine Skyversal pipeline'ı alır.
- Env değişkenleri taşı:
heroku configçıktısını panelden yapıştırın. Laravel için ortam değişkenleri rehberimiz adım adım. - Procfile → başlatma komutu: Heroku Procfile'ı ne yapıyorsa (web + worker), Skyversal'da aynı süreçleri proje içinde tanımlarsınız — ayrı dyno faturası yok.
- Add-on eşleştir: Postgres → yönetilen veritabanı, Redis → yönetilen Redis, scheduler → zamanlanmış görevler.
- Veriyi taşı: pg_dump ile dışa alın, yönetilen DB'ye import edin.
- DNS'i kes: Custom domain'i bağlayın, SSL otomatik.
Tipik bir Laravel/Node projesi için geçiş aynı gün biter; karmaşık add-on dizileri plan gerektirir.
Sık Sorulanlar
Heroku tamamen bitti mi?
Hayır — Salesforce çatısı altında çalışmaya devam ediyor. Bedava katmanın kalkması "bitti" algısı yarattı ama platform ölmedi; sadece giriş maliyeti arttı.
Eco dyno'da neden site yavaş açılıyor?
30 dakika istek gelmezse dyno uyur; ilk istekte 5-10 saniyelik cold start olur. Basic dyno'da uyku yoktur — "uyumayan dyno" ücretli katmandır.
Heroku'daki add-on'ları ne yapacağım?
Çekirdek servisler (Postgres, Redis, scheduler, mail) yönetilen olarak var. Egzotik add-on'lar (büyük pazaryeri araçları) eşleşmeyebilir — geçiş öncesi envanterinizi çıkarın.
Procfile ne olacak?
Aynı mantık: web + worker + release komutları proje içinde tanımlanır. Fark: Heroku'da her dyno tipi ayrı fatura kalemi; Skyversal'da aynı projenin süreçleri.