Status for mikrotjenester ifølge Temporal Technologies

  • Jul 19, 2023

Teknik omkring knudefejl er afgørende for, at cloud-native apps kan fortsætte med at fungere. Temporal stjæler en side fra Java-historien med middleware til tilstandsstyring designet til at håndtere fejl.

ur.jpg
Shutterstock

For slutbrugeren er det meningen, at cloud-native tjenester skal forenkle livet og give mere smidighed. Alligevel kan de for udvikleren gøre livet langt mere komplekst på grund af deres distribuerede natur. Blandt udfordringerne er at administrere staten, noget der er en anden natur for databaseudøvere, men ikke nødvendigvis app-udviklere. Det er udfordringen Tidsmæssige teknologier har påtaget sig, at levere den statslige ledelse bag orkestreringen af ​​mikrotjenester, samle op, hvor servicenet som f.eks. Istio undlade.

Forståeligt nok har du sikkert aldrig hørt om denne to år gamle virksomhed før, da dens sparsomme hjemmeside får virksomheden til næsten at se ud som om den stadig er i skjul. Det er ikke klart, om Temporal har meget af en betalt kundebase; den viser en række logoer som Datadog, Netflix, Instacart, Qualtrics, Box og andre, men de er brugere af open source-teknologien, ikke betalende kunder. Hvis du graver tæt nok ned, kan du faktisk finde noget reel dokumentation. Men hvis vi skulle glemme at nævne det, har Temporal lige sikret sig en serie B-runde på $103 millioner.

Specifikt udpeger Temporal en snæver opgave: styring af mikrotjenesters tilstand. I betragtning af at mikrotjenester typisk tændes i højt distribuerede cloudmiljøer, er administration af tilstand beslægtet med koreografering af transaktioner i en masterless- eller multimasterdatabase. Det er en udfordring, som for eksempel Cassandra-udviklere godt ved. I databaser handler det om at balancere transaktionskonsistens med skrivetilgængelighed. I applikations- eller mikroserviceniveauet handler det om tilgængelighed, hvor kæden (i dette tilfælde computerknudepunkter, der hoster specifikke mikrotjenester) kun vil være så stærk som dens svageste led.

Administrerende tilstand, som begår transaktioner, er nøglen til at sikre, at resultaterne er gyldige og aktuelle og for at forhindre systemet - uanset om det er en database eller applikation - fra at gå ned. For eksempel, når du hæver kontanter fra en bankhæveautomat, er statens administration afgørende for at sikre, at transaktionen først gennemføres, når kontoen er blevet debiteret.

Behovet for at styre tilstand i distribuerede miljøer er meget kritisk, fordi der med flere bevægelige dele er en anstændig sandsynlighed for, at en af ​​dem vil fejltænde. Og så alt, der kører på internettet eller i skyen, kræver teknik for fejl, involverer failover og løsninger, så udfaldet af en enkelt node vil ikke gå ned i hele applikationen eller service.

I databaseverdenen var statsmotorer typisk indbygget; hvis du starter en database, behøver du ikke skrive din egen tilstandsmotor. I AppDev-verdenen er det ikke tilfældet; udviklere skulle typisk skrive deres egne.

For mikrotjenester vil organisationer typisk skulle skrive deres egne statsmaskiner ud over applikationsco e. Til midlertidig bruger Checkr, en tjeneste, der tilbyder online medarbejderbaggrundstjek, en typisk arbejdsgang involverer ofte en serie på 50 -- 60- automatiserede og manuelle trin (hver af dem mikrotjenester), der henter data fra en lang række eksterne kilder. Der var masser af Kafka-køer til at jonglere, skrive data til flere måldatabaser og derefter skrive logik for at flette resultaterne. Med en Temporal-server kunne de fokusere på appen i stedet for statens motor.

Temporal karakteriserer sin løsning som "open source platformen til at orkestrere yderst pålidelige, missionskritiske applikationer i stor skala." For mikrotjenester lyder det ved første øjekast meget som det, servicemasker gør. Men servicemasker fungerer på infrastrukturniveau, skaber forbindelser og sikrer failover, hvis noder går ikke. Derimod fokuserer Temporal på et applikationsniveau, og mere specifikt at kontrollere, om koden eller logik i mikrotjenesten udføres, og hvis ikke, håndtering af løsninger, der omhandler cascading afhængigheder.

Problemet, som Temporal løser med mikrotjenester, er intet n w. Som nævnt ovenfor skal statsmotorer i AppDev-verdenen skrives som ekstern kode eller bundtes som en del af en ramme. Det er præcis det problem, som internetapplikationer også skulle løse, fordi nettet var statsløst, og det var det, der førte til dedikerede middleware eller app-servere til at håndtere processen med webapplikationer, hvor populært sprog som Java bar deres egne mekanismer til administrerende stat.

Med Temporal gentager historien sig selv i mikroserviceniveauet. Dens state management server teknologi kommer fra et fem år gammelt open source-projekt det var udløbet af arbejde udviklet hos Uber. Det er bygget op omkring Temporal Server, en mikroservice-orkestreringsplatform, der sidder mellem computerservere og eksekverbar kildekode.

Det rejser det åbenlyse spørgsmål: hvis mikrotjenester er distribueret i naturen, eksekveres i distribueret computermiljøer, vil en central orkestreringsserver ikke besejre formålet ved at indføre et enkelt punkt af fiasko? Svaret er en ny "eksperimentel" multi-cluster asynkron replikeringsfunktion der skulle give de nødvendige failover-funktioner. Når det kommer til transaktionsgarantier for mikrotjenester, er fremtiden stadig et arbejde i gang.

Big Data

Sådan finder du ud af, om du er involveret i et databrud (og hvad du skal gøre nu)
Bekæmpelse af bias i AI starter med dataene
Fair prognose? Hvordan 180 meteorologer leverer 'godt nok' vejrdata
Kræftbehandlinger afhænger af svimlende mængder af data. Sådan er det sorteret i skyen
  • Sådan finder du ud af, om du er involveret i et databrud (og hvad du skal gøre nu)
  • Bekæmpelse af bias i AI starter med dataene
  • Fair prognose? Hvordan 180 meteorologer leverer 'godt nok' vejrdata
  • Kræftbehandlinger afhænger af svimlende mængder af data. Sådan er det sorteret i skyen