Tervezési minták több-bérlős SaaS-alkalmazásokhoz és Azure AI Searchhez

A több-bérlős alkalmazások ugyanazokat a szolgáltatásokat és képességeket biztosítják azoknak a bérlőknek, akik nem látják vagy nem osztják meg más bérlők adatait. Ez a cikk az Azure AI Search használatával létrehozott több-bérlős alkalmazások bérlői elkülönítési stratégiáit ismerteti.

Az Azure AI Search fogalmai

Az Azure AI Search szolgáltatásként nyújtott keresési megoldásként lehetővé teszi a fejlesztők számára, hogy gazdag keresési szolgáltatásokat adjanak az alkalmazásokhoz anélkül, hogy bármilyen infrastruktúrát kezelnek, vagy az információlekérés szakértőjévé válnak. A rendszer feltölti az adatokat a szolgáltatásba, majd a felhőben tárolja. Az Azure AI Search API-ra irányuló egyszerű kérések használatával az adatok ezután módosíthatók és kereshetők.

Search szolgáltatás, indexek, mezők és dokumentumok

A tervezési minták megvitatása előtt fontos megérteni néhány alapfogalmat.

Az Azure AI Search használatakor az egyik feliratkozik egy keresési szolgáltatásra. Az adatok az Azure AI Searchbe való feltöltése során a keresési szolgáltatáson belül egy indexben lesznek tárolva. Egyetlen szolgáltatáson belül több index is lehet. Az adatbázisok ismert fogalmainak használatához a keresési szolgáltatás hasonlítható egy adatbázishoz, míg a szolgáltatáson belüli indexek egy adatbázis tábláihoz hasonlíthatók.

A keresési szolgáltatás minden indexe saját sémával rendelkezik, amelyet számos testreszabható mező határoz meg. Az adatok egyéni dokumentumok formájában kerülnek az Azure AI Search-indexbe. Minden dokumentumot fel kell tölteni egy adott indexbe, és el kell férnie az index sémájának. Amikor az Azure AI Search használatával keres adatokat, a rendszer a teljes szöveges keresési lekérdezéseket egy adott indexen adja ki. Ha össze szeretné hasonlítani ezeket a fogalmakat egy adatbáziséval, a mezők egy tábla oszlopaihoz hasonlíthatók, a dokumentumok pedig sorokhoz hasonlíthatók.

Méretezhetőség

A Standard tarifacsomag bármely Azure AI-Search szolgáltatás két dimenzióban méretezhető: a tárolás és a rendelkezésre állás.

  • A keresési szolgáltatás tárterületének növeléséhez partíciók is hozzáadhatók.
  • A szolgáltatáshoz replikák is hozzáadhatók, hogy növeljék a keresési szolgáltatás által kezelhető kérések átviteli sebességét.

A partíciók és replikák hozzáadása és eltávolítása lehetővé teszi, hogy a keresési szolgáltatás kapacitása növekedjen az alkalmazás által igényelt adatok és forgalom mennyiségével. Ahhoz, hogy egy keresési szolgáltatás olvasási SLA-t érjen el, két replikára van szükség. Ahhoz, hogy egy szolgáltatás olvasási-írási SLA-t tudjon elérni, három replikára van szükség.

Az Azure AI Searchben néhány különböző tarifacsomag található, mindegyik szint különböző korlátozásokkal és kvótákkal rendelkezik. Ezen korlátok némelyike a szolgáltatás szintjén, néhány az index szintjén, néhány pedig a partíció szintjén van.

Alap Standard1 Standard2 Standard3 Standard3 HD
Replikák maximális száma szolgáltatásonként 3 12 12 12 12
Szolgáltatásonkénti partíciók maximális száma 0 12 12 12 3
Keresési egységek (replikák*partíciók) maximális száma szolgáltatásonként 3 36 36 36 36 (legfeljebb 3 partíció)
Szolgáltatásonkénti tárterület maximális száma 2 GB 300 GB 1,2 TB 2,4 TB 600 GB
Partíciónkénti tárterület maximális száma 2 GB 25 GB 100 GB 200 GB 200 GB
Szolgáltatásonkénti indexek maximális száma 5 50 200 200 3000 (legfeljebb 1000 index/partíció)

