Azure AI Search'te güvenilirlik

Azure genelinde güvenilirlik, hizmet kesintisi veya düşüş olduğunda dayanıklılık ve kullanılabilirlik anlamına gelir. Azure AI Search'te güvenilirlik, tek bir hizmet içinde veya ayrı bölgelerdeki birden çok arama hizmeti aracılığıyla elde edilebilir.

  • Tek bir arama hizmeti dağıtın ve yüksek kullanılabilirlik için ölçeği büyütün. Daha yüksek dizin oluşturma ve sorgu iş yüklerini işlemek için birden çok çoğaltma ekleyebilirsiniz. Arama hizmetiniz kullanılabilirlik alanlarını destekliyorsa, çoğaltmalar ek dayanıklılık için farklı fiziksel veri merkezlerinde otomatik olarak sağlanır.

  • Farklı coğrafi bölgelere birden çok arama hizmeti dağıtın. Tüm arama iş yükleri tamamen tek bir coğrafi bölgede çalışan tek bir hizmetin içinde yer alır, ancak çok hizmetli bir senaryoda, içeriğin tüm hizmetlerde aynı olması için eşitleme seçenekleriniz vardır. Ayrıca, istekleri yeniden dağıtmak için bir yük dengeleme çözümü ayarlayabilir veya hizmet kesintisi olduğunda yük devretme gerçekleştirebilirsiniz.

bölgesel düzeyde iş sürekliliği ve olağanüstü durumlardan kurtarma için, aynı yapılandırmaya ve içeriğe sahip birden çok arama hizmeti içeren bölgeler arası bir topolojiyi planlayın. Özel betiğiniz veya kodunuz, aniden kullanılamaz duruma gelirse alternatif bir arama hizmetine "yük devretme" mekanizması sağlar.

Yüksek kullanılabilirlik

Azure AI Search'te çoğaltmalar dizininizin kopyalarıdır. Arama hizmeti en az bir çoğaltmayla çalışır ve en fazla 12 çoğaltmaya sahip olabilir. Çoğaltma ekleme , Azure AI Search'in bir çoğaltmada makine yeniden başlatmaları ve bakım gerçekleştirmesine olanak tanırken, sorgu yürütme diğer çoğaltmalarda devam eder.

Tek tek her arama hizmeti için Microsoft bu ölçütlere uyan yapılandırmalarda en az %99,9 kullanılabilirlik garantisi verir:

  • Salt okunur iş yüklerinin (sorgular) yüksek kullanılabilirliği için iki çoğaltma

  • Okuma-yazma iş yüklerinin (sorgular ve dizin oluşturma) yüksek kullanılabilirliği için üç veya daha fazla çoğaltma

Sistem, çoğaltma durumunu ve bölüm bütünlüğünü izlemek için iç mekanizmalara sahiptir. Çoğaltmaların ve bölümlerin belirli bir bileşimini sağlarsanız, sistem hizmetiniz için bu kapasite düzeyini güvence altına alır.

Ücretsiz katmanı için SLA sağlanmamıştır. Daha fazla bilgi için bkz . Azure AI Search için SLA.

Kullanılabilirlik alanı desteği

Kullanılabilirlik alanları , aynı bölgede yüksek kullanılabilirlik sağlamak için bölgenin veri merkezlerini ayrı fiziksel konum gruplarına ayıran bir Azure platformu özelliğidir. Azure AI Search'te tek tek çoğaltmalar, bölge atama birimleridir. Arama hizmeti tek bir bölgede çalışır; çoğaltmaları, bu bölgedeki farklı fiziksel veri merkezlerinde (veya bölgelerinde) çalışır.

Kullanılabilirlik alanları, arama hizmetinize iki veya daha fazla çoğaltma eklediğinizde kullanılır. Her çoğaltma, bölge içinde farklı bir kullanılabilirlik alanına yerleştirilir. Arama hizmeti bölgesindeki kullanılabilir bölgelerden daha fazla çoğaltmanız varsa, çoğaltmalar bölgeler arasında mümkün olduğunca eşit bir şekilde dağıtılır. Kullanılabilirlik alanları sağlayan bir bölgede arama hizmeti oluşturmak ve ardından hizmeti birden çok çoğaltma kullanacak şekilde yapılandırmak dışında, sizin için belirli bir eylem yoktur.

Önkoşullar

  • Hizmet katmanı Standart veya daha yüksek olmalıdır.
  • Hizmet bölgesi kullanılabilir bölgeleri olan bir bölgede olmalıdır (aşağıdaki bölümde listelenmiştir).
  • Yapılandırma birden çok çoğaltma içermelidir: ikisi salt okunur sorgu iş yükleri için, üçü dizin oluşturma içeren okuma-yazma iş yükleri için.

Desteklenen bölgeler

