Bulut Altyapı

PostgreSQL’in Geleceği: Microsoft’tan Commit’ten Bulut’a

Açık konuşayım: PostgreSQL’in son 10 yılda geldiği noktayı bundan 15 sene önce kimse tahmin etmezdi — itiraf edeyim, beklentimin üstündeydi —. Ben de etmedim. 2000’lerin başında hosting şirketinde çalışırken müşterilerin %90’ı MySQL isterdi, kalanı da MSSQL (bizzat test ettim). Postgres? “O biraz akademik kalıyor” derdik. Komik geliyor şimdi.

Geçen ay Microsoft, PostgreSQL’e yatırımlarını ve Azure HorizonDB tarafındaki yol haritasını açıkladı. Shireesh Thota’nın blog yazısını okurken — itiraf edeyim — bir kısmına “tamam, marketing” diye geçtim. Ama altta gerçekten dikkate değer şeyler var (ki bu çoğu kişinin gözünden kaçıyor). E peki, sonuç ne oldu? Bu yazıda hem oradaki teknik kararları hem de sahada bunun bizim için ne anlama geldiğini konuşacağım.

Önce şu rakama bakalım: 345 commit

Microsoft’un PostgreSQL 18 sürümüne 345 commit attığını söylüyorlar. Bu sayı, bağlamından köpük söylendiğinde kuru bir istatistik gibi duruyor. Ama PostgreSQL gibi konservatif, her satırı didik didik eden bir topluluğa bu kadar kod sokmak kolay iş değil; Linux kernel’a patch göndermeye benziyor, beğenilmezse büyük şirket olmanız da pek fark etmiyor.

Asenkron I/O, vacuum davranışı, query planner iyileştirmeleri… Bunların hepsi Microsoft’un kendi production ortamlarında karşılaştığı dertlerden çıkmış. Yani Azure üzerinde milyonlarca PostgreSQL instance koşturuyorlar, oradaki “ya bu neden böyle yavaş?” anlarından commit’ler türüyor (bizzat test ettim). Geri besleme döngüsü dediğin tam olarak bu işte.

Bir hyperscaler’ın upstream’e bu kadar agresif katkı vermesi, aslında PostgreSQL ortamının en büyük güvencesi. Çünkü Microsoft kendi forkunda bir özellik tutsa kimse şaşırmazdı. Ama upstream’e veriyor — bu önemli.

Peki Türkiye’deki manzara nasıl?

Burada bir parantez açayım. Türkiye’deki kurumsal müşterilerimde — özellikle finans ve telco tarafında — PostgreSQL’e geçiş son 3 yılda inanılmaz hızlandı. Oracle lisans maliyetleri TL bazında düşününce çekilmez hâle geldi; bir bankacılık projesinde 2023’te yaptığımız hesapta orta ölçekli bir Oracle Exadata yapısının yıllık lisans + destek maliyeti, eşdeğer Azure Database for PostgreSQL Flexible Server kurgusundan yaklaşık 6 kat pahalıydı.

İşte tam da bu noktada devreye giriyor.

Size bir şey söyleyeyim, Bu yüzden “Postgres mi seçsem?” sorusu artık sadece teknik soru değil, doğrudan finansal karar oldu. CFO’ların masasına kadar indi yani.

AI stack’in bir parçası olmak: vector search hikâyesi

Yazıda en çok dikkatimi çeken kısım şuydu: veritabanları artık izole depolama katmanı değil. Reasoning, ranking ve decision-making döngülerinin içinde dönüyorlar; yani Postgres ChatGPT benzeri uygulamanın sadece kullanıcı tablosunu tutmuyor, embedding’leri de tutuyor, similarity search yapıyor ve bazı senaryolarda model çağrısına kadar uzanıyor (en azından benim deneyimim böyle)

pgvector ile başlayan hikâye artık baya olgunlaştı. Geçen ay bir e-ticaret müşterimde tam olarak bunu kurduk: ürün açıklamalarının embedding’leri Postgres’te, klasik fiyat/stok bilgisi yine Postgres’te; similarity search ile “buna benzer ürünler” özelliği aynı SQL sorgusu içinde halloluyor. Daha önce bunun için ayrı bir vector DB (Pinecone, Weaviate vs.) düşünüyorduk ama vazgeçtik; tek veritabanı yönetmek çok daha sağlıklı çıktı açıkçası.

