Yüksek erişilebilirlik: bir sistemin arızaya rağmen hizmet vermeyi sürdürmesi
Sözlük

Yüksek erişilebilirlik: bir sistemin arızaya rağmen hizmet vermeyi sürdürmesi

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 4 dk okuma

Yüksek erişilebilirlik nedir, sistemler kesintisiz hizmeti yedeklilik ve failover ile nasıl sağlar? Temel bileşenler, örnek mimari ve yakın kavramlar.

Yüksek erişilebilirlik nedir?

Yüksek erişilebilirlik (İngilizce high availability, kısaca HA), bir sistemin içindeki bileşenlerden biri arızalansa bile hizmetin kullanıcıya kesintisiz ya da çok kısa kesintiyle sunulmaya devam etmesini sağlayan tasarım yaklaşımıdır. Amaç arızayı hiç yaşamamak değildir; arıza kaçınılmaz olduğu için sistemin onu tolere edecek biçimde kurulmasıdır.

Erişilebilirlik, sistemin istenen anda çalışır durumda olma oranıdır ve genellikle bir yüzdeyle ifade edilen hedefe bağlanır. Bu hedef iş gereksinimine göre belirlenir: bir iç raporlama aracı ile ödeme altyapısı aynı hedefe ihtiyaç duymaz.

Nasıl sağlanır?

Yüksek erişilebilirliğin temelinde tek hata noktasını ortadan kaldırmak yatar. Bir bileşenin çökmesi tüm hizmeti durduruyorsa, o bileşen tek hata noktasıdır. Bunu azaltan başlıca yöntemler şunlardır:

  • Yedeklilik: Kritik bileşenin (uygulama sunucusu, veritabanı, ağ bağlantısı) birden fazla kopyasını çalıştırmak.
  • Yük dengeleme: Gelen trafiği sağlıklı örneklere dağıtmak, arızalı olanı devreden çıkarmak.
  • Sağlık kontrolleri: Bileşenin çalışıp çalışmadığını düzenli yoklamak.
  • Failover: Birincil bileşen arızalandığında yedeğe otomatik geçiş yapmak.
  • Veri replikasyonu: Verinin ayrı makinelerde ya da bölgelerde eşzamanlı tutulması.

Bu yöntemler tek başına değil birlikte çalışır. Yedek var ama sağlık kontrolü yoksa arıza fark edilmez; kontrol var ama geçiş otomatik değilse kesinti uzar.

Aktif-aktif ve aktif-pasif düzen

Aktif-pasif düzende bir örnek trafiği karşılarken diğeri beklemede durur. Birincil örnek arızalanınca bekleyen devreye girer. Kurulumu basittir, ancak yedek kaynak çoğu zaman boşta kalır ve geçiş anında kısa bir kesinti oluşabilir.

Aktif-aktif düzende tüm örnekler aynı anda trafik alır. Bir örnek düştüğünde diğerleri yükü devralır; kapasite daha verimli kullanılır ve geçiş neredeyse fark edilmez. Bunun bedeli, örnekler arasında veri tutarlılığını korumanın ve bir örneğin çökmesi halinde kalanların fazla yüklenmemesini planlamanın daha karmaşık olmasıdır.

Küçük bir örnek

Örneğin bir e-ticaret sitesini ele alalım. Önünde bir yük dengeleyici, arkasında birkaç uygulama sunucusu bulunur. Bir sunucu çöktüğünde sağlık kontrolü bunu yakalar ve dengeleyici o sunucuya trafik göndermeyi bırakır; müşteri fark etmeden alışverişini sürdürür.

Veritabanı tarafında bir birincil ve bir veya birden fazla yedek kopya vardır. Birincil düğüm yanıt vermeyi kesince bir yönetim mekanizması yedeklerden birini birincil ilan eder, uygulamalar yeni adrese bağlanır. Bu geçişin ne kadar sürdüğü ve geçiş sırasında yazılan verinin kaybolup kaybolmadığı, tasarımın en kritik ayrıntılarıdır.

Yakın kavramlarla farkı

Yüksek erişilebilirlik, felaket kurtarma ile aynı şey değildir. HA, tek bir veri merkezi ya da bölge içindeki sıradan arızaları (sunucu, disk, ağ kartı) otomatik atlatmaya odaklanır. Felaket kurtarma ise tüm bölgenin kaybı gibi büyük olaylardan sonra hizmeti başka bir yerde yeniden ayağa kaldırmayı planlar ve çoğu zaman bir miktar kesinti ve veri kaybını kabul eder.