Kullanılabilirlik alanları desteği altyapıya ve depolamaya bağlıdır. Şu anda Ekim 2023'te duyurulan iki bölgede depolama alanı yetersizdir ve Azure AI Search için kullanılabilirlik alanı sağlanmamaktadır:

  • Orta İsrail
  • Kuzey İtalya

Aksi takdirde, Azure AI Search için kullanılabilirlik alanları aşağıdaki bölgelerde desteklenir:

Bölge Dağıtım
Doğu Avustralya 30 Ocak 2021 veya üzeri
Güney Brezilya 2 Mayıs 2021 veya üzeri
Orta Kanada 30 Ocak 2021 veya üzeri
Orta Hindistan 20 Ocak 2022 veya üzeri
Orta ABD 4 Aralık 2020 veya üzeri
Kuzey Çin 3 7 Eylül 2022 veya üzeri
Doğu Asya 13 Ocak 2022 veya üzeri
Doğu ABD 27 Ocak 2021 veya üzeri
Doğu ABD 2 30 Ocak 2021 veya üzeri
Orta Fransa 23 Ekim 2020 veya üzeri
Almanya Orta Batı 3 Mayıs 2021 veya üzeri
Doğu Japonya 30 Ocak 2021 veya üzeri
Güney Kore - Orta 20 Ocak 2022 veya üzeri
Kuzey Avrupa 28 Ocak 2021 veya üzeri
Norveç Doğu 20 Ocak 2022 veya üzeri
Katar Merkezi 25 Ağustos 2022 veya üzeri
Güney Afrika Kuzey 7 Eylül 2022 veya üzeri
Orta Güney ABD 30 Nisan 2021 veya üzeri
Güneydoğu Asya 31 Ocak 2021 veya üzeri
Orta İsveç 21 Ocak 2022 veya üzeri
İsviçre Kuzey 7 Eylül 2022 veya üzeri
Kuzey BAE 9 Eylül 2022 veya üzeri
Güney Birleşik Krallık 30 Ocak 2021 veya üzeri
US Gov Virginia 30 Nisan 2021 veya üzeri
Batı Avrupa 29 Ocak 2021 veya üzeri
Batı ABD 2 30 Ocak 2021 veya üzeri
Batı ABD 3 2 Haziran 2021 veya üzeri

Dekont

Kullanılabilirlik alanları, Azure AI Arama Hizmeti Düzeyi Sözleşmesi'nin koşullarını değiştirmez. Sorgu yüksek kullanılabilirliği için yine de üç veya daha fazla çoğaltmaya ihtiyacınız vardır.

Ayrı coğrafi bölgelerde birden çok hizmet

Operasyonel gereksinimleriniz şunlarsa hizmet yedekliliği gereklidir:

  • İş sürekliliği ve olağanüstü durum kurtarma (BCDR) gereksinimleri (Kesinti olduğunda Azure AI Search anında yük devretme sağlamaz).

  • Genel olarak dağıtılmış bir uygulama için hızlı performans. Sorgu ve dizin oluşturma istekleri dünyanın her yerinden geliyorsa, konak veri merkezine en yakın kullanıcılar daha hızlı performans elde eder. Bu kullanıcılara yakın bölgelerde daha fazla hizmet oluşturmak, tüm kullanıcıların performansını eşitleyebilir.

İki veya daha fazla arama hizmetine ihtiyacınız varsa bunları farklı bölgelerde oluşturmak, süreklilik ve kurtarma için uygulama gereksinimlerini ve genel kullanıcı tabanı için daha hızlı yanıt sürelerini karşılayabilir.

Azure AI Search, arama dizinlerini coğrafi bölgeler arasında çoğaltmak için otomatik bir yöntem sağlamaz, ancak bu işlemin uygulanmasını ve yönetilmesini kolaylaştırabilecek bazı teknikler vardır. Bu teknikler sonraki birkaç bölümde özetlenmiştir.

Coğrafi olarak dağıtılmış arama hizmetleri kümesinin amacı, kullanıcının en düşük gecikme süresini sağlayan Azure AI Arama hizmeti yönlendirildiği iki veya daha fazla bölgede iki veya daha fazla dizine sahip olmaktır:

Cross-tab of services by region

Birden çok hizmet oluşturarak ve veri eşitleme için bir strateji tasarlayarak bu mimariyi uygulayabilirsiniz. İsteğe bağlı olarak, yönlendirme istekleri için Azure Traffic Manager gibi bir kaynak ekleyebilirsiniz.

Bahşiş

Birden çok bölgeye birden çok arama hizmeti dağıtma konusunda yardım için GitHub'da tam olarak yapılandırılmış, çok bölgeli bir arama çözümü dağıtan bu Bicep örneğine bakın. Örnek, dizin eşitlemesi için iki seçenek sunar ve Traffic Manager'ı kullanarak yeniden yönlendirme isteğinde bulunur.

