Yüksek Erişilebilirlik
- İngilizcesi
- High Availability
- Türkçe karşılığı
- yüksek kullanılabilirlik
- Okunuşu
- hay ıveylıbılıti
Günlük kullanımda iki ad da yaygın.
Kısaca
Yüksek erişilebilirlik, bir sistemin, çoğunlukla yedeklilikle tek hata noktalarını ortadan kaldırarak neredeyse her zaman çalışır durumda kalabilmesidir.
Yüksek erişilebilirlik (high availability) nedir?
Çoğunlukla HA diye kısaltılan yüksek erişilebilirlik, neredeyse her zaman ayakta ve ulaşılabilir kalmak üzere tasarlanmış bir sistemi anlatır. Erişilebilirlik, bir servisin çalıştığı sürenin yüzdesi olarak ölçülür ve çoğunlukla dokuz sayısıyla ifade edilir: %99,9 (üç dokuz) yılda yaklaşık 8,8 saat kesintiye, %99,99 yaklaşık 53 dakikaya, %99,999 (beş dokuz) ise yalnızca yaklaşık 5 dakikaya izin verir. Her ek dokuzu sağlamak çok daha zor ve pahalıdır.
Temel teknik, tek hata noktalarını, yani arızası tüm sistemi çökerten her bileşeni ortadan kaldırmaktır. Bu, bir yük dengeleyicinin arkasında birkaç örnek çalıştırmak, veritabanlarını çoğaltmak, sunucuları erişilebilirlik bölgelerine (availability zone) ya da bölgelere yaymak ve arızalı parçaları tespit edip trafiği otomatik olarak uzaklaştırmak için sağlık kontrolleri (health check) kullanmak anlamına gelir; bu sürece failover denir. Active-active kurulumda tüm kopyalar aynı anda trafik karşılar, active-passive kurulumda ise yalnızca birincil arızalandığında bir yedek devralır; rolling, blue-green ve canary dağıtımları gibi sürüm teknikleri de güncellemeler sırasında servisi ayakta tutar.
Hastane yararlı bir benzetmedir: yedek jeneratörleri, birden çok elektrik hattı ve nöbetçi personeli vardır, böylece bir şey bozulduğunda bile bakım sürer. Çevrimiçi mağazalar, bankalar, ödeme sistemleri ve iletişim servislerinin hepsi yüksek erişilebilirliği hedefler, çünkü kesintinin her dakikası para ve güven kaybettirir; hedefleri genellikle SLO olarak yazılır ve müşterilere hizmet seviyesi sözleşmelerinde (SLA) taahhüt edilir.
Yüksek erişilebilirlik sıklıkla hata toleransı (fault tolerance) ile karıştırılır. Yüksek erişilebilir bir sistemde trafik yedeğe geçerken birkaç saniyelik hata gibi kısa bir kesinti olabilir; hata toleranslı bir sistem ise hiçbir görünür kesinti olmadan çalışmaya devam eder. HA ayrıca daha fazla yükü karşılamayla ilgili olan ölçeklenebilirlikten ve tüm bir bölgenin kaybı gibi büyük bir olaydan sonra servis ve veriyi geri getirmekle ilgili olan felaket kurtarmadan (disaster recovery) da farklıdır.
Önemli noktalar
- Yüksek erişilebilirlik, bir sistemin çok yüksek bir zaman yüzdesinde çalışır kalması demektir.
- Erişilebilirlik çoğunlukla %99,9 ya da %99,99 gibi dokuzlarla ifade edilir.
- Yedeklilik, yük dengeleme, çoğaltma, sağlık kontrolleri ve failover tek hata noktalarını ortadan kaldırır.
- Her ek dokuz, elde etmek için çok daha pahalıya mal olur.
- HA, failover sırasında kısa kesintilere izin verir; hata toleransı hiç kesinti hedefler.
Örnek
# Allowed downtime per year for common availability targets
for target in [99.9, 99.99, 99.999]:
minutes = (1 - target / 100) * 365 * 24 * 60
print(f"{target}% -> {minutes:.0f} minutes per year")
# 99.9% -> 526, 99.99% -> 53, 99.999% -> 5
# Two services in series: a request fails if either one is down
print(0.999 * 0.999) # 0.998001, about 99.8%
# Two redundant copies in parallel: down only if both fail at once
# (assuming their failures are independent)
print(1 - (1 - 0.999) ** 2) # 0.999999, about 99.9999%Sık sorulan sorular
Beş dokuz ne anlama gelir?
Beş dokuz, yılda yalnızca yaklaşık 5 dakikalık kesintiye izin veren %99,999 erişilebilirlik demektir. Çok zorlu bir hedeftir ve genellikle telekom ağları ve ödeme altyapısı gibi kritik sistemlere ayrılır.
Yüksek erişilebilirlik ile hata toleransı arasındaki fark nedir?
Yüksek erişilebilirlik kesintiyi en aza indirir ama bir yedek devralırken kısa bir kesintiyi kabul eder. Hata toleransı ise genellikle paralel çalışan tamamen yedekli bileşenlerle, hiç kesinti olmamasını hedefler ve daha pahalıdır.
Tek hata noktası (single point of failure) nedir?
Tek hata noktası, tek bir veritabanı sunucusu, tek bir ağ bağlantısı ya da tek erişim anahtarına sahip tek bir kişi gibi, arızası tüm sistemi çökerten her bileşendir. Yüksek erişilebilirlik tasarımı bu bileşenleri bulur ve çoğaltır.
İlgili sayfalar
- Hata ToleransıYazılım Mimarisi, s. 17Hata toleransı, bir sistemin bazı donanım ya da yazılım bileşenleri arızalandığında, belki azalmış kapasiteyle de olsa doğru çalışmayı sürdürebilmesidir.
- Yük DengeleyiciDevOps ve Bulut, s. 54Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.
- Veritabanı ReplikasyonuVeritabanları, s. 41Veritabanı replikasyonu, verinin bir sunucudan diğerlerine sürekli kopyalanmasıdır; böylece birkaç sunucu güvenilirlik ve ölçek için aynı veriyi tutar.
- SLODevOps ve Bulut, s. 50SLO, bir hizmetin ölçülebilir güvenilirlik hedefidir (örneğin 30 günde isteklerin %99,9'unun başarılı olması) ve yeterince güvenilirin ne olduğunu belirler.
- Health CheckBackend ve API'ler, s. 20Health check, bir servisin çalışır durumda olup olmadığını ve isteklere yanıt verebildiğini bildiren, genelde bir HTTP endpoint'i olan küçük otomatik testtir.
- ÖlçeklenebilirlikYazılım Mimarisi, s. 30Ölçeklenebilirlik, bir sistemin daha fazla kullanıcı ya da veri gibi artan iş yükünü, kaynak ekleyerek performansı düşmeden karşılayabilme yeteneğidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin