Dela via


Konfiguration av flera klientorganisationer och Azure-appar

Med Azure App Configuration kan du lagra konfigurationsinställningar för ditt program. Genom att använda Azure App Configuration kan du enkelt implementera mönstret extern konfigurationsarkiv. I den här artikeln beskriver vi några av funktionerna i Azure App Configuration som är användbara när du arbetar med system med flera klientorganisationer, och vi länkar till vägledning och exempel för hur du använder Azure App Configuration i en lösning med flera klientorganisationer.

Isoleringsmodeller

Ett arkiv refererar till en enda instans av Azure App Configuration-tjänsten.

I en lösning med flera klientorganisationer är det vanligt att ha två typer av inställningar:

  • Delade inställningar är de som gäller för flera klienter, till exempel globala inställningar eller inställningar som gäller för alla klienter inom en distributionsstämpel. Globala inställningar lagras ofta bäst i ett delat appkonfigurationsarkiv. Genom att följa den här metoden minimerar du antalet platser som du behöver uppdatera när värdet för en inställning ändras. Den här metoden minimerar också risken för att inställningarna blir osynkroniserade.

  • Klientspecifika inställningar, till exempel varje klients databasnamn eller interna identifierare. Eller så kanske du vill ange olika loggnivåer för varje klientorganisation, till exempel när du diagnostiserar ett problem som rapporteras av en specifik klientorganisation och du behöver samla in diagnostikloggar från den klientorganisationen. Du kan välja om du vill kombinera de klientspecifika inställningarna för flera klienter till en enda butik eller om du vill distribuera en butik för varje klientorganisation. Det här beslutet bör baseras på dina krav. Om din lösning använder en enda delad programnivå för flera klienter är det troligt att det finns minimala fördelar med att använda klientspecifika butiker. Men om du distribuerar klientspecifika programinstanser kan du välja att spegla samma metod genom att distribuera klientspecifika konfigurationslager.

I följande tabell sammanfattas skillnaderna mellan de viktigaste modellerna för innehavarisolering för Azure App Configuration:

Att tänka på Delad butik Lagra per klientorganisation
Dataisolering Låg. Använda nyckelprefix eller etiketter för att identifiera varje klientorganisations data Högt
Prestandaisolering Låg Hög
Distributionskomplexitet Låg Medelhög
Driftkomplexitet Låg Medelhög
Resurskostnad Låg Medelhög
Exempelscenario Stor lösning för flera klientorganisationer med en delad programnivå Premium-nivåklientorganisationer med helt isolerade distributioner

Delade butiker

Du kan distribuera en delad Azure App Configuration Store för hela lösningen eller en för varje stämpel. Du kan sedan använda samma arkiv för alla klientorganisationers inställningar och du kan använda nyckelprefix eller etiketter för att särskilja dem.

Om du behöver lagra en stor mängd data per klientorganisation, eller om du behöver skala till ett stort antal klienter, kan du riskera att överskrida någon av resursgränserna för ett enda arkiv. I det här scenariot bör du överväga om du kan fragmentera dina klienter i en uppsättning delade butiker för att minimera distributions- och hanteringskostnaderna.

Om du följer den här metoden ser du till att du förstår de resurskvoter och begränsningar som gäller. Tänk särskilt på den totala lagringsgränsen för den tjänstnivå som du använder och se till att du inte överskrider det maximala antalet begäranden per timme.

Butiker per klientorganisation

Du kan i stället välja att distribuera en Azure App Configuration Store för varje klientorganisation. Med standardnivån Azure App Configuration kan du distribuera ett obegränsat antal butiker i din prenumeration. Den här metoden är dock ofta mer komplex att hantera eftersom du måste distribuera och konfigurera fler resurser. Det finns också en avgift för varje butiksresurs som du distribuerar.

Överväg klientspecifika butiker om du har någon av följande situationer:

  • Du måste använda kundhanterade krypteringsnycklar, där nycklarna är separata för varje klientorganisation.
  • Dina klienter kräver att deras konfigurationsdata är helt isolerade från andra klientorganisationers data. Åtkomstbehörigheten för Azure App Configuration styrs på butiksnivå, så genom att distribuera separata butiker kan du konfigurera separata åtkomstbehörigheter.

Funktioner i Azure App Configuration som stöder flera klientorganisationer

När du använder Azure App Configuration i ett program med flera klienter finns det flera funktioner som du kan använda för att lagra och hämta klientspecifika inställningar.

Nyckelprefix

I Azure App Configuration arbetar du med nyckel/värde-par som representerar programinställningar. Nyckeln representerar namnet på konfigurationsinställningen. Du kan använda en hierarkisk namngivningsstruktur för dina nycklar. I en lösning med flera klienter bör du överväga att använda en klientidentifierare som prefix för dina nycklar.

Anta till exempel att du måste lagra en inställning för att ange loggningsnivån för ditt program. I en lösning med en enda klientorganisation kan du ge den här inställningen LogLevelnamnet . I en lösning med flera klienter kan du välja att använda ett hierarkiskt nyckelnamn, till exempel tenant1/LogLevel för klientorganisation 1, tenant2/LogLevel för klientorganisation 2 och så vidare.

Med Azure App Configuration kan du ange långa nyckelnamn för att stödja flera nivåer i en hierarki. Om du väljer att använda långa nyckelnamn ska du se till att du förstår storleksgränserna för nycklar och värden.

När du läser in en enskild klients konfiguration i ditt program kan du ange ett nyckelprefixfilter för att bara läsa in klientorganisationens nycklar. Du kan också konfigurera providerbiblioteket för Azure App Configuration för att trimma nyckelprefixet från nycklarna innan det gör dem tillgängliga för ditt program. När du trimmar nyckelprefixet ser programmet ett konsekvent nyckelnamn med klientens värden inlästa i programmet.

Etiketter

Azure App Configuration stöder också etiketter, vilket gör att du kan ha separata värden med samma nyckel.

Etiketter används ofta för versionshantering, arbete med flera distributionsmiljöer eller för andra ändamål i din lösning. Även om du kan använda klientidentifierare som etiketter kan du inte använda etiketter för något annat. För lösningar med flera klienter är det därför vanligtvis en bra idé att använda nyckelprefix för att hantera klientspecifika inställningar och använda etiketter för andra ändamål.

Om du bestämmer dig för att använda etiketter för varje klientorganisation kan ditt program bara läsa in inställningarna för en specifik klientorganisation med hjälp av ett etikettfilter. Den här metoden kan vara användbar om du har separata programdistributioner för varje klientorganisation.

Cachelagring på programsidan

När du arbetar med Azure App Configuration är det viktigt att cachelagrade inställningarna i ditt program i stället för att läsa in dem varje gång du använder dem. Azure App Configuration-providerbiblioteken cachelagrade inställningar och uppdaterar dem automatiskt.

Du måste också bestämma om programmet ska läsa in inställningarna för en enskild klientorganisation eller för alla klienter.

När klientbasen växer ökar sannolikt den tid och det minne som krävs för att läsa in inställningarna för alla klienter tillsammans. I de flesta fall är det därför bra att läsa in inställningarna för varje klientorganisation separat när programmet behöver dem.

Om du läser in konfigurationsinställningarna för varje klientorganisation separat måste ditt program cachelagrat varje uppsättning inställningar separat till andra. I .NET-program bör du överväga att använda ett minnesinternt cacheminne för att cachelagma klientens IConfiguration objekt och sedan använda klientidentifieraren som cachenyckel. Genom att använda en minnesintern cache behöver du inte läsa in en konfiguration igen vid varje begäran, men cacheminnet kan ta bort oanvända instanser om programmet är under minnesbelastning. Du kan också konfigurera förfallotider för varje klientorganisations konfigurationsinställningar.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Övriga medarbetare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg

Granska distributions- och konfigurationsmetoder för flera klientorganisationer.