Birden çok hizmette verileri eşitleme

İki veya daha fazla farklı arama hizmetini eşitlenmiş durumda tutmak için iki seçenek vardır:

  • Dizin oluşturucu kullanarak içerik güncelleştirmelerini arama dizinine çekin.
  • Belge Ekle veya Güncelleştir (REST) API'sini veya Azure SDK eşdeğer API'sini kullanarak dizine içerik gönderin.

Her iki seçeneği de yapılandırmak için azure-search-multiple-region deposunda bölgelerinizde ve dizin oluşturma stratejilerinizde değiştirilmiş örnek Bicep betiğini kullanmanızı öneririz.

1. Seçenek: Birden çok hizmette içeriği güncelleştirmek için dizin oluşturucuları kullanma

Zaten bir hizmette dizin oluşturucu kullanıyorsanız, ikinci bir hizmette ikinci bir dizin oluşturucuyu aynı veri kaynağı nesnesini kullanacak şekilde yapılandırabilir ve aynı konumdan veri çekebilirsiniz. Her bölgedeki her hizmetin kendi dizin oluşturucu ve hedef dizini vardır (arama dizininiz paylaşılmamıştır, yani her dizinin kendi veri kopyası vardır), ancak her dizin oluşturucu aynı veri kaynağına başvurur.

Bu mimarinin nasıl görüneceğine dair üst düzey bir görsel aşağıdadır.

Single data source with distributed indexer and service combinations

Seçenek 2: Birden çok hizmete içerik güncelleştirmeleri göndermek için REST API'lerini kullanma

Arama dizininize içerik göndermek için Azure AI Search REST API'sini kullanıyorsanız, bir güncelleştirme gerektiğinde değişiklikleri tüm arama hizmetlerine göndererek çeşitli arama hizmetlerinizi eşitlenmiş durumda tutabilirsiniz. Kodunuzda, bir arama hizmetinde güncelleştirmenin başarısız olduğu ancak diğer arama hizmetleri için başarılı olduğu durumları işlediğinizden emin olun.

Yük devretme veya sorgu isteklerini yeniden yönlendirme

İstek düzeyinde yedekliliğe ihtiyacınız varsa Azure çeşitli yük dengeleme seçenekleri sunar:

Yük dengeleme seçeneklerini değerlendirirken göz önünde bulundurulması gereken bazı noktalar:

  • Arama, bir istemciden gelen sorgu ve dizin oluşturma isteklerini kabul eden bir arka uç hizmetidir.

  • İstemciden arama hizmetine yönelik isteklerin kimliği doğrulanmalıdır. Arama işlemlerine erişim için çağıranın rol tabanlı izinlere sahip olması veya istekte bir API anahtarı sağlaması gerekir.

  • Hizmet uç noktalarına varsayılan olarak genel İnternet bağlantısı üzerinden ulaşılır. Sanal ağ içinden kaynaklanan istemci bağlantıları için özel bir uç nokta ayarlarsanız Application Gateway'i kullanın.

  • Azure AI Search uç noktaya gönderilen <your-search-service-name>.search.windows.net istekleri kabul eder. Ana bilgisayar üst bilgisinde CNAME gibi farklı bir DNS adı kullanarak aynı uç noktaya ulaşırsanız istek reddedilir.

Azure AI Search, birincil uç nokta başarısız olursa istek yeniden yönlendirmesi için Azure Traffic Manager'ı kullanan çok bölgeli bir dağıtım örneği sağlar. Bu çözüm, yalnızca aynı bölgedeki bir arama hizmetini çağıran arama özellikli bir istemciye yönlendirdiğinizde kullanışlıdır.

Azure Traffic Manager öncelikli olarak belirli yönlendirme yöntemlerine (öncelik, performans veya coğrafi konum gibi) göre ağ trafiğini farklı uç noktalar arasında yönlendirmek için kullanılır. Gelen istekleri uygun uç noktaya yönlendirmek için DNS düzeyinde hareket eder. Traffic Manager'ın hizmet vermekte olduğu bir uç nokta istekleri reddetmeye başlarsa, trafik başka bir uç noktaya yönlendirilir.

Traffic Manager, Azure AI Search'e doğrudan bağlantı için uç nokta sağlamaz; bu da bir arama hizmetini Traffic Manager'ın hemen arkasına yerleştiremezsiniz. Bunun yerine, isteklerin Traffic Manager'a, ardından arama özellikli bir web istemcisine ve son olarak da arka uçta bir arama hizmetine akışı olduğu varsayımı yer alır. İstemci ve hizmet aynı bölgede bulunur. Bir arama hizmeti devre dışı kalırsa, arama istemcisi başarısız olur ve Traffic Manager kalan istemciye yönlendirilir.

Search apps connecting through Azure Traffic Manager

Çok bölgeli dağıtımda veri yerleşimi hakkında

Çeşitli coğrafi bölgelere birden çok arama hizmeti dağıttığınızda, içeriğiniz her arama hizmeti için seçtiğiniz bölgede depolanır.

Azure AI Search, yetkilendirmeniz olmadan verileri belirtilen bölgenizin dışında depolamaz. Yetkilendirme, Bir Azure Depolama kaynağına yazan özellikleri kullandığınızda örtülüdür: zenginleştirme önbelleği, hata ayıklama oturumu, bilgi deposu. Her durumda, depolama hesabı seçtiğiniz bölgede sağladığınız bir hesaptır.

Dekont

Hem depolama hesabı hem de arama hizmeti aynı bölgedeyse, arama ve depolama arasındaki ağ trafiği özel bir IP adresi kullanır ve Microsoft omurga ağı üzerinden gerçekleşir. Özel IP adresleri kullanıldığından, ip güvenlik duvarlarını veya ağ güvenliği için özel uç noktayı yapılandıramazsınız. Bunun yerine, her iki hizmet de aynı bölgede olduğunda alternatif olarak güvenilen hizmet özel durumunu kullanın.

Hizmet kesintileri ve yıkıcı olaylar hakkında

Hizmet Düzeyi Sözleşmesi'nde (SLA) belirtildiği gibi, Microsoft bir Azure AI Arama hizmeti örneği iki veya daha fazla çoğaltmayla yapılandırıldığında dizin sorgusu istekleri için yüksek düzeyde kullanılabilirlik ve bir Azure AI Arama hizmeti örneği üç veya daha fazla çoğaltmayla yapılandırıldığında dizin güncelleştirme istekleri için yüksek düzeyde kullanılabilirlik garantisi sağlar. Ancak olağanüstü durum kurtarma için yerleşik bir mekanizma yoktur. Microsoft'un denetimi dışında yıkıcı bir hata olması durumunda sürekli hizmet gerekiyorsa, farklı bir bölgede ikinci bir hizmet sağlamanızı ve dizinlerin tüm hizmetlerde tamamen yedekli olduğundan emin olmak için bir coğrafi çoğaltma stratejisi uygulamanızı öneririz.

Dizinleri doldurmak ve yenilemek için dizin oluşturucuları kullanan müşteriler, aynı veri kaynağından veri alan coğrafi olarak özel dizin oluşturucular aracılığıyla olağanüstü durum kurtarmayı işleyebilir. Farklı bölgelerdeki her birinde dizin oluşturucu çalıştıran iki hizmet, coğrafi olarak yedeklilik elde etmek için aynı veri kaynağını dizine alabilir. Coğrafi olarak yedekli veri kaynaklarından dizin oluşturabiliyorsanız, Azure AI Search dizin oluşturucularının birincil çoğaltmalardan yalnızca artımlı dizin oluşturma (yeni, değiştirilmiş veya silinmiş belgelerdeki güncelleştirmeleri birleştirme) gerçekleştirebileceğini unutmayın. Bir yük devretme olayında, dizin oluşturucuyu yeni birincil çoğaltmaya yeniden yönlendirmeyi unutmayın.

Dizin oluşturucuları kullanmıyorsanız, nesneleri ve verileri paralel olarak farklı arama hizmetlerine göndermek için uygulama kodunuzu kullanırsınız. Daha fazla bilgi için bkz . Verileri birden çok hizmet arasında eşitlenmiş olarak tutma.

Alternatifleri yedekleme ve geri yükleme

Veri katmanı için iş sürekliliği stratejisi genellikle bir yedeklemeden geri yükleme adımı içerir. Azure AI Search birincil veri depolama çözümü olmadığından, Microsoft self servis yedekleme ve geri yükleme için resmi bir mekanizma sağlamaz. Ancak, dizin tanımınızı ve anlık görüntünüzü bir dizi JSON dosyasına yedeklemek için bu Azure AI Search .NET örnek deposundaki dizin-yedekleme-geri yükleme örnek kodunu kullanabilir ve gerekirse dizini geri yüklemek için bu dosyaları kullanabilirsiniz. Bu araç, dizinleri hizmet katmanları arasında da taşıyabilir.

Aksi takdirde, bir dizini yanlışlıkla silerseniz dizin oluşturmak ve doldurmak için kullanılan uygulama kodunuz aslında geri yükleme seçeneğidir. Bir dizini yeniden oluşturmak için dizini silersiniz (var olduğunu varsayarsak), hizmette dizini yeniden oluşturur ve birincil veri deponuzdan veri alarak yeniden yüklersiniz.

Sonraki adımlar