S3 Nagy sűrűség

Az Azure AI Search S3 tarifacsomagjában lehetőség van a nagy sűrűségű (HD) módra, amelyet kifejezetten több-bérlős forgatókönyvekhez terveztek. Sok esetben az egyszerűség és a költséghatékonyság előnyeinek eléréséhez számos kisebb bérlőt kell támogatni egyetlen szolgáltatásban.

Az S3 HD lehetővé teszi, hogy a sok kis index egyetlen keresési szolgáltatás felügyelete alatt legyen csomagolva azáltal, hogy az indexek horizontális felskálázását lehetővé teszi partíciók használatával, hogy több indexet lehessen üzemeltetni egyetlen szolgáltatásban.

Az S3 szolgáltatás célja, hogy rögzített számú (legfeljebb 200) indexet üzemeltetjen, és lehetővé teszi, hogy az egyes indexek horizontálisan méretezhetőek legyenek, amikor új partíciókat adnak hozzá a szolgáltatáshoz. A partíciók S3 HD-szolgáltatásokhoz való hozzáadása növeli a szolgáltatás által üzemeltethető indexek maximális számát. Az egyes S3HD-indexek ideális maximális mérete körülbelül 50–80 GB, bár a rendszer által előírt indexekre nincs szigorú méretkorlát.

Több-bérlős alkalmazások szempontjai

A több-bérlős alkalmazásoknak hatékonyan el kell osztaniuk az erőforrásokat a bérlők között, ugyanakkor meg kell őrizni a különböző bérlők közötti adatvédelmet. Az ilyen alkalmazások architektúrájának tervezésekor néhány szempontot figyelembe kell venni:

  • Bérlők elkülönítése: Az alkalmazásfejlesztőknek megfelelő intézkedéseket kell tenniük annak érdekében, hogy egyetlen bérlő sem férhessen hozzá jogosulatlanul vagy nem kívánt módon más bérlők adataihoz. Az adatvédelem szempontjából a bérlői elkülönítési stratégiák megkövetelik a megosztott erőforrások hatékony kezelését és a zajos szomszédok elleni védelmet.

  • Felhőbeli erőforrásköltség: Mint minden más alkalmazás esetében, a szoftvermegoldásnak is versenyképesnek kell maradnia a több-bérlős alkalmazások összetevőjeként.

  • Könnyű kezelhetőség: Több-bérlős architektúra fejlesztésekor fontos szempont az alkalmazás működésére és összetettségére gyakorolt hatás. Az Azure AI Search 99,9%-os SLA-val rendelkezik.

  • Globális lábnyom: A több-bérlős alkalmazásoknak gyakran kell kiszolgálnia a világszerte elosztott bérlőket.

  • Méretezhetőség: Az alkalmazásfejlesztőknek meg kell fontolniuk, hogyan egyeztethetők össze az alkalmazások kellően alacsony összetettségének fenntartása és az alkalmazás megtervezése a bérlők számával, valamint a bérlők adatainak és számítási feladatainak méretével való méretezéshez.

Az Azure AI Search néhány határt kínál, amelyek a bérlők adatainak és számítási feladatainak elkülönítésére használhatók.

Több-bérlős forgatókönyv esetén az alkalmazásfejlesztő egy vagy több keresési szolgáltatást használ fel, és a bérlőket szolgáltatások, indexek vagy mindkettő között osztja el. Az Azure AI Search néhány gyakori mintával rendelkezik egy több-bérlős forgatókönyv modellezése során:

  • Bérlőnként egy index: Minden bérlőnek saját indexe van egy keresési szolgáltatásban, amelyet más bérlőkkel oszt meg.

  • Bérlőnként egy szolgáltatás: Minden bérlő saját dedikált Azure AI-Search szolgáltatás rendelkezik, amely a legmagasabb szintű adatokat és a számítási feladatok elkülönítését kínálja.

  • A kettő kombinációja: A nagyobb, aktívabb bérlők dedikált szolgáltatásokat kapnak, míg a kisebb bérlők egyéni indexeket kapnak a megosztott szolgáltatásokban.

