Programmering

Azure Service Fabric: Hvad du har brug for at vide

Cloud-tjenester som Azure er grundlæggende massive distribuerede systemer, der er vært for alle former for tjenester. Nogle af dem er hostet infrastruktur, nogle af dem er containere og mikrotjenester, nogle er udviklingsplatforme, og nogle udnytter serverløse mønstre.

De har alle brug for en ting: en ledelses- og orkestrationsplatform. Generelle cross-cloud-værktøjer som Kubernetes tilbyder en vej til at levere et administreret containermiljø, men der er også et sted for brugerdefinerede miljøer, der fokuserer på behovene i en bestemt skyplatform. For Azure håndteres det af et værktøj, der har været der siden de tidligste dage i Microsofts offentlige sky: Azure Service Fabric.

Introduktion til Azure Service Fabric

Skjult væk i fundamentet for Azure kan Service Fabric være svært at beskrive. Men vi ser det hele tiden i de værktøjer, vi bruger til at bygge vores egen cloud-native software. Det er kernen i Azure's Event Hubs og IoT-platform, dets SQL- og Cosmos DB-databaser og mange af de virksomheds- og forbrugertjenester, vi bruger hver dag. Med Azure Service Fabric får du adgang til de samme værktøjer, som Microsoft bruger til at køre og administrere sine egne tjenester og bygge dem ind i din egen kode.

Hensigten med Azure Service Fabric er at gøre det let at implementere og administrere mikrotjenester, der håndterer både statefulde og statsløse operationer på tværs af en PaaS Azure-forekomst. Det er ikke kun for Azure, fordi det lokale udviklingsværktøj er en komplet version af Azure Service Fabric, hvilket betyder, at det kører på ethvert Windows-system. En Linux-version gør det også bærbart på tværs af flere skyer og håndterer eksisterende og brugerdefineret kode.

Azure Service Fabric administrerer din applikations livscyklus med API'er, der giver yderligere platformadgang ud over rent enkeltstående kode. Det understøtter også sin egen skuespiller / beskedmikrotjeneste såvel som hosting af ASP.Net Core-kode. Tjenester kan køre indbygget som processer, eller du kan være vært for dem i containere, hvilket giver dig mulighed for hurtigt at bringe eksisterende kode til Azure's PaaS. Containere blandes med andre Azure Service Fabric-applikationsmodeller, så du hurtigt kan inkludere eksisterende funktionalitet via lift-and-shift eller ved at inkludere specifikke pakkede applikationer.

Kom godt i gang med Azure Service Fabric

Måske er den hurtigste måde at begynde at udvikle med Service Fabric dens Reliable Services-ramme. Dette er et sæt API'er, der integreres med Azure Service Fabrics funktioner til styring af applikations livscyklus. Du kan skrive kode på ethvert understøttet sprog eller i dit valg af applikationsramme. Tjenester kan være statsløse eller statslige, hvor statsløse tjenester bruger eksternt lager til håndtering af tilstand. Den statefulde mulighed er mere interessant, fordi den bruger Service Fabrics egne værktøjer til at administrere applikationstilstand. Du behøver ikke overveje skalering eller høj tilgængelighed; det hele håndteres for dig.

Hvis du har brugt C # 's samlinger, finder du den pålidelige tjenestes pålidelige samlinger velkendte. De holdes også i samme tilfælde som din beregning, hvilket reducerer ventetiden. Hvis en tjeneste mislykkes, kan den genoptage tilstanden ved genstart. At have forskellige tilstandsmodeller giver dig mulighed for at vælge den model, der fungerer bedst til din service. Enkle tjenester, der kun kræver inputdata for at fungere, kan være statsløse, men hvis du arbejder med kode, der skal kende den tidligere tilstand, skal du opbygge en pålidelig service.

Microsoft gør det let at opbygge velkendte web- og applikationsbagdele på Azure Service Fabric med support til ASP.Net Core. Selvom det ikke er 100 procent kodekompatibelt med ASP.Net MVC, kan du migrere eksisterende kode til den nye platform. Der er support til opbygning af både statsløse og statefulde tjenester, aflevering af applikationsorkestrering og skalering til Azure Service Fabric.

Skalerbar samtidighed med skuespillere

Fødte-i-sky-applikationer bør drage fordel af den pålidelige skuespilleramme. Dette udvider pålidelige tjenester til at implementere virtuelle aktører (som brugt af den åbne Project Orleans-ramme, der er populær inden for spil bag ender). Brug af skuespilleren / beskedmønsteret til at håndtere mikrotjenester fungerer godt, fordi dens underliggende samtidige systemmodel skalerer hurtigt og kan håndtere mange skuespillere, der fungerer på samme tid.

Pålidelig skuespiller er ikke for alle scenarier. Det fungerer bedst, når din kode kan opdeles i enkle blokke af beregning, der kan implementeres som ikke-blokerende objekter med enkelt gevind, der enten ikke har nogen tilstand eller holder deres egen tilstand. Det er bedst til helt nye applikationer, fordi det er svært at nedbryde eksisterende kode. Opbygning af en applikation ved hjælp af Reliable Actor kan være kompleks, selv når du har defineret dine aktører. Du skal huske på, at mens skuespillere kan blive indsamlet skrald, vil deres tilstand vedblive og er tilgængelig, når du ringer til en skuespiller med samme ID i fremtiden.

Pålidelig skuespiller løser mange komplekse distribuerede computerproblemer, selvom du bliver nødt til at overveje nøje, hvordan du kortlægger objekter til skuespillere, og hvordan du bruger dem i dine applikationer.

Azure Service Fabric bliver open source

Microsoft har for nylig meddelt, at det er open-sourcing Service Fabric, der ændrer udviklingsmodellen til en, der accepterer tredjeparts pull-anmodninger samt giver mulighed for en offentlig, åben designproces.

Skift til en open source-udviklingsmodel sammen med en åben designproces er en massiv opgave for en grundlæggende teknologi som Azure Service Fabric. Mens den første tranche af open source-kode er Linux-baseret, har Microsofts udviklingsteam angivet, at den Windows-baserede kode, der i øjeblikket kører på Azure, snart følger. Udviklingen vil ske på GitHub, hvor meget af det indledende arbejde fokuserer på at fuldføre overgangen fra Microsofts interne platforme til en offentligt vendt proces.

Microsoft har planlagt at levere en open source Azure Service Fabric i nogen tid nu - i det mindste siden starten på Linux-grenen af ​​koden. Fordi det både er nyere kode og bruger et andet værktøj end Windows-versionen, har det været meget lettere at få den gren i form til offentlig frigivelse. Windows-værktøjet er mere komplekst med et årti eller deromkring historie, der skal afsløres og refaktoriseres. Meget af det skyldes brugen af ​​kun Microsoft-udviklingsværktøjer, der ikke er tilgængelige for omverdenen, plus den omarbejde, der kræves for at flytte det til offentligt tilgængelige værktøjer.

At have et værktøj som Azure Service Fabric til din rådighed giver dig mange flere muligheder end traditionel PaaS, især når du bygger nye applikationer fra bunden. Support til containere tilføjer muligheden for at hente pakkede applikationer sammen med din kode. Tilsvarende kan brug af velkendte rammer og mønstre forkorte læringskurven. Med en open source-fremtid foran sig kunne Azure Service Fabric være den multicloud-applikationsramme, du leder efter.