Dela via


Well-Architected Framework-perspektiv på 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.

Den här artikeln förutsätter att du som arkitekt har granskat beräkningsbeslutsträdet och valt Service Fabric som beräkningsplattform för din arbetsbelastning. Vägledningen i den här artikeln innehåller arkitektoniska rekommendationer som mappas till principerna för Well-Architected Framework-pelarna.

Viktig

Använda den här guiden

Varje avsnitt har en checklista för design som presenterar arkitekturområden som är viktiga tillsammans med designstrategier som är lokaliserade till teknikomfånget.

Dessutom ingår rekommendationer för de teknikfunktioner som kan hjälpa till att materialisera dessa strategier. Rekommendationerna representerar inte en fullständig lista över alla konfigurationer som är tillgängliga för Azure Service Fabric och dess beroenden. I stället listar de de viktigaste rekommendationerna som mappats till designperspektiven. Använd rekommendationerna för att skapa ditt konceptbevis eller för att optimera dina befintliga miljöer.

Grundläggande arkitektur som visar de viktigaste rekommendationerna: Microservices-arkitektur på Azure Service Fabric.

Teknikomfång

Den här granskningen fokuserar på de relaterade besluten för följande Azure-resurser:

  • Service Fabric

Not

Den här tjänstguiden bygger på vägledning som finns i Virtual Machines och Scale Sets tjänstguide. Service Fabric-noder backas upp av VM-skalningsuppsättningar, så se tjänstguiden för rekommendationer om hur du använder beräkningsserverdelen för dina Service Fabric-noder.

När du diskuterar arkitekturöverväganden och konfigurationsrekommendationer med Azure Service Fabric är det viktigt att skilja mellan kluster och arbetsbelastning. Klusterkonfiguration är ett delat ansvar mellan Service Fabric-klusteradministratören och deras resursprovider, medan arbetsbelastningskonfiguration är en utvecklares domän. Azure Service Fabric har överväganden och rekommendationer för båda dessa roller.

I designchecklista och lista med rekommendationer nedan görs anrop för att ange om varje val gäller för klusterarkitektur, arbetsbelastningsarkitektur eller båda.

Tillförlitlighet

Syftet med grundpelarna för tillförlitlighet är att tillhandahålla fortsatt funktionalitet genom att bygga upp tillräckligt med motståndskraft och möjlighet att snabbt återhämta sig från fel.

Principer för tillförlitlighetsdesign tillhandahålla en övergripande designstrategi som tillämpas för enskilda komponenter, systemflöden och systemet som helhet.

Checklista för design

Påbörja din designstrategi baserat på checklistan för tillförlitlighetsdesigngranskning. Fastställ dess relevans för dina affärskrav samtidigt som du tänker på [erbjudandespecifika aspekter]. Utöka strategin till att omfatta fler metoder efter behov.

  • (Kluster) Fastställa lämplig tillförlitlighetsnivå för klustret baserat på det övergripande tillförlitligt målmåttet för arbetsbelastningen. Den tillförlitliga nivån för klustret som du identifierar avgör det minsta antalet noder som ska distribueras för din primära nodtyp. Se dokumentationen om kapacitetsplanering för att lära dig mer om att göra dessa beslut.
  • (Kluster) För kritiska arbetsbelastningar bör du överväga att använda tillgänglighetszoner för dina Service Fabric-kluster.
  • (Kluster) För produktionsscenarier använder du standardkluster-SKU med en Silver-hållbarhetsnivå (5 virtuella maskiner) eller mer. Den här SKU:n erbjuder högre tillförlitlighetsfunktioner än basic-SKU:n, som bör användas för icke-produktionsscenarier.
  • (Kluster) Skapa ytterligare sekundära nodtyper för dina arbetsbelastningar för att isolera olika arbetsbelastningstyper. Detta kan hjälpa dig att separera klientdelstjänster från serverdelstjänster, så att du kan hantera och skala dessa tjänster oberoende av varandra. Varje nodtyp backas upp av sin egen skalningsuppsättning.

Rekommendationer

Rekommendation Fördel
(Kluster) API Management (APIM) kan integrera med Service Fabric direkt. Överväg att använda den för att exponera och avlasta övergripande funktioner för API:er som finns i klustret. APIM är en funktionsrik programgateway som hjälper dig att på ett säkert sätt publicera, hantera och övervaka API:er som distribuerats till Service Fabric-klustret.
(Arbetsbelastning) För tillståndskänsliga arbetsbelastningsscenarier bör du överväga att använda Reliable Services. Reliable Services-modellen gör att dina tjänster kan hålla sig uppe när du upplever systemfel eller nätverksproblem, eller i fall där själva tjänsterna påträffar fel. För tillståndsbevarande tjänster bevaras ditt tillstånd när funktionsfel inträffar.

