Yükseltme politikası
Stabilite bir ürün prensibidir, sonradan akla gelen bir şey değildir. AiHummer bunu takip eder SemVer, geçerlidir ileri güvenli veritabanı geçişlerini otomatik olarak, ve yapabilir kendi güncelleme bir CDN’den — böylece yükseltmeler rutin olur, riskli değil.
Sürümleme (SemVer)
Sürümler Semantik Versiyonlamayı takip eder. Sürüm şunlar tarafından bildirilir /healthz ve tarafından aihummer version, böylece bir yükseltmeden önce ve sonra tam olarak neyin çalıştığını her zaman teyit edebilirsiniz.
Göçler ileriye dönük güvenli ve otomatiktir
Başlatıldığında ağ geçidi bekleyen veritabanı geçişlerini otomatik olarak uygular. Bunu güvenli tutan iki özellik vardır:
- İleri güvenli. Göçler, daha yeni bir ikili dosyanın karşı çalışması için yazılır otomatik uygulamayı ve kademeli yükseltmeleri güvenli kılan şey olan, geçiş yaptığı şema.
- Danışma kilidi üzerinden tek başvuran. Göçler şu şekilde çalışır PostgreSQL danışma kilidi, bu yüzden birkaç ağ geçidi aynı anda başladığında sadece biri onları uygular ve geri kalan bekler — asla çift göç olmaz.
[!NOTE] Göçler her zaman sahip veritabanı havuzunda çalıştırılır. Sınırlı RLS rolü (
AIHUMMER_DB_APP_URL) trafik hizmeti vermek içindir, şema değişiklikleri için değil.
Güncelleme
Yeni sürümler üreticinin sürüm CDN’sinden çekilir. Desteklenen yol, sunucuda tek bir komuttur:
aihummer update --check # only report whether a newer version exists
aihummer update # download and apply it
--check hiçbir şey yazmaz, bu yüzden root gerektirmez. Güncellemeyi
uygulamak ise kurulum kökünü yeniden yazar ve hizmeti yeniden başlatır; bu
nedenle sudo ile çalıştırılır.
Beklenen sonuç: --check mevcut ve erişilebilir sürümü yazdırır, hiçbir şeyi
değiştirmeden çıkar. aihummer update yapı dosyasını indirir, sha256 sağlama
toplamını ve cosign imzasını doğrular, ikili dosyayı değiştirir ve hizmeti
yeniden başlatır; ardından aihummer version yeni sürümü gösterir. Doğrulama
tutmazsa güncelleme, dosya değiştirilmeden önce durdurulur: çalışan sürüme
dokunulmaz.
[!NOTE] Otomatik güncellemeyi siz değil, üretici açar. Otomatik güncellemenin kipi ve zamanlaması sürüm bakımının parçasıdır ve üreticinin imzalı yönergesiyle belirlenir. Bunun için ne web arayüzünde ne de
aihummer settingsiçinde bir düğme vardır;gateway.envdosyasına yazılan otomatik güncelleme değişkenlerini ağ geçidi okumaz — orada görüyorsanız hiçbir etkileri yoktur. Kendi takviminize göre güncellemek için yukarıdakiaihummer updatekomutunu kullanın.
Geri alma
Nelerin geri alınabildiği, madde madde:
- İkili dosya — önceki sürüme döndürülebilir (önceki sürümlerin yapı dosyaları CDN üzerinde durur; istediğiniz sürümü yeniden kurun).
- Veritabanı şeması — göçler ileri güvenlidir, bu yüzden önceki ikili dosya daha yeni şemayla çalışır; şema için ayrı bir geri alma gerekmez.
- Eklentiler — sürümler kurulum başına yönetilir; gerekirse bir eklentiyi katalogdan geri alın.
- Yapılandırma — güncelleme sırasında değişmez; gerekirse yedekten geri yüklenir.
Sıfır kesinti ile dağıtımlar
AiHummer, kesinti olmadan yükseltilecek şekilde tasarlanmıştır:
- Bir proxy arkasında 2+ ağ geçidi çalıştırın. Onları birer birer yuvarlayın; hazır olma probu
(
/readyz) bir düğüm hizmet vermeye başlayana kadar döngü dışı tutar. - Zamanlayıcı tek liderlidir. Arka plan zamanlaması tek bir lider seçer Bir PostgreSQL danışman kilidi aracılığıyla, bu nedenle birden fazla geçit çalıştırmak çoğaltmaz planlanmış iş.
- Teslimat tekil etkilidir. Güvenilir teslimat artı tekilleme anahtarları demek cevap, yeniden başlatma sırasında asla iki kez gönderilmez, bu da bir rolling yapan şeydir geçitlerinizde güvenli bir şekilde yeniden başlatın.
Sonra nereye?
- Yinelenen bir yeniden başlatmayı kontrol eden problar: systemd ve sağlık kontrolleri.
- Büyük bir yükseltmeden önce yedekleyin: Yedeklemeler ve felaket kurtarma.
- Yayını izle: Gözlemlenebilirlik.