1. modell: Bérlőnként egy index

A portrayal of the index-per-tenant model

Egy bérlőnkénti indexmodellben több bérlő foglal el egyetlen Azure AI-Search szolgáltatás, ahol minden bérlő saját indexet használ.

A bérlők adatelkülönítést érnek el, mivel minden keresési kérés és dokumentumművelet indexszinten van kiadva az Azure AI Searchben. Az alkalmazásrétegben szükség van a tudatosságra, hogy a különböző bérlők forgalmát a megfelelő indexekhez irányítsuk, miközben az erőforrásokat a szolgáltatás szintjén is kezelik az összes bérlőn.

A bérlőnkénti indexmodell egyik fő attribútuma, hogy az alkalmazás fejlesztője túl tudja írni a keresési szolgáltatás kapacitását az alkalmazás bérlői között. Ha a bérlők a számítási feladatok egyenlőtlen eloszlásával rendelkeznek, a bérlők optimális kombinációja elosztható a keresési szolgáltatás indexei között, hogy számos rendkívül aktív, erőforrás-igényes bérlőt fogadjon el, miközben egyidejűleg kevesebb aktív bérlőt szolgál ki. A kompromisszum az, hogy a modell nem képes kezelni azokat a helyzeteket, amikor az egyes bérlők egyidejűleg rendkívül aktívak.

A bérlőnkénti indexmodell egy változó költségmodell alapja, ahol egy teljes Azure AI-Search szolgáltatás előre vásárolnak, majd bérlőkkel töltik meg. Ez lehetővé teszi a nem használt kapacitások kijelölését a próbaverziókhoz és az ingyenes fiókokhoz.

A globális lábnyommal rendelkező alkalmazások esetében előfordulhat, hogy a bérlőnkénti indexmodell nem a leghatékonyabb. Ha egy alkalmazás bérlői az egész világon el vannak osztva, minden régióhoz külön szolgáltatásra lehet szükség, amely megkettőzi az egyes régiók költségeit.

Az Azure AI Search lehetővé teszi az egyes indexek és a növekedni kívánt indexek teljes számának méretezését. Megfelelő tarifacsomag kiválasztása esetén partíciókat és replikákat lehet hozzáadni a teljes keresési szolgáltatáshoz, ha a szolgáltatáson belüli egyes indexek túl nagyok a tárterület vagy a forgalom szempontjából.

Ha az indexek teljes száma túl nagy egy szolgáltatáshoz, egy másik szolgáltatást kell kiépíteni az új bérlők elhelyezéséhez. Ha új szolgáltatások hozzáadásakor az indexeket át kell helyezni a keresési szolgáltatások között, az indexből származó adatokat manuálisan kell átmásolni az egyik indexből a másikba, mivel az Azure AI Search nem teszi lehetővé az index áthelyezését.

2. modell: Bérlőnként egy szolgáltatás

A portrayal of the service-per-tenant model

A bérlőnkénti szolgáltatásarchitektúrákban minden bérlő saját keresési szolgáltatással rendelkezik.

Ebben a modellben az alkalmazás eléri a bérlői elkülönítés maximális szintjét. Minden szolgáltatás dedikált tárhellyel és átviteli sebességgel rendelkezik a keresési kérelmek kezeléséhez. Minden bérlő rendelkezik az API-kulcsok egyéni tulajdonjogával.

Azokban az alkalmazásokban, amelyekben minden bérlőnek nagy a lábnyoma, vagy a számítási feladatnak kicsi a bérlőnkénti variabilitása, a bérlőnkénti szolgáltatásmodell hatékony választás, mivel az erőforrások nem oszthatók meg a különböző bérlők számítási feladatai között.

A bérlői modellenkénti szolgáltatások egy kiszámítható, rögzített költségmodell előnyeit is kínálják. A teljes keresési szolgáltatásban nincs előzetes befektetés, amíg nincs bérlő a kitöltéséhez, de a bérlőnkénti költség magasabb, mint egy bérlőnkénti indexmodell.

A bérlőnkénti szolgáltatásmodell hatékony választás a globális lábnyommal rendelkező alkalmazások számára. Földrajzilag elosztott bérlők esetén könnyen elérhető az egyes bérlők szolgáltatása a megfelelő régióban.

A minta skálázásának kihívásai akkor merülnek fel, ha az egyes bérlők kinőik a szolgáltatásukat. Az Azure AI Search jelenleg nem támogatja a keresési szolgáltatás tarifacsomagjának frissítését, ezért minden adatot manuálisan kell átmásolni egy új szolgáltatásba.

3. modell: Hibrid

A több-bérlős modellek másik mintája az index-bérlőnkénti és a bérlőnkénti szolgáltatásstratégiák keverése.

A két minta összekeverésével az alkalmazás legnagyobb bérlői dedikált szolgáltatásokat foglalhatnak el, míg a kevésbé aktív, kisebb bérlők hosszú farka egy megosztott szolgáltatás indexeit foglalhatja el. Ez a modell biztosítja, hogy a legnagyobb bérlők folyamatosan magas teljesítményt nyújtsanak a szolgáltatásból, miközben segítenek megvédeni a kisebb bérlőket a zajos szomszédoktól.

Ennek a stratégiának a megvalósítása azonban előrelátásra támaszkodik annak előrejelzésében, hogy mely bérlők igényelnek dedikált szolgáltatást egy megosztott szolgáltatás indexével szemben. Az alkalmazások összetettsége növekszik, ha mindkét több-bérlős modellt kezelni kell.

Még finomabb részletesség elérése

Az Azure AI Search több-bérlős forgatókönyveinek modellezésére szolgáló fenti tervezési minták egységes hatókört feltételeznek, ahol minden bérlő egy alkalmazás teljes példánya. Az alkalmazások azonban néha sok kisebb hatókört képesek kezelni.

Ha a bérlőnkénti szolgáltatás- és index-bérlői modellek nem elég kis hatókörök, akkor az indexek modellezésével még finomabb részletességet érhetünk el.

Ha egyetlen index eltérően viselkedik a különböző ügyfélvégpontok esetében, egy mező hozzáadható egy indexhez, amely minden lehetséges ügyfélhez egy bizonyos értéket határoz meg. Minden alkalommal, amikor egy ügyfél meghívja az Azure AI Searcht egy index lekérdezésére vagy módosítására, az ügyfélalkalmazás kódja megadja a mező megfelelő értékét az Azure AI Search szűrési funkciójával a lekérdezési időpontban.

Ez a módszer használható külön felhasználói fiókok, külön engedélyszintek és akár teljesen különálló alkalmazások funkcióinak eléréséhez.

Feljegyzés

A keresési eredmények relevanciáját befolyásolja, ha egyetlen indexet konfigurál a fent leírt módon több bérlő kiszolgálására. A keresési relevancia pontszámai indexszintű hatókörben vannak kiszámítva, nem bérlőszintű hatókörökben, így a bérlők összes adata bele van foglalva a relevanciapontok mögöttes statisztikáiba, például a kifejezés gyakoriságába.

Következő lépések

Az Azure AI Search számos alkalmazás számára lenyűgöző választás. A több-bérlős alkalmazások különböző tervezési mintáinak kiértékelésekor vegye figyelembe a különböző tarifacsomagokat és a megfelelő szolgáltatási korlátokat , hogy az Azure AI Searchet a lehető legjobban testre szabja az alkalmazások számítási feladatainak és architektúráinak megfelelően.