Säkerhet

Syftet med säkerhetspelare är att tillhandahålla konfidentialitet, integritet och tillgänglighet garantier för arbetsbelastningen.

Designprinciperna för Security tillhandahåller en övergripande designstrategi för att uppnå dessa mål genom att tillämpa metoder för den tekniska designen av Service Fabric.

Checklista för design

Basera din designstrategi på checklistan för designgranskning för säkerhet.

  • (Kluster och arbetsbelastning) Bekanta dig med service fabric-produktsäkerhetsvägledning. Se bästa praxis för säkerhet, klustersäkerhetsscenarieroch Service Fabric-program och tjänstsäkerhet.
  • (Kluster) Använd nätverkssegmentering och kontroller genom att konfigurera NSG:er för att begränsa trafikflödet mellan undernät och nodtyper.
  • (Kluster) Hantera programhemligheter och klientcertifikat på ett säkert sätt med hjälp av inbyggda verktyg. Programhemligheter ska hanteras med Service Fabric Secret Store och certifcates ska hanteras med Key Vault.
  • (Kluster) Överväg att ta med din egen lastbalanserare, vilket gör att du kan använda en intern lastbalanserare och definiera olika lastbalanserare och NSG:er för varje nodtyp.
  • (Kluster) Kontrollera åtkomsten till klustret på ett säkert sätt genom att aktivera Microsoft Entra-integrering, så att användarna kan autentisera med sina Entra-autentiseringsuppgifter. Du kan också använda klusterklient- och administratörscertifikat. Distribuera inte klusterklientcertifikaten mellan användare av Service Fabric Explorer.
  • (Kluster och arbetsbelastning) Skapa en process för att övervaka förfallodatumet för klientcertifikat.
  • (Kluster och arbetsbelastning) Underhålla separata kluster för utveckling, mellanlagring och produktion. Produktionsmiljöer kräver vanligtvis striktare säkerhetskontroller än icke-produktionsmiljöer, och att isolera miljöer från varandra lägger till ett lager av säkerhet om en miljö komprometteras.

Rekommendationer

Rekommendation Fördel
(Kluster) Kontrollera att de rätta portarna öppnas för programdistribution och arbetslaster. Den här konfigurationen säkerställer att kommunikationen mellan Service Fabric-resurserna och resten av arbetsbelastningen skyddas.
(Kluster) 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. Genom att använda ett separat krypteringscertifikat säkerställs isolering mellan certifikat, vilket minskar risken för en enskild felpunkt och möjliggör mer detaljerad åtkomstkontroll.
(Kluster) Tillämpa en Access Control List (ACL) på ditt klientcertifikat för ditt Service Fabric-kluster. Att använda en ACL ger ytterligare en autentiseringsnivå, vilket ger mer detaljerad kontroll över vem som kan komma åt certifikaten.
(Kluster) 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.
(Arbetsbelastning) 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å.
(Arbetsbelastning) 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 arbetsbelastning) När du är värd för ej betrodda program använder du den starkaste sandboxningstekniken, tar bort åtkomsten till Service Fabric-körtid och följer andra Service Fabric-bästa praxis. Genom att följa de rekommenderade metoderna kan du se till att endast betrodda och verifierade program får interagera med kritiska komponenter, vilket begränsar den inverkan som ej betrodda program med sårbarheter eller skadlig kod kan ha på den normala driften av klustret.

Kostnadsoptimering

Kostnadsoptimering fokuserar på identifiering av utgiftsmönster, prioritering av investeringar inom kritiska områden och optimering i andra för att hålla sig inom organisationens budget samtidigt som affärskraven uppfylls.

Designprinciperna för kostnadsoptimering tillhandahåller en övergripande designstrategi för att uppnå dessa mål och göra nödvändiga kompromisser i den tekniska designen relaterad till Service Fabric och dess miljö.

Checklista för design

Börja din designstrategi baserat på designgranskningschecklistan för kostnadsoptimering av investeringar. Finjustera designen så att arbetsbelastningen är i linje med den budget som allokeras för arbetsbelastningen. Din design bör använda rätt Azure-funktioner, övervaka investeringar och hitta möjligheter att optimera över tid.

  • (Arbetsbelastning och kluster) Beräkna den intiella kostnaden med hjälp av priskalkylatorn för Azure. Du debiteras endast för de beräkningsinstanser, lagring, nätverksresurser och IP-adresser som du väljer när du skapar ett Service Fabric-kluster. Det kostar ingenting att använda Service Fabric. Information om hur du kommer igång med kostnadsmodellering finns i exempel på kostnadsberäkningsprocess för programplanering.
  • (Kluster) Välj lämpliga VM-SKU:er. Välj virtuella datorer baserat på arbetsbelastningsegenskaper. Är arbetsbelastningen processorintensiv eller kör den avbrottsbara processer?
  • (Kluster) Välj lämpliga kluster-SKU:er. Använd Standard för produktionsmiljöer och Basic för icke-produktionsmiljöer, såvida det inte finns en övertygande anledning att göra något annat. Använd lämpliga nodtyper och storlekar i varje miljö.
  • (Kluster och arbetsbelastning) Välj lämpliga hanterade disknivåer och storlekar. Granska WAF -tjänstguiden för disklagring. Undvik att använda VM-SKU:er med temporära diskerbjudanden för att undvika att betala för onödiga resurser.

Rekommendationer

Rekommendation Fördel
(Kluster) Om du inte har krav på att upprätthålla tillståndskänslighet kan du välja en VM SKU med tillfälligt diskstöd. 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 arbetsbelastning) Justera VM SKU-utbud utifrån arbetsbelastningskrav. Kontrollera att du har identifierat rätt nodtyper, som finns på skalningsuppsättningar, för att uppfylla dina krav. Genom att matcha ditt val med dina arbetsbelastningskrav kan du undvika att betala för dyra VM-SKU:er som du kanske inte behöver.
(Kluster och arbetsbelastning) Justera val av disktyp med arbetsbelastningskrav. Genom att välja rätt typ av hanterad disk kan du undvika att betala för dyra typer som du kanske inte behöver.

Operational Excellence

Operational Excellence fokuserar främst på procedurer för utvecklingsmetoder, observerbarhet och versionshantering.

Designprinciperna för Operational Excellence tillhandahåller en hög nivå av designstrategi för att uppnå dessa mål med avseende på driftskraven för arbetsbelastningen.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning och Operational Excellence, för att definiera processer för observerbarhet, testning och distribution som rör Service Fabric.

  • (Kluster och arbetsbelastning) Integrera dina Service Fabric-komponenter, inklusive kluster, relaterad infrastruktur och själva programmet, i din övervaknings- och aviseringsplattform. Mer information finns i artikeln bästa praxis för övervakning.
  • (Kluster och arbetsbelastning) Använd Service Fabric -hälsomodellen för att kontinuerligt övervaka hälsotillståndet för din lösning. Det här verktyget bör komplettera din övergripande arbetsbelastningshälsomodell
  • (Kluster och arbetsbelastning) 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% av certifikatets livslängd har förflutit.
  • (Kluster och arbetsbelastning) Använd metoder för kontinuerlig integrering och kontinuerlig distribution för att hantera dina klusterdistributioner. Använd ett specialbyggt verktyg som Azure Pipelines eller Github Actions för att hantera dina CI/CD-pipelines, vilket gör att du kan hantera alla dina arbetsbelastningsdistributioner centralt i alla miljöer med rätt strategier för källkontroll.

Rekommendationer

Rekommendation Fördel
(Arbetsbelastning) Använd Application Insights för att övervaka dina arbetsbelastningar. Application Insights tillhandahåller omfattande övervakning av programprestanda (APM) för webbappar i realtid, så att du kan samla in och analysera programtelemetri, vilket förbättrar programmets hälsa och prestandaövervakning.
(Kluster och arbetsbelastning) Använd Azure Monitor för att övervaka händelser i kluster- och containerinfrastrukturen. Azure Monitor tillhandahåller omfattande övervaknings- och diagnostikfunktioner så att du kan samla in och analysera loggar och mått från dina program och Azure-infrastruktur. Azure Monitor integreras väl med Azure-plattformen, inklusive Service Fabric.
(Kluster) Implementera lämpliga principer för klusterhälsa som en del av din hälsomodellering. Med principerna kan du anpassa hur fel tolkas ur ett klusterhälsoperspektiv. Du kan till exempel ange den maximala tillåtna procentandelen noder som kan vara ohälsosamma innan klustret betraktas som felaktigt.
(Kluster) Implementera lämpliga principer för program- och tjänsttypshälsa som en del av din hälsomodellering. Programhälsoprincipen beskriver hur utvärdering av händelser och aggregering av underordnade tillstånd görs för program och deras barn. Service Fabric förutsätter att entiteten inte är felfri om den har en hälsorapport eller ett underordnat tillstånd för varning eller fel.
(Kluster och arbetsbelastning) Använd Azure Chaos Studio- för att mata in fel i din lösning som en del av din teststrategi. Genom att avsiktligt införa fel i din lösning kan du identifiera potentiella felpunkter och öva på dina åtgärder för incidenthantering.
(Kluster och arbetsbelastning) Använd Azure Pipelines för din CI/CD-lösning (kontinuerlig integrering och distribution). Med hjälp av en CI/CD-lösning som Azure Pipelines kan du hantera dina distributioner effektivt, konsekvent och säkert. Azure Pipelines har inbyggt stöd för Service Fabric-distributioner.

