Bölüm 1: Yönetici Özeti ve Mimari Önem
github-availability-report-septe sürümü, GitHub'ın devam eden altyapı güvenilirliği mühendisliğinde çok önemli bir değerlendirme noktasına işaret etmektedir. Ağustos ve Eylül aylarını kapsayan bu raporlama dönemi, temel bir kurumsal felsefenin altını çizmektedir: Erişilebilirlik, ham kapasiteden, o da özellik sunumundan önce gelir. Mevsimsel döngünün başlarındaki dikkat çekici olayların ardından mühendislik organizasyonu; veritabanı darboğazlarını gidermeye, arka plan işlemlerini optimize etmeye, savunmacı aşırı yük kontrolleri kurmaya ve çekirdek üretim iş yüklerini istikrarlı bir şekilde Azure'a taşımaya odaklanmıştır. Central US bölgesindeki tüm üretim hizmetleri için 30 Eylül dağıtım hedefinin kaçırılması gibi agresif iç hedeflere rağmen, platform hatırı sayılır bir mimari dayanıklılık elde etmiştir.
Özünde bu sürüm raporu, yüksek eşzamanlılık sistemlerindeki, özellikle MySQL veritabanı ölçeklendirmesindeki ve GitHub Actions çalışma alanındaki sistemik iyileştirmeleri öne çıkarmaktadır. Eski paylaşılan veritabanlarındaki baskıyı sistematik olarak azaltarak, çekme istekleri (pull requests) için daha akıllı hata yalıtımı paradigmaları uygulayarak ve çekirdek uygulama okuma trafiğinin %65'inden fazlasını ve akış işleme görevlerinin %80'ini yöneten Azure'ın bölgesel ayak izini genişleterek GitHub, tek hata noktalarını sistematik olarak mühendislikle ortadan kaldırmaktadır. Bununla birlikte, 13 Eylül veritabanı bağlantı doygunluğu olayı ve 28 Eylül Copilot kod inceleme kesintisi dahil olmak üzere gerçek dünyadaki olaylar, sürekli mimari sertleştirmenin hiper ölçekli geliştirici platformları için mutlak bir zorunluluk olmaya devam ettiğini göstermektedir.
Bölüm 2: Temel Geliştirmeler ve Geliştirici Ergonomisi
Hedeflenen veritabanı ve önbellekleme optimizasyonları sayesinde geliştirici ergonomisi ve sistem yanıt süresinde büyük artışlar görülmüştür. En önemlisi, mühendislik ekipleri GitHub'ın en eski paylaşılan veritabanından 24 kimlik doğrulama çekirdek tablosunu kaldırarak çoğaltmalarındaki (replicas) saniyede yaklaşık bir milyon sorguyu ortadan kaldırmıştır. Dahası, sorun ve çekme isteği veritabanı kümesi büyük bir veri sanitasyon çabasından geçirilerek yaklaşık 980 milyon gereksiz düzenleme geçmişi satırı temizlenmiş ve 1,8 terabayt kurtarılabilir depolama alanı geri kazanılmıştır. Bu sürekli temizleme süreçleri, sınırsız geçmiş veri büyümesini başarıyla dizginlemiş ve Haziran ayındaki zirveye kıyasla haftalık kilitlenmelerde (deadlocks) %77'lik bir düşüşe katkıda bulunmuştur.
GitHub Actions da hedeflenen altyapı önbelleklemesi yoluyla çok önemli çalışma alanı ayarlamaları almıştır. Üretim güncellemeleri, ölçülen Redis işlemlerini yaklaşık %28 ve göreceli CPU kullanımını yaklaşık %30 oranında düşürmüştür. Aynı zamanda, özel bir altyapı önbelleği Redis bant genişliği tüketimini %84 oranında azaltmış, ortalama yanıt sürelerini %66 kısaltmış, birincil envanter istekleri için medyan yanıt sürelerini etkileyici bir şekilde %96 oranında hızlandırmış ve kuyruğa alınan istekleri %95 oranında düşürmüştür. Dayanıklılık cephesinde, hata yalıtımı protokolleri artık paylaşılan bir bağımlılık başarısız olduğunda örneklenen çekme isteği trafiğinin yaklaşık yarısının sınırlı işlevselliği korumasına izin verirken, otomatik yönlendirme mantığı ani trafik artışları sırasında işçi gruplarını dinamik olarak ölçeklendirmektedir.
Bölüm 3: Mimari Karşılaştırma Matrisi
| Performans Metriği | Önceki Temel Çizgi | github-availability-report-septe | Mimari Etki |
|---|---|---|---|
| Çekirdek Uygulama Okuma Gecikmesi | Pik yük sırasında yüksek varyans | Azure yönlendirmesi ile kararlaştırıldı | Çekirdek okumaların %65,4'ü Azure altyapısında güvenilir bir şekilde işlendi |
| Veritabanı Bağlantı Yükü | Arka plan işleri nedeniyle doygunluğa eğilimli | Yük bilincli kısıtlama ile korundu | Arka plan görevleri sırasında birincil veritabanı bağlantı tükenmesini önler |
| GitHub Actions Kuyruk Derinliği | Yüksek eşzamanlılık altında yüksek kuyruklama | %95 oranında azaltıldı | Altyapı önbelleklemesi envanter isteklerini önemli ölçüde hızlandırır |
| Düzenleme Geçmişi Depolaması | Eski tabloların sınırsız büyümesi | 1,8 TB kurtarılabilir depolama alanı serbest bırakıldı | Kilitleme sıklığını %77 oranında azaltarak 980 milyon gereksiz satır temizlendi |
Bölüm 4: Uyumsuz Değişiklikler ve Geçiş Uyarıları
Bu sürüm, mevcut REST ve GraphQL uç noktalarıyla katı bir geriye dönük uyumluluk sağlayarak dış geliştiriciler için doğrudan uyumsuz API değişiklikleri sunmamaktadır. Bununla birlikte, iç geçişler ve yeni uygulanan platform yönetişim kuralları kritik operasyonel uyarılar getirmektedir. Azure Central US'e yapılan agresif bölgesel geçiş, düzensiz kullanılabilirlik alanı kapasitesi nedeniyle sert durdurmalarla karşılaşmış, geçici dağıtım duraklatmaları ve otomatik acil durum yük devretme (failover) betiklerinde yapısal değişiklikler gerektirmiştir. Özellikle, planlı devirler sırasında Central US veritabanı kopyalarının bağlantısını daha önce kesen otomatik işlemler, beklenmeyen müşteri etkisini önlemek üzere geçici olarak devre dışı bırakılmıştır.
Furthermore, yeni uygulanan üretim aşırı yükü kontrolleri, kritik geliştirici iş akışlarını korumak için yüksek doygunluk olayları sırasında önceliği daha düşük olan API ve web isteklerini aktif olarak düşürmektedir. Sınırsız yeniden deneme döngülerine güvenen veya üstel geri çekilmeden (exponential backoff) yoksun olan entegrasyonlar, sistem bozulma pencereleri sırasında doygun uç noktaları su altında bırakmaları durumunda hızlandırılmış bağlantı reddetmeleri yaşayabilir.
Bölüm 5: Adım Adım Yükseltme Kılavuzu
İç hizmetleri ve kendi barındırdığınız (self-hosted) yapılandırmaları GitHub'ın mevcut erişilebilirlik ve dayanıklılık standartlarıyla uyumlu hale getirmek için mühendislik ekipleri aşağıdaki operasyonel uygulamaları benimsemelidir:
Veritabanı Bağımlılıkları İçin Hızlı Başarısız Ol (Fail-Fast) Zaman Aşımı Uygulayın: Tüm aşağı akış hizmet işleyicilerinin, paylaşılan ilişkisel depoları sorgularken katı zaman aşımı sınırları uygulamasını sağlayarak geçici bozulma sırasında iş parçacığı havuzu açlığını önleyin.
import socket from sqlalchemy import create_engine # Veritabanı motorlarında katı bağlantı ve okuma zaman aşımı sınırları zorunlu kılın engine = create_engine( "mysql+pymysql://user:pass@localhost/db", connect_args={"connect_timeout": 3, "read_timeout": 5} )Devre Kesiciler ve İdempotent Yeniden Denemeler Dahil Edin: Birincil veritabanı doygunluğunu şiddetlendiren agresif yeniden deneme fırtınalarından kaçınmak için webhook ve token oluşturma entegrasyon katmanlarını güncelleyin.
Arka Plan İşleme Güvenlik Önlemlerini Ayarlayın: İç veri temizleme veya senkronizasyon işlerinin, yalnızca çoğaltma gecikmesini (replica lag) izlemek yerine birincil veritabanı bağlantı sağlığını ve sorgu yükünü açıkça izle
