Programmering

Azure Service Fabric: Hva du trenger å vite

Skytjenester som Azure er kjernen i massive distribuerte systemer og er vert for alle slags tjenester. Noen av dem er vert infrastruktur, noen av dem er containere og mikrotjenester, noen er utviklingsplattformer, og noen utnytter serverløse mønstre.

De trenger alle en ting: en administrasjons- og orkestrasjonsplattform. Generelle verktøy for tverrsky som Kubernetes tilbyr en vei til å levere et administrert containermiljø, men det er også et sted for tilpassede miljøer som fokuserer på behovene til en bestemt skyplattform. For Azure håndteres det av et verktøy som har vært der siden de første dagene av Microsofts offentlige sky: Azure Service Fabric.

Vi presenterer Azure Service Fabric

Skjult i grunnlaget for Azure, kan Service Fabric være vanskelig å beskrive. Men vi ser det hele tiden, i verktøyene vi bruker for å bygge vår egen cloud-native programvare. Det er kjernen i Azure's Event Hubs og IoT-plattform, dets SQL- og Cosmos DB-databaser og mange av bedriftens og forbrukertjenestene vi bruker hver dag. Med Azure Service Fabric får du tilgang til de samme verktøyene som Microsoft bruker for å kjøre og administrere sine egne tjenester, og bygge dem inn i din egen kode.

Hensikten med Azure Service Fabric er å gjøre det enkelt å distribuere og administrere mikrotjenester, og håndtere både stateful og stateless operasjoner på tvers av en PaaS Azure-forekomst. Det er ikke bare for Azure, fordi det lokale utviklingsverktøyet er en komplett versjon av Azure Service Fabric, noe som betyr at det vil kjøre på ethvert Windows-system. En Linux-versjon gjør den også bærbar over flere skyer, og håndterer eksisterende og tilpasset kode.

Azure Service Fabric administrerer applikasjonens livssyklus, med API-er som gir ekstra plattformtilgang utover rent frittstående kode. Den støtter også sin egen skuespiller / meldingsmikrotjenester samt å være vert for ASP.Net Core-kode. Tjenester kan kjøres naturlig som prosesser, eller du kan være vert for dem i containere, noe som gir deg muligheten til raskt å bringe eksisterende kode til Azure's PaaS. Beholdere blander seg med andre Azure Service Fabric-applikasjonsmodeller, slik at du raskt kan inkludere eksisterende funksjonalitet via lift-and-shift eller ved å inkludere spesifikke pakkede applikasjoner.

Kom i gang med Azure Service Fabric

Kanskje den raskeste måten å begynne å utvikle seg med Service Fabric er rammeverket Reliable Services. Dette er et sett med API-er som integreres med Azure Service Fabrics funksjoner for administrasjon av livssyklus for applikasjoner. Du kan skrive kode på hvilket som helst støttet språk, eller i ditt valg av applikasjonsrammeverk. Tjenester kan være statsløse eller statlige, med statsløse tjenester som bruker ekstern lagring for å håndtere tilstand. Det stateful-alternativet er mer interessant, fordi det bruker Service Fabrics egne verktøy for å administrere applikasjonstilstand. Du trenger ikke å vurdere skalering eller høy tilgjengelighet; alt håndteres for deg.

Hvis du har brukt C #s samlinger, vil du finne den pålitelige tjenestens pålitelige samlinger kjent. De holdes også i samme tilfelle som beregningen din, noe som reduserer ventetiden. Hvis en tjeneste mislykkes, kan den ta status når den starter på nytt. Å ha forskjellige tilstandsmodeller lar deg velge den modellen som fungerer best for tjenesten din. Enkle tjenester som bare krever inndata for å fungere, kan være statsløse, men hvis du jobber med kode som trenger å vite tidligere tilstand, må du bygge en pålitelig tjeneste.

Microsoft gjør det enkelt å bygge kjente nett- og applikasjonsendere på Azure Service Fabric med støtte for ASP.Net Core. Selv om den ikke er 100 prosent kodekompatibel med ASP.Net MVC, kan du overføre eksisterende kode til den nye plattformen. Det er støtte for å bygge både statsløse og stateful tjenester, overlevere orkestrering av applikasjoner og skalering til Azure Service Fabric.

Skalerbar samtidighet med skuespillere

Fødte i skyen-applikasjoner bør dra nytte av rammen for pålitelig skuespiller. Dette utvider Reliable Services til å implementere virtuelle skuespillere (som brukt av det åpne Project Orleans-rammeverket som er populært i spillendene). Å bruke skuespilleren / meldingsmønsteret til å håndtere mikrotjenester fungerer bra, fordi den underliggende samtidige systemmodellen skalerer seg raskt og kan håndtere mange aktører som opererer samtidig.

Pålitelig skuespiller er ikke for alle scenarier. Det fungerer best når koden din kan brytes ned i enkle datablokker som kan implementeres som ikke-blokkerende enkeltgjengede objekter som enten ikke har noen tilstand eller har sin egen tilstand. Det er best for helt nye applikasjoner, fordi det er vanskelig å spalte eksisterende kode. Å bygge en applikasjon ved hjelp av Reliable Actor kan være kompleks, selv når du har definert skuespillerne dine. Du må huske at mens skuespillere kan samle søppel, vil deres tilstand vedvare og nås når du ringer til en skuespiller med samme ID i fremtiden.

Pålitelig skuespiller løser mange komplekse distribuerte databehandlingsproblemer, selv om du må tenke nøye gjennom hvordan du tilordner objekter til skuespillere, og hvordan du vil bruke dem i applikasjonene dine.

Azure Service Fabric blir åpen kildekode

Microsoft har nylig kunngjort at det er åpen sourcing Service Fabric, og endrer utviklingsmodellen til en som vil godta tredjeparts pull-forespørsler, samt tillater en offentlig, åpen designprosess.

Å skifte til en åpen kildekodeutviklingsmodell, sammen med en åpen designprosess, er en massiv oppgave for en grunnleggende teknologi som Azure Service Fabric. Mens den første delen av åpen kildekode er Linux-basert, har Microsoft utviklingsteam indikert at den Windows-baserte koden som for tiden kjører på Azure, snart vil følge. Utviklingen vil foregå på GitHub, med mye av det innledende arbeidet som er fokusert på å fullføre overgangen fra Microsofts interne plattformer til en publikumsrettet prosess.

Microsoft har planlagt å levere en åpen kildekode Azure Service Fabric i noen tid nå - i hvert fall siden starten på Linux-grenen av koden. Fordi det både er nyere kode og bruker et annet verktøy enn Windows-versjonen, har det vært mye lettere å få den grenen i form for offentlig utgivelse. Windows-verktøyet er mer komplekst, med et tiår med historie som må avvikles og refaktureres. Mye av det skyldes bruken av kun Microsoft-utviklingsverktøy som ikke er tilgjengelig for omverdenen, pluss omarbeidet som kreves for å flytte det til offentlig tilgjengelige verktøy.

Å ha et verktøy som Azure Service Fabric til din disposisjon gir deg mange flere alternativer enn tradisjonell PaaS, spesielt når du bygger nye applikasjoner fra bunnen av. Støtte for containere gir muligheten til å hente inn pakkede applikasjoner ved siden av koden din. På samme måte kan bruk av kjente rammer og mønstre forkorte læringskurven. Med en åpen kildekode-fremtid foran seg, kan Azure Service Fabric være multicloud-applikasjonsrammeverket du leter etter.