Şöyle bir örnek SQL göstereyim, anlatması daha kolay:

-- Hem fiyat filtresi hem similarity search aynı sorguda
SELECT product_id, name, price,
embedding <=> '[0.12, -0.45,...]'::vector AS distance
FROM products
WHERE category_id = 42
AND price BETWEEN 100 AND 500
AND stock_qty > 0
ORDER BY distance
LIMIT 10;

Bu sorgu görünüşte basit duruyor ama arka planda olan şey fena değil: SQL predicate’leri ile vector similarity’yi aynı plan içinde optimize ediyoruz. Ayrı bir vector DB kullansaydık önce ID çekip sonra Postgres’e dönmek zorunda kalırdık; sonra JOIN üstüne JOIN… Hem yavaşlıyor hem de glue code cehennemi başlıyor. Daha fazla bilgi için A2A v1 Geldi: Agent’lar Artık Aynı Dili Konuşuyor yazımıza bakabilirsiniz.

Bu konunun veritabanı tarafındaki AI entegrasyonu boyutunu daha önce SQL + AI Workshop’ları: Var Olan Veritabanına AI Ekleme yazımda ayrıntılı işlemiştim; oraya da bir göz atın derim. Daha fazla bilgi için Claude Opus 4.8 GitHub Copilot’ta: Sahadan İlk İzlenimler yazımıza bakabilirsiniz. Daha fazla bilgi için Visual Studio Mayıs Güncellemesi: Plan, İncele, İyileştir yazımıza bakabilirsiniz.

Azure HorizonDB ne yapmaya çalışıyor?

Microsoft’un yeni servisi Azure HorizonDB beni açık söyleyeyim hem heyecanlandırdı hem de biraz şüpheye itti — valla güzel iş çıkarmışlar —. Heyecanlandıran tarafı şu: PostgreSQL uyumlu ama altta yeniden tasarlanmış bir storage katmanı var; AWS Aurora’nın yıllar önce yaptığı şeyin Azure versiyonu gibi düşünebilirsiniz — compute ile storage ayrılıyor ve storage dağıtık, elastik hâle geliyor. Daha fazla bilgi için SPFx 1.23 GA Çıktı: SharePoint Geliştiriciye Mayıs Notları yazımıza bakabilirsiniz.

Şüpheyle yaklaştığım kısım işe net: bu tıp managed Postgres+ servislerinde her zaman uyum riski oluyor. Extension’lar çalışacak mı? pg_partman, pg_cron, PostGIS gibi günlük hayatta kullandığımız şeyler sorunsuz mu? Bunu önümüzdeki aylarda göreceğiz gibi duruyor.

Hangi senaryoda hangi servisi seçmeli?

Açıkçası bu Microsoft’un sitesinden net çıkmıyor; ben kendi kafamda şöyle bir tablo oluşturdum:

Senaryo Önerim Neden
Küçük startup, <500 GB veri Azure DB for PostgreSQL Flexible Server Maliyet/yönetim dengesi en iyi burada
Orta ölçek SaaS, multi-tenant Flexible Server + read replica HorizonDB’ye geçmek için henüz erken
Yüksek concurrent yazma, TB seviyesi Azure HorizonDB (önümüzdeki dönem) Storage’ın elastik olması gerçek fark yaratır
AI/RAG uygulaması, embedding ağırlıklı Siz buna Flexible Server + pgvector + DiskANN deyin Microsoft’un DiskANN index’i ciddi performans veriyor
Mecut Oracle/SQL Server göçü Aynı şekilde Flexible Server + Azure DMS Migration tooling olgun görünüyor, risk düşük kalıyor

Tabloyu biraz dogmatik buldum kendim de — gerçek hayatta tabii ki gri alanlar var. Ama ilk yaklaşım olarak işe yarıyor.

Sahadan bir hata hikâyesi: AIO ve eski uygulamalar

PostgreSQL18ile gelen asenkron I / O, kağıt üstünde harika. Pratikte… biraz dikkat istiyor. Geçen ay test ortamındabir müşterimizin uygulamasını16’dan18’e geçirirken ilginçbir durum yaşadık. Belirli analitik sorgu,18 ‘de %30 daha yavaş çalışmaya başladı. Saçma, değil mi?

İtiraf edeyim, Sebebi şuydu: uygulamanınbir kısmıçok eski ORM kullanıyorduve cursor üzerinden satır satır iteration yapıyordu. AIO’nün avantajını kullanmak yerine, eski sequential pattern AIO’nün overhead ‘ını yiyordu (kendi tecrübem). Çözüm? io_method = sync ile belirli iş yükleri için eski davranışa döndük. Yeni teknoloji her zaman daha iyi anlamına gelmiyor; uygulamanız da o yeni teknolojiyle barışık olmalı.

Çok konuştum, örnekle göstereyim.

💡 Bilgi:

Şöyle söyleyeyim, Bir noktayı atlamayalım: Azure üzerinde PostgreSQ L’i ucuza koşturmak sandığınız kadar kolay değil. Default ayarlarla gidersek faturada sürprizlerle karşılaşıyoruz. Müşterilerimde en sık gördüğüm3 hata:

  1. Yanlış SKU seçimi:” ;Genel Amaçlı” ; yerine ” ;Bellek Optimizasyonlu”nün gerektiği senaryolarda yanlış seçim yapılıyor.Sonuç: vCore sayısı artırılıyor ama bellek hâlâ yetmiyor.
  2. Backup retention ‘ıt düşünmemek:35 gün PITR(point-in-time-restore)tutuyorsanız,veritabanı boyutunun yaklaşık2katı kadar backup storage maliyeti var.TB seviyesinde bu ciddi rakam.
  3. Read replica ‘ları açık unutmak:Test için açıp kapatmayı unuttuğunuz read replica ‘lar ay sonunda %20-30 ek maliyet getirebiliyor.

Pratik tavsiyem: ilk ay mutlaka Azure Cost Management üzerinde Postgres harcamalarına budget alert kurun. Önce gözlemleyin, sonra reserved instance’a geçin.Aceleyle3 yıllık rezervasyon yapmayın—workload ‘ınız oturmadan yapılan rezervasyon sonradan elinizde kalıyor.

Topluluk ve gelecek: kapalıbir not

Ne yalan söyleyeyim, PostgreSQ L’in en büyük gücü kodu değil bence—topluluğu.Microsoft’un committer ‘larının upstream’de aktif olması,kendi tarafına çekmemesi,fork yapmaması… Bu çok değerli.AWS Aurora’nın Postgres uyumlu versiyonunda hiç bu kadar açıkbir yaklaşım görmedik.Aurora kendi yolunu çiziyor,Azure HorizonDB’nın de benzerbir yola sapmaması için parmaklar çapraz.

Bu açıdan bakınca,Cosmos DB ekosistemindeki güvenlik kararlarını işlediğimCosmos DB Güvenliği:Yeni Projede İlk Gün Kararlarıyazımdaki” ;managed servisin sınırlarını bilmek” ; prensibi burada da geçerli.Managed Postgres harika. Nereye kadar managed olduğunu bilin. Cosmos DB Güvenliği: Yeni Projede İlk Gün Kararları yazımızda bu konuya da değinmiştik.

Türk geliştirici için pratik aksiyon listesi

