Dela via


Granskning av Azure Well-Architected Framework – 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 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.

Den här artikeln beskriver främst den hanterade klustermodellen för enkelhetens skull. Pratbubblar görs dock för eventuella särskilda överväganden som gäller för standardklustermodellen .

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

  • Tillförlitlighet
  • Säkerhet
  • Kostnadsoptimering
  • Utmärkt driftseffektivitet
  • Prestandaeffektivitet

Förutsättningar

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 över rekommendationer nedan görs anrop för att ange om varje val gäller 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 lägga till tillförlitlighet 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: I produktionsscenarier använder du lastbalanseraren på standardnivå. Hanterade kluster skapar ett offentligt Azure-Standard Load Balancer 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 tillförlitlighet för tjänsten:

Azure Service Fabric-rekommendation Fördelar
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 SKU-hanterat standardkluster ger motsvarande hållbarhetsnivå Silver. För att uppnå detta med hjälp av standardklustermodellen måste du använda 5 virtuella datorer (eller mer).
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 med Service Fabric direkt.
Arbetsbelastningsarkitektur: Överväg att använda Reliable Services för tillståndskänsliga arbetsbelastningsscenarier. Reliable Services-modellen gör att dina tjänster kan vara uppe även i otillförlitliga miljöer där dina datorer misslyckas eller stöter på nätverksproblem, eller i fall där tjänsterna själva 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 grundpelare för tillförlitlighet.

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 över rekommendationer nedan görs anrop för att ange om varje val gäller 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-arbetsbelastning 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. Kontrollera 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: För klientautentisering använder du administratörs- och skrivskyddade klientcertifikat och/eller Microsoft Entra autentisering.
  • Kluster- och arbetsbelastningsarkitekturer: Skapa en process för att övervaka utgångsdatumet för klientcertifikat.
  • Kluster- och arbetsbelastningsarkitekturer: Underhåll separata kluster för utveckling, mellanlagring och produktion.

Rekommendationer

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

Azure Service Fabric-rekommendation Fördelar
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 (som exponerar en webbplats direkt) och ett serverdelsundernät (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 Access Control lista (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 gränser 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 service fabric-metodtipsen 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 efterlevnad 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 ställer in ClusterProtectionLevel på EncryptAndSign.
  • Service Fabric-kluster bör endast använda Microsoft Entra-ID för klientautentisering.

Alla inbyggda principdefinitioner som är 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 över rekommendationer nedan görs anrop för att ange om varje val gäller för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

För optimering av klusterkostnader 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ördelar
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 som 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-valet och den hanterade diskstorleken med arbetsbelastningskraven. Genom att matcha 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.

Utmärkt driftseffektivitet

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

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 över rekommendationer nedan görs anrop för att ange om varje val gäller 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 driftseffektivitet.

Rekommendationer

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

Azure Service Fabric-rekommendation Fördelar
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 utgångsdatumet för klientcertifikat. Till exempel erbjuder Key Vault 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 granska tjänstavbrott vid ett instansfel i vm-skalningsuppsättningen. Genom att öva på scenarier med avbrott i tjänsten kan du förstå vad som är i riskzonen i din infrastruktur och hur du bäst 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 den operativa utmärkthetspelare.

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 domänen för en utvecklare. Azure Service Fabric har överväganden och rekommendationer för båda dessa roller.

I designchecklistan och listan över rekommendationer nedan görs anrop för att ange om varje val gäller 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 Metodtips för övervakning och diagnostik för Azure Service Fabric.

Checklista för design

Rekommendationer

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

Azure Service Fabric-rekommendation Fördelar
Klusterarkitektur: Undanta Service Fabric-processerna från Windows Defender för att förbättra prestanda. Som standard installeras Windows Defender antivirus på Windows Server 2016 och 2019. Om du vill minska prestandapåverkan och omkostnader för resursförbrukning som uppstår för Windows Defender, och om dina säkerhetsprinciper tillåter att du exkluderar 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 potentiella affärspåverkan genom att övervaka och optimera mängden noder som betjänar 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 bestämma vilken modell som bäst passar dina tjänster. Service Fabric stöder flera programmeringsmodeller. Var och en har sina egna fördelar och nackdelar. Att känna till de tillgängliga programmeringsmodellerna kan hjälpa dig att göra de bästa alternativen för att utforma dina tjänster.
Arbetsbelastningsarkitektur: Använd löst kopplade mikrotjänster för dina arbetsbelastningar dä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 dä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 där det är lämpligt. Med bakgrundsbearbetning kan du få ut mesta möjliga av Service Fabrics funktioner.
Kluster- och arbetsbelastningsarkitekturer: Granska de olika sätt som du kan skala din lösning på 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 bästa praxis 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 ska ha egenskapen ClusterProtectionLevel inställd på EncryptAndSign. Detta är standardvärdet för hanterade kluster och kan inte ändras. Standardkluster: Se till att du ställer in ClusterProtectionLevel på EncryptAndSign.
  • Service Fabric-kluster bör endast använda Microsoft Entra-ID för klientautentisering.

Ytterligare resurser

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

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

Nästa steg

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