- Compiler Explorer başlangıçta tüm durumu doğrudan URL içinde saklama yaklaşımını kullanıyordu
- URL’ler fazla uzayınca Google’ın goo.gl kısa URL hizmeti devreye alındı ve bu yapı birden fazla yönlendirme içeren karmaşık bir akışa yol açtı
- 2018’den itibaren URL uzunluğu sınırı ve bakım zorluğu nedeniyle şirket içi S3 ve DynamoDB tabanlı depolama yapısına geçildi
- Ancak Google’ın goo.gl hizmetini 2025 Ağustos’ta sonlandıracak olması, eski kısa bağlantıların kalıcılığını artık kendilerinin yönetmesini gerektiriyor
- Şu ana kadar 12.000’den fazla eski bağlantı kurtarıldı; bu da programlama bilgisinin korunması ve sürdürülebilir hizmet işletimi açısından önem taşıyor
Compiler Explorer bağlantılarının kalıcılık garantisi ve geçmişi
İlk tasarım yaklaşımı ve goo.gl kullanımının arka planı
- 2012’de Compiler Explorer, tüm derleyici durumunu doğrudan URL içine kodlayan bir yapı benimsedi
- Durum bilgisi arttıkça URL’nin aşırı uzaması sorunu ortaya çıktı
- URL’leri kısaltmak için 2014’te Google’ın goo.gl kısaltma hizmeti kullanılmaya başlandı
goo.gl/abc123 biçiminde kısa bağlantılar sunuluyor, tıklandığında asıl uzun URL’ye yönlendirilip durum geri yükleniyordu
- Stack Overflow’nun kısa bağlantı kullanımını yasaklamasıyla (2016) mevcut yaklaşım kısıtlanmaya başladı
- Kötü amaçlı bağlantıları gizleme riski nedeniyle goo.gl tabanlı tüm bağlantılar etkilendi
- Kullanıcı verisini depolamak istemedikleri için geçici çözüm olarak
godbolt.org/g/abc123 biçiminde kendi yollarını oluşturdular
godbolt.org/g/abc123 adresine gidildiğinde yeniden goo.gl/abc123 adresine yönlendiriliyordu
- Bu sürecin sonunda tekrar uzun
godbolt.org URL’sine dönülüyordu
- Birden fazla yönlendirme oluşması yapıyı karmaşık hale getirdi
- Daha sonra Google API’sinin kullanılmasıyla yönlendirme süreci kısmen sadeleştirildi
Kendi depolama altyapısına geçiş ve bağlantı yönetimi
- 2018’den itibaren URL uzunluğu sınırı ve veri sıkıştırmanın zorluğu sık sık sorun olmaya başladı
- S3 ve DynamoDB kullanan kendi depolama yapısı hayata geçirildi
- Girdi değerleri hash’lenerek JSON belge biçiminde S3’e kaydedildi
- Kısa bağlantıya (
godbolt.org/z/hashbit) gidildiğinde eşleme DynamoDB üzerinden sorgulanıyordu
- Hash değerinde küfür veya uygunsuz kelimeler yer alırsa rastgele öğe ekleyerek bunu aşan bir kontrol mekanizması kuruldu
- Hash tabanlı bağlantılardaki uygunsuzluk sorunu böyle çözüldü ve bu süreçte ilgili hatalar yaşandı (ör. issue #1297)
- Bugün hâlâ
godbolt.org/g/abc123 adres biçimi destekleniyor
- Google’ın resmî duyurusuna rağmen goo.gl hizmeti salt okunur moda geçti ve 2025 Ağustos’ta tamamen kapanacak
- goo.gl tabanlı kısa bağlantılar artık çözümlenemeyecek
godbolt.org/g/abc123 biçimi doğrudan yönetimle ömrü uzatılabilecek olduğundan, bu bağlantı yapısı için sistematik bir kurtarma çalışması yürütülüyor
Eski bağlantıların toplu toplanması ve arşivleme çalışması
- Son dönemde mümkün olan tüm kaynaklardan (arama, veri dökümleri, web günlükleri vb.) eski bağlantılar taranıp veritabanına alındı
- Google Web Search API
- GitHub API
- Kendi sunucu günlükleri
- archive.org üzerindeki Stack Overflow veri dökümleri
- Archive.org’da saklanan web sayfası verileri
- Yaklaşık 12.298 kısa bağlantı başarıyla kurtarıldı
- İçeride goo.gl yerine kendi bağlantı veritabanı kullanılmaya başlandı (ilgili PR: #7724)
- Bundan sonra da henüz bulunmamış
godbolt.org/g/abc123 bağlantıları toplanmaya ve güvence altına alınmaya devam edecek
- Toplulukta hâlâ kayda geçmemiş bağlantılar varsa, bunlara doğrudan erişilmesi veya yöneticilere bildirilerek veritabanının tamamlanmasının istenmesi öneriliyor
Proje felsefesi ve altyapı sahipliğinin önemi
- Bu örnek, kritik altyapıyı dış hizmetlerin (ör. Google) sürekliliğine bırakmanın riskini açıkça gösterdi
- Kısa bağlantı yönetimi ve yedekleme yapısı geçici çözümlerdi; gerçekten kalıcı URL sözü verebilmek için tüm hizmetin doğrudan yönetilmesi gerekiyor
- Eski bağlantıları dijital arkeoloji gibi kurtarma sürecinde, her bağlantının birinin bilgi paylaşımının, sorusunun veya bir kavramı açıklama çabasının izi olduğu fark edildi
- Bu saklama ve koruma çalışması, programlama topluluğunun tarihini arşivlemekle de doğrudan bağlantılı
- Eski bir Compiler Explorer bağlantısı bulursanız, şimdi bile bir kez tıklamanız internet bilgisinin korunmasına katkı sağlayabilir
- Bu kez, üçüncü taraflara değil doğrudan kontrol edilen altyapıya dayanarak kalıcılık vaadini yerine getirebilir hale geldiler
Disclaimer
- Bu yazı bir insan tarafından yazılmıştır; bağlantı önerileri ve dilbilgisi denetimi sürecinde LLM’den yararlanılmıştır
1 yorum
Hacker News yorumu