Dela via


Flera klientorganisationer och Azure App Configuration

Azure App Configuration kan du lagra konfigurationsinställningar för ditt program. Med hjälp av Azure App Configuration kan du enkelt implementera mönstret externt 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 du har vissa inställningar som du delar mellan 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 en delad App Configuration butik. 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.

Vanligtvis har du också klientspecifika inställningar. Du kan till exempel behöva lagra 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 klientspecifika inställningar för flera klientorganisationer 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 klientorganisationer finns det förmodligen 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 huvudsakliga innehavarisoleringsmodellerna för Azure App Configuration:

Att tänka på Delad lagringsplats Butik per klientorganisation
Dataisolering Låg. Använda nyckelprefix eller etiketter för att identifiera varje klientorganisations data Högt
Prestandaisolering Lågt Högt
Distributionskomplexitet Låg Medelhög
Driftskomplexitet Låg Medelhög
Resurskostnad Låg Medelhög
Exempel på ett scenario Stor lösning för flera klientorganisationer med delad programnivå Premium-nivåklienter med helt isolerade distributioner

Delade butiker

Du kan distribuera en delad Azure App Configuration för hela lösningen eller för varje stämpel. Du kan sedan använda samma arkiv för alla klientorganisationens 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 lager. 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 bör du se till att du förstår de resurskvoter och gränser 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 butik för varje klientorganisation. Med Azure App Configuration standardnivå 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 tillkommer 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å lagringsnivå, 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 för flera klientorganisationer 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. Överväg att använda en klientidentifierare som prefix för dina nycklar i en lösning med flera klienter.

Anta till exempel att du behöver 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 klientorganisationer kan du välja att använda ett hierarkiskt nyckelnamn, till exempel tenant1/LogLevel för klient 1, tenant2/LogLevel för klientorganisation 2 och så vidare.

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 kontrollerar du 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 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 har också stöd för 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. Du kan använda klientidentifierare som etiketter, men du kan inte använda etiketter för något annat. Därför är det ofta en bra idé att använda nyckelprefix i stället för etiketter när du arbetar med en lösning för flera klientorganisationer.

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-providerbibliotek cachelagrade inställningar och uppdaterar dem automatiskt.

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

I takt med att klientbasen växer ökar förmodligen 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 en minnesintern cache för att cachelagra 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 minneskrävt. Du kan också konfigurera förfallotider för varje klientorganisations konfigurationsinställningar.

Deltagare

Den här artikeln underhålls av Microsoft. Den skrevs ursprungligen av följande deltagare.

Huvudförfattare:

  • John Downs | Huvudkundstekniker, FastTrack för Azure

Andra deltagare:

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

Nästa steg

Granska distributions- och konfigurationsmetoder för flera klientorganisationer.