Prestandaeffektivitet

Prestandaeffektivitet handlar om upprätthålla användarupplevelsen även när belastningen ökar genom att hantera kapaciteten. Strategin omfattar skalning av resurser, identifiering och optimering av potentiella flaskhalsar och optimering för högsta prestanda.

Designprinciperna för prestandaeffektivitet tillhandahåller en designstrategi på hög nivå för att uppnå dessa kapacitetsmål med tanke på den förväntade användningen.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för prestandaeffektivitet. Definiera en baslinje som baseras på viktiga prestandaindikatorer för Service Fabric.

  • (Kluster) Dra nytta av prestandaoptimering och förbättra funktioner som krävs av arbetsbelastningen. Se vm-tjänstguiden för rekommendationer relaterade till den underliggande beräkningsplattformen.
  • (Kluster) Distribuera vm- och diskstorlekar som uppfyller dina krav på perfomance utan onödiga utgifter för outnyttjad kapacitet. Se till att du enkelt kan lägga till kapacitet för att uppfylla dina framtida tillväxtplaner.
  • (Arbetsbelastning) Förstå de programmeringsmodeller som stöds av Service Fabric och välj den bästa modellen för dina arbetsbelastningskrav. Varje programmeringsmodell har unika fördelar och nackdelar, och dina specifika arbetsbelastningskrav kan anpassas till en modell bättre än andra.
  • (Arbetsbelastning) Använd etablerade molnarkitekturmönster för att utforma din arbetsbelastning. Microsservices, händelsedrivnaoch bakgrundsbearbetning arkitekturmönster är alla bra kandidater för Service Fabric-programdesign.

Rekommendation

Rekommendation Fördel
(Kluster) Undanta Service Fabric-processer som körs på dina virtuella Windows-datorer från Windows Defender om dina säkerhetsprinciper tillåter att du undantar processer och sökvägar för programvara med öppen källkod. Exkludering av Service Fabric-processer minskar prestandapåverkan och resursförbrukning som uppstår för Windows Defender
(Kluster) Överväg att använda autoskalning för ditt kluster för att möjliggöra att noder läggs till eller tas bort på begäran, baserat på en sekundär nodtyp. Automatisk skalning minskar hanteringskostnaderna och potentiella affärspåverkan genom att övervaka och optimera mängden noder som underhåller din arbetsbelastning.
(Kluster) Överväg att använda Accelererat Nätverk. Accelererade näten möjliggör en högprestanda-väg som kringgår värddatorn från datapaketets väg, vilket minskar latens, jitter och CPU-användningen för de mest krävande nätverksuppgifterna.
(Kluster) Överväg att använda kryptering på värd i stället för Azure Disk Encryption (ADE). Kryptering på värden 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.
(Arbetsbelastning) Implementera Service Fabric-programmeringsmodeller passar bäst för din arbetsbelastning. Genom att välja en lämplig programmeringsmodell kan du dra nytta av inbyggda funktioner som stöder arbetsbelastningskrav som tillståndshantering, samtidighet och återanvändning av din befintliga kodbas. Du kan också se till att dina distributionsstandarder upprätthålls genom att välja en programmeringsmodell som överensstämmer med dessa standarder.
(Kluster och arbetsbelastning) Implementera skalning för att uppfylla dina affärskrav. Hitta rätt skalningsmekanism för din arbetsbelastning.. Du kan använda skalning för att aktivera maximal resursanvändning för din lösning.

Azure-policyer

Azure tillhandahåller en omfattande uppsättning inbyggda principer som rör Service Fabric och dess beroenden. Några av föregående rekommendationer kan granskas via Azure Policy. Du kan till exempel kontrollera om:

  • Service Fabric-kluster är konfigurerade att vara zonredundanta.
  • Service Fabric-kluster har egenskapen ClusterProtectionLevel inställd på EncryptAndSign.
  • Service Fabric-kluster är konfigurerade att endast använda Azure Active Directory för klientautentisering.

För en omfattande styrning, granska de inbyggda definitionerna Azure Policy för Service Fabric och andra principer som kan påverka säkerheten i [cloud-infrastructure-area].

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 Service Fabrics tillförlitlighet, säkerhet, kostnadseffektivitet, prestanda och driftseffektivitet.

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

Läs grunderna i Azure-programarkitektur 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.

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