Dela via


Azure Well-Architected Framework-granskning – Azure Service Fabric

Azure Service Fabric är en distribuerad systemplattform som gör det enkelt att paketera, distribuera och hantera skalbara och tillförlitliga mikrotjänster och containrar. Dessa resurser distribueras till en nätverksansluten uppsättning virtuella eller fysiska datorer, som kallas för ett kluster.

Det finns två klustermodeller i Azure Service Fabric: standardkluster och hanterade kluster.

Standardkluster kräver att du definierar en klusterresurs tillsammans med ett antal stödresurser. Dessa resurser måste konfigureras korrekt vid distributionen och underhållas korrekt under hela klustrets livscykel. Annars fungerar inte klustret och dina tjänster korrekt.

Hanterade kluster förenklar distributions- och hanteringsåtgärderna. Den hanterade klustermodellen består av en enda Service Fabric-hanterad klusterresurs som kapslar in och abstraherar bort de underliggande resurserna.

I den här artikeln beskrivs främst den hanterade klustermodellen för enkelhetens skull. Dock görs anrop för eventuella särskilda överväganden som gäller för standardklustermodellen .

I den här artikeln lär du dig metodtips för arkitektur för Azure Service Fabric. Vägledningen baseras på de fem grundpelarna för arkitekturkvalitet:

  • Tillförlitlighet
  • Säkerhet
  • Kostnadsoptimering
  • Driftsäkerhet
  • Prestandaeffektivitet

Förutsättningar

  • Genom att förstå grundpelarna för det väldefinierade ramverket kan du skapa en högkvalitativ, stabil och effektiv molnarkitektur. Kolla in översiktssidan för Azure Well-Architected Framework för att granska de fem grundpelarna för arkitekturens utmärkthet.

  • Genom att granska huvudbegreppen i Azure Service Fabric och mikrotjänstarkitekturen kan du förstå kontexten för de bästa metoderna i den här artikeln.

Tillförlitlighet

Följande avsnitt beskriver designöverväganden och konfigurationsrekommendationer, som är specifika för Azure Service Fabric och tillförlitlighet.

När du diskuterar tillförlitlighet med Azure Service Fabric är det viktigt att skilja mellan klustertillförlitlighet och arbetsbelastningstillförlitlighet. Klustertillförlitlighet är ett delat ansvar mellan Service Fabric-klusteradministratören och deras resursprovider, medan arbetsbelastningstillförlitlighet är en utvecklares domän. Azure Service Fabric har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer nedan görs anrop för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

Mer information om tillförlitlighet för Azure Service Fabric-kluster finns i dokumentationen för kapacitetsplanering.

Mer information om tillförlitlighet för Azure Service Fabric-arbetsbelastningar finns i undersystemet Tillförlitlighet som ingår i Service Fabric-arkitekturen.

Checklista för design

När du gör designval för Azure Service Fabric granskar du designprinciperna för att öka tillförlitligheten i arkitekturen.

  • Klusterarkitektur: Använd Standard SKU för produktionsscenarier. Standardkluster: Använd hållbarhetsnivån Silver (5 virtuella datorer) eller senare för produktionsscenarier.
  • Klusterarkitektur: För kritiska arbetsbelastningar bör du överväga att använda tillgänglighetszoner för dina Service Fabric-kluster.
  • Klusterarkitektur: Använd lastbalanseraren på standardnivå för produktionsscenarier. Hanterade kluster skapar en offentlig Standard Load Balancer i Azure och ett fullständigt kvalificerat domännamn med en statisk offentlig IP-adress för både de primära och sekundära nodtyperna. Du kan också ta med din egen lastbalanserare, som stöder både Basic- och Standard SKU-lastbalanserare.
  • Klusterarkitektur: Skapa ytterligare sekundära nodtyper för dina arbetsbelastningar.

Rekommendationer

Utforska följande tabell med rekommendationer för att optimera din Azure Service Fabric-konfiguration för tjänstens tillförlitlighet:

Azure Service Fabric-rekommendation Förmån
Klusterarkitektur: Använd Standard SKU för produktionsscenarier. Den här nivån säkerställer att resursprovidern upprätthåller klustertillförlitligheten. Standardkluster: Ett standard-SKU-hanterat kluster ger motsvarigheten till hållbarhetsnivån Silver. För att uppnå detta med hjälp av standardklustermodellen måste du använda 5 virtuella datorer (eller fler).
Klusterarkitektur: Överväg att använda tillgänglighetszoner för dina Service Fabric-kluster. Service Fabric-hanterat kluster stöder distributioner som sträcker sig över flera tillgänglighetszoner för att ge zonåterhämtning. Den här konfigurationen säkerställer hög tillgänglighet för de kritiska systemtjänsterna och dina program för att skydda mot enstaka felpunkter.
Klusterarkitektur: Överväg att använda Azure API Management för att exponera och avlasta övergripande funktioner för API:er som finns i klustret. API Management kan integreras direkt med Service Fabric.
Arbetsbelastningsarkitektur: Överväg att använda Reliable Services för tillståndskänsliga arbetsbelastningsscenarier. Reliable Services-modellen gör att dina tjänster kan hålla sig uppe även i opålitliga miljöer där dina datorer misslyckas eller stöter på nätverksproblem, eller i fall där själva tjänsterna stöter på fel och kraschar eller misslyckas. För tillståndskänsliga tjänster bevaras ditt tillstånd även i närvaro av nätverk eller andra fel.

Fler förslag finns i Principer för tillförlitlighetspelare.

Säkerhet

Följande avsnitt beskriver designöverväganden och konfigurationsrekommendationer som är specifika för Azure Service Fabric och säkerhet.

När du diskuterar säkerhet med Azure Service Fabric är det viktigt att skilja mellan klustersäkerhet och arbetsbelastningssäkerhet. Klustersäkerhet är ett delat ansvar mellan Service Fabric-klusteradministratören och deras resursprovider, medan arbetsbelastningssäkerhet är en utvecklares domän. Azure Service Fabric har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer nedan görs anrop för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

Mer information om säkerhet för Azure Service Fabric-kluster finns i Säkerhetsscenarier för Service Fabric-kluster.

Mer information om säkerhet för Azure Service Fabric-arbetsbelastningar finns i Service Fabric-program och tjänstsäkerhet.

Checklista för design

När du gör designval för Azure Service Fabric granskar du designprinciperna för att lägga till säkerhet i arkitekturen.

  • Klusterarkitektur: Se till att nätverkssäkerhetsgrupper (NSG) är konfigurerade för att begränsa trafikflödet mellan undernät och nodtyper. Se till att rätt portar öppnas för programdistribution och arbetsbelastningar.
  • Klusterarkitektur: När du använder Service Fabric Secret Store för att distribuera hemligheter använder du ett separat datachiffreringscertifikat för att kryptera värdena.
  • Klusterarkitektur: Distribuera klientcertifikat genom att lägga till dem i Azure Key Vault och referera till URI:n i distributionen.
  • Klusterarkitektur: Aktivera Microsoft Entra-integrering för klustret för att säkerställa att användarna kan komma åt Service Fabric Explorer med sina Microsoft Entra-autentiseringsuppgifter. Distribuera inte klusterklientcertifikaten mellan användare för att få åtkomst till Explorer.
  • Klusterarkitektur: Använd administratörs- och skrivskyddade klientcertifikat och/eller Microsoft Entra-autentisering för klientautentisering.
  • Kluster- och arbetsbelastningsarkitekturer: Skapa en process för att övervaka förfallodatumet för klientcertifikat.
  • Kluster- och arbetsbelastningsarkitekturer: Underhålla separata kluster för utveckling, mellanlagring och produktion.

Rekommendationer

Överväg följande rekommendationer för att optimera din Azure Service Fabric-konfiguration för säkerhet:

Azure Service Fabric-rekommendation Förmån
Klusterarkitektur: Se till att nätverkssäkerhetsgrupper (NSG) är konfigurerade för att begränsa trafikflödet mellan undernät och nodtyper. Du kan till exempel ha en API Management-instans (ett undernät), ett klientdelsundernät (exponera en webbplats direkt) och ett undernät för serverdelen (endast tillgängligt för klientdelen).
Klusterarkitektur: Distribuera Key Vault-certifikat till Service Fabric-kluster vm-skalningsuppsättningar. När dina programhemligheter lagras lokalt i Azure Key Vault kan du styra spridningen av dem. Key Vault minskar kraftigt risken för att hemligheter sprids av misstag.
Klusterarkitektur: Tillämpa en åtkomstkontrollista (ACL) på klientcertifikatet för Service Fabric-klustret. Om du använder en ACL får du ytterligare en autentiseringsnivå.
Klusterarkitektur: Använd resursbegäranden och begränsningar för att styra resursanvändningen mellan noderna i klustret. Genom att tillämpa resursgränser ser du till att en tjänst inte förbrukar för många resurser och svälter andra tjänster.
Arbetsbelastningsarkitektur: Kryptera service fabric-pakethemlighetsvärden. Kryptering på dina hemliga värden ger ytterligare en säkerhetsnivå.
Arbetsbelastningsarkitektur: Inkludera klientcertifikat i Service Fabric-program. Att låta dina program använda klientcertifikat för autentisering ger möjligheter till säkerhet på både kluster- och arbetsbelastningsnivå.
Arbetsbelastningsarkitektur: Autentisera Service Fabric-program till Azure-resurser med hjälp av hanterad identitet. Med hanterad identitet kan du på ett säkert sätt hantera autentiseringsuppgifterna i koden för autentisering till olika tjänster utan att spara dem lokalt på en utvecklararbetsstation eller i källkontrollen.
Kluster- och arbetsbelastningsarkitekturer: Följ Metodtips för Service Fabric när du är värd för program som inte är betrodda. Genom att följa metodtipsen får du en säkerhetsstandard att följa.

Fler förslag finns i Principer för säkerhetspelare.

Azure Advisor hjälper dig att säkerställa och förbättra säkerheten för Azure Service Fabric. Du kan granska rekommendationerna i avsnittet Azure Advisor i den här artikeln.

Principdefinitioner

Azure Policy hjälper till att upprätthålla organisationens standarder och utvärdera efterlevnaden för dina resurser. Tänk på följande inbyggda principer när du konfigurerar Azure Service Fabric:

  • Service Fabric-kluster bör ha egenskapen ClusterProtectionLevel inställd på EncryptAndSign. Det här är standardvärdet för hanterade kluster och kan inte ändras. Standardkluster: Se till att du anger ClusterProtectionLevel till EncryptAndSign.
  • Service Fabric-kluster bör endast använda Microsoft Entra-ID för klientautentisering.

Alla inbyggda principdefinitioner relaterade till Azure Service Fabric visas i Inbyggda principer – Service Fabric.

Kostnadsoptimering

Följande avsnitt beskriver designöverväganden och konfigurationsrekommendationer, som är specifika för Azure Service Fabric och kostnadsoptimering.

När du diskuterar kostnadsoptimering med Azure Service Fabric är det viktigt att skilja mellan kostnaden för klusterresurser och kostnaden för arbetsbelastningsresurser. Klusterresurser är ett delat ansvar mellan Service Fabric-klusteradministratören och deras resursprovider, medan arbetsbelastningsresurser är en utvecklares domän. Azure Service Fabric har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer nedan görs anrop för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

För klusterkostnadsoptimering går du till priskalkylatorn för Azure och väljer Azure Service Fabric från de tillgängliga produkterna. Du kan testa olika konfigurations- och betalningsplaner i kalkylatorn.

Mer information om priser för Azure Service Fabric-arbetsbelastningar finns i exempelprocessen för kostnadsberäkning för programplanering.

Checklista för design

När du gör designval för Azure Service Fabric granskar du designprinciperna för att optimera kostnaden för din arkitektur.

  • Klusterarkitektur: Välj lämplig VM-SKU.
  • Klusterarkitektur: Använd lämplig nodtyp och storlek.
  • Kluster- och arbetsbelastningsarkitekturer: Använd lämplig nivå och storlek för hanterade diskar.

Rekommendationer

Utforska följande tabell med rekommendationer för att optimera din Azure Service Fabric-konfiguration mot kostnad:

Azure Service Fabric-rekommendation Förmån
Klusterarkitektur: Undvik VM-SKU:er med temporära diskerbjudanden. Service Fabric använder hanterade diskar som standard, så om du undviker temporära diskerbjudanden ser du till att du inte betalar för onödiga resurser.
Klusterarkitektur: Om du behöver välja en viss VM SKU av kapacitetsskäl och det råkar erbjuda temporär disk kan du överväga att använda tillfälligt diskstöd för dina tillståndslösa arbetsbelastningar. Få ut mesta möjliga av de resurser du betalar för. Om du använder en tillfällig disk i stället för en hanterad disk kan du minska kostnaderna för tillståndslösa arbetsbelastningar.
Kluster- och arbetsbelastningsarkitekturer: Justera SKU-val och hanterad diskstorlek med arbetsbelastningskrav. Om du matchar ditt val med dina arbetsbelastningskrav ser du till att du inte betalar för onödiga resurser.

Fler förslag finns i Principer för kostnadsoptimeringspelare.

Driftsäkerhet

Följande avsnitt beskriver designöverväganden och konfigurationsrekommendationer, specifika för Azure Service Fabric och driftskvalitet.

När du diskuterar säkerhet med Azure Service Fabric är det viktigt att skilja mellan klusteråtgärd och arbetsbelastningsåtgärd. Klusteråtgärden är ett delat ansvar mellan Service Fabric-klusteradministratören och deras resursprovider, medan arbetsbelastningsåtgärden är en utvecklares domän. Azure Service Fabric har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer nedan görs anrop för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

Checklista för design

När du gör designval för Azure Service Fabric granskar du designprinciperna för driftskvalitet.

  • Klusterarkitektur: Förbered en klusterövervakningslösning.
  • Klusterarkitektur: Granska klustrets hälsoprinciper i Service Fabric-hälsomodellen.
  • Arbetsbelastningsarkitektur: Förbereda en programövervakningslösning.
  • Arbetsbelastningsarkitektur: Granska hälsoprinciperna för program och tjänsttyp i Service Fabric-hälsomodellen.
  • Kluster- och arbetsbelastningsarkitekturer: Förbered en infrastrukturövervakningslösning.
  • Kluster- och arbetsbelastningsarkitekturer: Utforma klustret med bygg- och versionspipelines för kontinuerlig integrering och distribution.

Rekommendationer

Utforska följande tabell med rekommendationer för att optimera din Azure Service Fabric-konfiguration för driftskvalitet:

Azure Service Fabric-rekommendation Förmån
Arbetsbelastningsarkitektur: Använd Application Insights för att övervaka dina arbetsbelastningar. Application Insights integreras med Azure-plattformen, inklusive Service Fabric.
Kluster- och arbetsbelastningsarkitekturer: Skapa en process för att övervaka förfallodatumet för klientcertifikat. Key Vault erbjuder till exempel en funktion som skickar ett e-postmeddelande när x% certifikatets livslängd har förflutit.
Kluster- och arbetsbelastningsarkitekturer: För förproduktionskluster använder du Azure Chaos Studio för att öka avbrott i tjänsten vid ett instansfel för vm-skalningsuppsättningar. Genom att öva på scenarier med avbrott i tjänsten kan du förstå vad som är i fara i din infrastruktur och hur du på bästa sätt kan åtgärda problemen om de uppstår.
Kluster- och arbetsbelastningsarkitekturer: Använd Azure Monitor för att övervaka händelser i kluster- och containerinfrastrukturen. Azure Monitor integreras väl med Azure-plattformen, inklusive Service Fabric.
Kluster- och arbetsbelastningsarkitekturer: Använd Azure Pipelines för din lösning för kontinuerlig integrering och distribution. Azure Pipelines integreras väl med Azure-plattformen, inklusive Service Fabric.

Fler förslag finns i Principer för grundpelare för driftskvalitet.

Prestandaeffektivitet

I följande avsnitt beskrivs konfigurationsrekommendationer som är specifika för Azure Service Fabric och prestandaeffektivitet.

När du diskuterar säkerhet med Azure Service Fabric är det viktigt att skilja mellan klusteråtgärd och arbetsbelastningsåtgärd. Klusterprestanda är ett delat ansvar mellan Service Fabric-klusteradministratören och deras resursprovider, medan arbetsbelastningsprestanda är en utvecklares domän. Azure Service Fabric har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan med rekommendationer nedan görs anrop för att ange om varje val är tillämpligt för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

Mer information om hur Azure Service Fabric kan minska prestandaproblem för din arbetsbelastning med Service Fabric-prestandaräknare finns i Bästa praxis för övervakning och diagnostik för Azure Service Fabric.

Checklista för design

Rekommendationer