Ölçeklenebilirlik ise ayrı bir hedeftir: artan yükü karşılayabilmek. Bu hedefler sıklıkla aynı mimari parçalarla (yük dengeleme, çoklu örnek) sağlandığı için karıştırılır. Hata toleransı ise daha sıkı bir kavramdır; arıza anında hiçbir kesinti ya da bozulma yaşanmamasını hedefler. Dayanıklılık desenleri (yeniden deneme, devre kesici, zarif bozulma) uygulama katmanında HA'yı destekler.

Erişilebilirlik hedefi nasıl belirlenir ve sınanır?

Hedef, iş etkisiyle birlikte konuşulmalıdır: sistem kapalıyken ne kaybediliyor, hangi saatler kritik, hangi işlevler gecikmeyi tolere eder? Her bileşene aynı yüksek hedefi koymak maliyeti gereksiz yükseltir. Kritik yolları belirleyip yalnız oralarda yedeklilik kurmak daha akılcıdır.

Tasarım ancak denenirse güvenilirdir. Bir sunucuyu bilerek kapatmak, ağ bağlantısını kesmek ya da veritabanı geçişini tatbikatla sınamak, kâğıt üzerindeki planın gerçekten çalışıp çalışmadığını gösterir. İzleme ve olay yönetimi süreçleri de hedefin bir parçasıdır, çünkü fark edilmeyen arıza yedekliliğin değerini yok eder.

Mindset programlarında nerede karşınıza çıkar?

Yüksek Erişilebilirlik ve Hata Toleransı Tasarımı eğitiminde erişilebilirlik hedefleri ve hata alanları, yedeklilik topolojileri, sağlık kontrolleri ve failover, veri katmanında dayanıklılık ile tatbikat ve olay yönetimi modülleri bulunur. Yüksek Erişilebilirlik ve Ölçeklenebilirlik Desenleri ile HAProxy ile Yüksek Erişilebilirlik Mimarileri eğitimleri konuyu desen ve araç düzeyinde ele alır.

İlgili Mindset programı

Yüksek Erişilebilirlik ve Hata Toleransı Tasarımı

Sık sorulanlar

Sık sorulan sorular

Yüksek erişilebilirlik ile yedekleme aynı şey mi?

Hayır. Yedekleme, verinin bir kopyasını sonradan geri yüklemek için saklar; geri yükleme sırasında hizmet kapalıdır. Yüksek erişilebilirlik ise arıza anında hizmetin sürmesini hedefler. Yedekleme ve HA birbirini tamamlar: HA kesintiyi azaltır, yedekleme ise veri bozulması ve yanlışlıkla silinme gibi durumlara karşı koruma sağlar.

Her sistem yüksek erişilebilir olmalı mı?

Hayır. Yedeklilik maliyet ve işletme karmaşıklığı getirir. Kısa süreli kapanışın düşük etki yarattığı iç araçlar için basit bir çözüm yeterli olabilir. Karar, kesintinin iş ve müşteri üzerindeki etkisine göre verilir; ödeme, rezervasyon ya da üretim gibi kritik sistemlerde yatırım çok daha yerindedir.

Failover nedir?

Failover, birincil bileşen arızalandığında görevin yedek bileşene aktarılmasıdır. Otomatik olabilir ya da bir operatörün onayını bekleyebilir. Önemli olan geçişin ne kadar sürdüğü, geçiş sırasında veri kaybı yaşanıp yaşanmadığı ve eski birincil bileşen geri geldiğinde birden fazla bileşenin kendini birincil sanması sorunu çıkmamasıdır.

Bulut kullanmak sistemi otomatik olarak yüksek erişilebilir yapar mı?

Hayır. Bulut sağlayıcıları yedekli altyapı bileşenleri sunar, ancak uygulamanın bu bileşenleri doğru kullanacak biçimde tasarlanması gerekir. Tek bir sunucuda çalışan bir uygulama bulutta da tek hata noktası olarak kalır. Sorumluluk paylaşımı, hizmet sözleşmesinde ve sağlayıcının dokümantasyonunda ayrıca incelenmelidir.

Yüksek Erişilebilirlik (High Availability) Nedir?