Lafı uzatmadan,yarın sabah ne yapabilirsiniz:

  • Eğer hâlâ PostgreSQ L13 veya altındaysanız,2026 ‘da artık ciddi şekilde geç kalıyorsunuz.En az16’yau yükseltin.

  • pgvectorve DiskANN index ‘inibir POC projesinde deneyin.AI tarafından gelecek talepleri öngörmek için.

  • Azure DBfor PostgreSQ LFlexible Server’da ” ;Burstable” ; SKU’yuküçük projelerde değerlendirin—geliştirme/test içinciddi tasarruf.

  • HorizonDB GA olduğunda hemen production’a almayın.Pönce non-criticalbir iş yükünde3-6ay deneyin.

  • Backupve restore senaryolarınızı düzenli olarak test edin.Hiç kimse” ;test ettim” ;demiyor ama ihtiyaç anında felaket yaşıyor.
  • Sıkça Sorulan Sorular

    Azure HorizonDB ile Azure Database for PostgreSQL Flexible Server arasındaki fark ne?

    Flexible Server aslında klasik bir managed Postgres — siz instance seçiyorsunuz, Microsoft işletim sistemi. Veritabanı yönetimini hallediyor. HorizonDB işe bambaşka bir şey; altta yeniden mimarı edilmiş, compute. Storage’ı birbirinden ayıran, daha hyperscale mantıklı bir servis. Yani Aurora’ya benzer bir şey düşünebilirsiniz. Bence küçük-orta ölçekli projelerde Flexible Server hâlâ en mantıklı tercih.

    pgvector yerine ayrı bir vector veritabanı kullansam mı?

    Bunu yaşayan biri olarak söyleyeyim, Açıkçası, yüz milyonlarca embedding’ınız yoksa ve uygulamanız zaten Postgres üzerinde çalışıyorsa pgvector ile başlayın. DiskANN index ile çoğu senaryoda gayet yeterli performans alıyorsunuz. Şimdi, ayrı bir vector DB ihtiyacı, hani gerçekten büyük ölçekte. Çok özel durumlarda ortaya çıkıyor — çoğu projede sadece gereksiz karmaşıklık yaratır.

    PostgreSQL 18’e geçeyim mi, yoksa bekleyeyim mi?

    İşin garibi, Üretim için biraz sabretmenizi öneririm. Tecrübeme göre en az birkaç minor sürüm beklemek mantıklı, mesela 18.2 ya da 18.3 gibi. Yeni majör sürümlerde erken dönem bug’ları hep çıkıyor. Geliştirme ve test ortamlarında işe hemen kurun; asenkron I/O ve yeni planner özelliklerini öğrenmeye başlayın, boşa gitmez.

    Peki neden?

    Azure’da PostgreSQL maliyetini düşürmenin en etkili yolu ne?

    Aslında üç şey var: doğru SKU seçimi (önce metrikleri 2-3 hafta gözlemleyin), reserved instance (1 veya 3 yıllık, workload oturduktan sonra alın), bir de auto-pause özelliği olan dev/test ortamları (evet, doğru duydunuz). Bir de şu var — bir düşüneyim… backup retention’ı gerçekten ihtiyacınız olan süreye çekin. Hani 7 günü 35 güne çıkarmak ciddi bir maliyet farkı yaratıyor, çoğu zaman farkında bile olunmuyor.

    Oracle’dan PostgreSQL’e geçmek ne kadar zor?

    Tuhaf ama, Bu büyük ölçüde uygulamanıza bağlı (bizzat test ettim). PL/SQL stored procedure’lerinin yoğun olduğu sistemlerde geçiş 6-12 ay sürebiliyor (buna dikkat edin). Basit CRUD uygulamalarında işe Azure Database Migration Service ile birkaç hafta içinde halledilebiliyor. Ora2Pg gibi araçlar ön analiz için gerçekten çok işe yarıyor — geçişe başlamadan önce mutlaka bir şema uyumluluk raporu çıkarın, bence bu adımı atlamak en büyük hata.

    Kaynaklar ve İleri Okuma

    Neyse, bunu yaşayan biri olarak söyleyeyim, From commit to cloud: Powering what’s next for PostgreSQL (Microsoft Azure Blog)

    Azure Database for PostgreSQL Resmî Dokümantasyonu

    PostgreSQL 18 Release Notes (postgresql.org)

    pgvector GitHub Repository

Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.

← Onceki Yazi
SPFx 1.23 GA Çıktı: SharePoint Geliştiriciye Mayıs Notları
Sonraki Yazi →
CodeQL 2.25.5 Çıktı: GitHub Actions Taramaları Keskinleşti

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İçindekiler
← SPFx 1.23 GA Çıktı: SharePoint...
CodeQL 2.25.5 Çıktı: GitHub Ac... →