Överväg följande rekommendationer för att optimera din Azure Service Fabric-konfiguration för prestandaeffektivitet:

Azure Service Fabric-rekommendation Förmån
Klusterarkitektur: Undanta Service Fabric-processerna från Windows Defender för att förbättra prestanda. Som standard är Windows Defender antivirus installerat på Windows Server 2016 och 2019. Om du vill minska prestandapåverkan och kostnader för resursförbrukning för Windows Defender, och om dina säkerhetsprinciper tillåter att du undantar processer och sökvägar för programvara med öppen källkod, kan du exkludera.
Klusterarkitektur: Överväg att använda autoskalning för klustret. Autoskalning ger stor elasticitet och möjliggör tillägg eller minskning av noder på begäran på en sekundär nodtyp. Det här automatiserade och elastiska beteendet minskar hanteringskostnaderna och den potentiella affärspåverkan genom att övervaka och optimera mängden noder som underhåller din arbetsbelastning.
Klusterarkitektur: Överväg att använda accelererat nätverk. Accelererat nätverk möjliggör en högpresterande sökväg som kringgår värden från datasökvägen, vilket minskar svarstiden, jitter- och CPU-användningen för de mest krävande nätverksarbetsbelastningarna.
Klusterarkitektur: Överväg att använda kryptering på värden i stället för Azure Disk Encryption (ADE). Den här krypteringsmetoden förbättrar ADE genom att stödja alla operativsystemtyper och avbildningar, inklusive anpassade avbildningar, för dina virtuella datorer genom att kryptera data i Azure Storage-tjänsten.
Arbetsbelastningsarkitektur: Granska Service Fabric-programmeringsmodellerna för att avgöra vilken modell som bäst passar dina tjänster. Service Fabric har stöd för flera programmeringsmodeller. Var och en har sina egna fördelar och nackdelar. Att känna till tillgängliga programmeringsmodeller kan hjälpa dig att göra de bästa valen för att utforma dina tjänster.
Arbetsbelastningsarkitektur: Använd löst kopplade mikrotjänster för dina arbetsbelastningar när det är lämpligt. Med mikrotjänster kan du få ut mesta möjliga av Service Fabrics funktioner.
Arbetsbelastningsarkitektur: Använd händelsedriven arkitektur för dina arbetsbelastningar när det är lämpligt. Med händelsedriven arkitektur kan du få ut mesta möjliga av Service Fabrics funktioner.
Arbetsbelastningsarkitektur: Använd bakgrundsbearbetning för dina arbetsbelastningar när det är lämpligt. Med bakgrundsbearbetning kan du få ut mesta möjliga av Service Fabrics funktioner.
Kluster- och arbetsbelastningsarkitekturer: Granska olika sätt att skala din lösning i Service Fabric. Du kan använda skalning för att aktivera maximal resursanvändning för din lösning.

Fler förslag finns i Principer för grundpelare för prestandaeffektivitet.

Azure Advisor-rekommendationer

Azure Advisor är en anpassad molnkonsult som hjälper dig att följa metodtipsen för att optimera dina Azure-distributioner. Här följer några rekommendationer som kan hjälpa dig att förbättra tillförlitlighet, säkerhet, kostnadseffektivitet, prestanda och driftseffektivitet när du använder Azure Service Fabric.

Säkerhet

  • Service Fabric-kluster bör ha egenskapen ClusterProtectionLevel inställd på EncryptAndSign. Det här är standardvärdet för hanterade kluster och kan inte ändras. Standardkluster: Se till att du anger ClusterProtectionLevel till EncryptAndSign.
  • Service Fabric-kluster bör endast använda Microsoft Entra-ID för klientautentisering.

Ytterligare resurser

I artikeln konfigurationsalternativ för Azure Service Fabric-hanterade kluster finns en lista över alla alternativ som du har när du skapar och underhåller klustret.

Läs grunderna i Azure-programarkitekturen för vägledning om hur du utvecklar dina arbetsbelastningar. Service Fabric kan endast användas som en värdplattform för containrar, men med väldefinierade arbetsbelastningar används Service Fabrics fullständiga funktioner.

Nästa steg

Använd dessa rekommendationer när du skapar ditt Service Fabric-hanterade kluster med hjälp av en ARM-mall eller via Azure-portalen: