« Tüm yayınlar

GitHub Enterprise Server'da arama mimarisi Elasticsearch CCR ile yenilendi

GitHub, Enterprise Server'ın HA kurulumlarında arama indekslerini bozulmaya karşı korumak için Elasticsearch'ün Cross Cluster Replication özelliğine geçti.

GitHub, Enterprise Server'ın yüksek erişilebilirlik (HA) kurulumlarında yıllardır süregelen bir arama altyapısı sorununu çözdü. Önceki mimaride, birincil ve yedek sunucular Elasticsearch üzerinde tek bir küme olarak birleştiriliyordu; bu da bakım sırasında yedek düğüm devre dışı kaldığında sistemin kilitlenme riskini doğuruyordu çünkü Elasticsearch, düğüm yeniden katılana kadar sağlıklı duruma geçemiyordu. GitHub mühendisleri yıllarca sağlık kontrolleri, drift düzeltmeleri ve ayna (mirroring) sistemleri deneyerek bu sorunu hafifletmeye çalıştı, ancak veritabanı replikasyonunun doğası gereği kalıcı bir tutarlılık sağlanamadı.

Çözüm, Elasticsearch'ün Cross Cluster Replication (CCR) özelliğine geçiş oldu. Bu yaklaşımda her Enterprise Server düğümü artık bağımsız, tek düğümlü bir Elasticsearch kümesi olarak çalışıyor ve veriler yalnızca Lucene segmentlerine kalıcı olarak yazıldıktan sonra kopyalanıyor. Böylece kritik veriler asla salt-okunur düğümlerde sıkışıp kalmıyor. Mevcut indeksleri yeni modele geçirmek için GitHub, otomatik takip politikası devreye girmeden önce eski indeksleri manuel olarak izleyiciye bağlayan bir bootstrap adımı geliştirdi; ayrıca failover, indeks silme ve yükseltme süreçleri için özel iş akışları yazıldı.

Yeni HA modu, 3.19.1 sürümüyle birlikte isteğe bağlı olarak sunuluyor ve etkinleştirmek isteyen yöneticilerin GitHub destek ekibiyle iletişime geçip lisans alması, ardından `ghe-config app.elasticsearch.ccr true` ayarını yapması gerekiyor. GitHub, önümüzdeki iki yıl içinde bu mimariyi varsayılan hale getirmeyi planlıyor; bu süre zarfında geri bildirim toplamayı hedefliyor. Mühendisler için asıl önem, artık HA kurulumlarında arama indekslerinin bozulma veya kilitlenme riskinin ortadan kalkmasıyla bakım ve yükseltme süreçlerinin çok daha güvenli hale gelmesi.