Dela via


Sammanfattning: Skapa molnbaserade appar

Dricks

Det här innehållet är ett utdrag från eBook, Architecting Cloud Native .NET Applications for Azure, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Sammanfattningsvis är här viktiga slutsatser från den här guiden:

  • Molnbaserat handlar om att utforma moderna program som omfattar snabba förändringar, storskalighet och motståndskraft i moderna, dynamiska miljöer som offentliga, privata moln och hybridmoln.

  • Cloud Native Computing Foundation (CNCF) är ett inflytelserikt konsortium med öppen källkod med över 300 större företag. Den ansvarar för att driva implementeringen av molnbaserad databehandling i teknik- och molnstackar.

  • CNCF-riktlinjer rekommenderar att molnbaserade program omfattar sex viktiga pelare som visas i bild 11-1:

    Cloud-native foundational pillars

    Bild 11-1. Molnbaserade grundpelare

  • Dessa molnbaserade pelare är:

    • Molnet och dess underliggande tjänstmodell
    • Moderna designprinciper
    • Mikrotjänster
    • Containerisering och containerorkestrering
    • Molnbaserade säkerhetskopieringstjänster, till exempel databaser och meddelandeköer
    • Automatisering, inklusive infrastruktur som kod- och koddistribution
  • Kubernetes är värdmiljön för de flesta molnbaserade program. Mindre, enkla tjänster finns ibland på serverlösa plattformar, till exempel Azure Functions. Bland många viktiga automatiseringsfunktioner tillhandahåller båda miljöerna automatisk skalning för att hantera fluktuerande arbetsbelastningsvolymer.

  • Tjänstkommunikation blir ett viktigt designbeslut när du skapar ett molnbaserat program. Program exponerar vanligtvis en API-gateway för att hantera klientkommunikation på klientsidan. Sedan strävar serverdelsmikrotjänster efter att kommunicera med varandra och implementera asynkrona kommunikationsmönster när det är möjligt.

  • gRPC är ett modernt ramverk med höga prestanda som utvecklar RPC-protokollet (age-old remote procedure call). Molnbaserade program omfattar ofta gRPC för att effektivisera meddelanden mellan serverdelstjänster. gRPC använder HTTP/2 för sitt transportprotokoll. Det kan vara upp till 8 x snabbare än JSON-serialisering med meddelandestorlekarna 60–80 % mindre. gRPC öppen källkod och hanteras av Cloud Native Computing Foundation (CNCF).

  • Distribuerade data är en modell som ofta implementeras av molnbaserade program. Program separerar affärsfunktioner i små, oberoende mikrotjänster. Varje mikrotjänst kapslar in sina egna beroenden, data och tillstånd. Den klassiska modellen för delad databas utvecklas till en av många mindre databaser, som var och en överensstämmer med en mikrotjänst. När röken rensas framträder vi med en design som exponerar en database-per-microservice modell.

  • No-SQL-databaser refererar till högpresterande, icke-relationella datalager. De utmärker sig i sin användarvänlighet, skalbarhet, motståndskraft och tillgänglighetsegenskaper. Tjänster med hög volym som kräver svarstid under andra sekund gynnar NoSQL-datalager. Spridningen av NoSQL-tekniker för distribuerade molnbaserade system kan inte överskattas.

  • NewSQL är en ny databasteknik som kombinerar den distribuerade skalbarheten för NoSQL och ACID-garantierna för en relationsdatabas. NewSQL-databaser riktar in sig på affärssystem som måste bearbeta stora mängder data i distribuerade miljöer med fullständig transaktions-/ACID-efterlevnad. Cloud Native Computing Foundation (CNCF) har flera NewSQL-databasprojekt.

  • Återhämtning är systemets förmåga att reagera på fel och fortfarande vara funktionell. Molnbaserade system omfattar distribuerad arkitektur där fel är oundvikligt. Program måste konstrueras för att svara elegant på fel och snabbt återgå till ett fullt fungerande tillstånd.

  • Tjänstnät är ett konfigurerbart infrastrukturlager med inbyggda funktioner för att hantera tjänstkommunikation och andra övergripande utmaningar. De frikopplar övergripande ansvarsområden från din affärskod. Dessa ansvarsområden flyttas till en tjänstproxy. Proxyn Sidecar patternkallas för och distribueras i en separat process för att tillhandahålla isolering från din affärskod.

  • Observerbarhet är ett viktigt designövervägande för molnbaserade program. När tjänsterna distribueras över ett kluster med noder blir centraliserad loggning, övervakning och aviseringar obligatoriska. Azure Monitor är en samling molnbaserade verktyg som utformats för att ge insyn i systemets tillstånd.

  • Infrastruktur som kod är en allmänt accepterad metod som automatiserar plattformsetablering. Infrastrukturen och distributionerna är automatiserade, konsekventa och repeterbara. Med verktyg som Azure Resource Manager, Terraform och Azure CLI kan du deklarativt skripta den molninfrastruktur som du behöver.

  • Kodautomatisering är ett krav för molnbaserade program. Moderna CI/CD-system bidrar till att uppfylla den här principen. De tillhandahåller separata bygg- och distributionssteg som hjälper till att säkerställa konsekvent kod och kvalitetskod. Byggfasen omvandlar koden till en binär artefakt. Versionssteget hämtar den binära artefakten, tillämpar konfigurationen av den externa miljön och distribuerar den till en angiven miljö. Azure DevOps och GitHub är fullständiga DevOps-miljöer.