PostgreSQL Nedir?

PostgreSQL, oldukça popüler, ücretsiz ve açık kaynak kodlu ve ANSI SQL standardı ile uyumlu bir nesne ilişkisel veritabanı yönetim sistemidir. İngilizce tanımıyla object relational database management system olarak da ifade edilebilir. PostgreSQL nedir sorusu tarihi açıdan bakıldığından oldukça karmaşık gelebilir. Sistemin evrimine baktığınızda bunu kolay bir şekilde görebiliyorsunuz.

Sistemin geliştirilme aşaması 1977 yılında Berkley Üniversitesi’nin Ingress adı verilen ilişkisel veritabanının geliştirme aşamalarıyla başlamıştır. 1986 yılında Michael Stonebraker ve arkadaşları sistemi ilk olarak Postgres adıyla ortaya çıkarmıştır. 1994’e kadar üstünde çalışılan sistem, 1995’te Jolly Chen ve Andrew Yu tarafından SQL sorgu dili geliştirilmesiyle Postgre95 adını aldı. 1996 yılına gelindiğinde sisteme kod geliştirilmesi için gönüllü kişiler alınmaya başlandı. Gönüllü geliştiricilerin çalışması ile eklenen birçok özellik sonucunda ilk açık kaynaklı versiyonu 1997 yılında piyasaya sunuldu ve adı da bugün bildiğimiz PostgreSQL olarak değiştirildi.

Patroni Nedir?

PostgreSQL native olarak primary-standby konfigürasyonunu desteklemektedir. Bu konfigürasyona ek olarak otomatik failover, switchover, failback gibi özellikleri kullanmak için farklı open-source tool'lar ile PostgreSQL'i desteklemek gerekir. Bu konfigürasyonlardan en popüleri Patroni, ETCD ve HAProxy'dir.

Yanda mimari yapısı görüleceği gibi PostgreSQL sunucuları üzerine Patroni kurulumu yapılarak ETCD ile haberleşmesi sağlanır. Bu sayede PostgreSQL'iniz otomatik failover, failback, switchover gibi özellikler kazanmış olur. Gerçek anlamda bir HA (High Availability) özelliklerine sahip bu konfigürasyonda SPOF (Single point of failover)'ın önüne geçebilmek için uygulama ile PostgreSQL arasına HAProxy veya benzeri bir load balancer yedekli olarak konfigüre edilerek sorun anında PostgreSQL'e erişimin kesilmemesi için tüm önlemler alınmış olur.