Razprava o monolitih in mikrostoritvah se pogosto začne pri diagramu namestitve. En okvir ali veliko? Bolj koristno vprašanje pa pride prej: za katero zapletenost naj skrbi vaša ekipa in katero naj upravlja platforma?

Majhna ekipa potrebuje jasen model in kratko pot od zamisli do delujoče aplikacije. Rastoča organizacija potrebuje tudi zmogljivost, odpornost in prostor, da ekipe delajo neodvisno. Te potrebe so povezane, niso pa enake.

Cygnus raziskuje drugačno ravnovesje: aplikacijska logika in podatki ostanejo v enem logičnem modelu, razvija pa se način, kako je ta model razporejen in izveden. Cilj je zmanjšati integracijsko delo, ki ga razvijalci vedno znova gradijo okoli ločenih podatkovnih zbirk, storitev in orodij UI.

01 / Izbira arhitekture

Monoliti in mikrostoritve rešujejo različne probleme.

Monolit zapakira aplikacijo kot eno enoto za namestitev. Lahko je modularen, skrbno testiran in repliciran za izravnalnikom obremenitve. Njegova privlačnost je praktična: lokalni klici, preprosto odpravljanje napak in manj sestavnih delov. Njegove omejitve se pogosto pokažejo pri skupnih izdajah, mejah lastništva ali neenakomernih potrebah po virih.

Mikrostoritve razdelijo aplikacijo na storitve, ki jih je mogoče namestiti neodvisno. Koristne so, ko domene in ekipe potrebujejo lastne cikle izdaj, pravila širjenja ali operativne meje. Ta neodvisnost prinaša delo: omrežne klice, pogodbe z različicami, opazljivost, obravnavo napak in pogosto doslednost med ločenimi shrambami podatkov.

Nobena od obeh ni samodejno hitrejša ali bolj razširljiva. Dobro zasnovan monolit lahko obvladuje veliko obremenitev. Slabo razdeljen sistem mikrostoritev lahko svoja ozka grla porazdeli in jih naredi težje opazne.

Trije načini organizacije aplikacije

Monolit

Ena aplikacijaPoslovna logika · moduli
Skupna podatkovna zbirka

Ena namestitev. Notranje meje so odvisne od zasnove kode.

Mikrostoritve

Storitev AStoritev BStoritev C
Podatki APodatki BPodatki C

Neodvisne storitve in lastništvo. Dele povezujejo omrežne pogodbe.

Zasnova Cygnus

En logični modelJezik · podatki · zaledje
Razporejanje in usklajevanje v izvajalnem okolju

Enoten razvojni model. Porazdeljena namestitev je usmeritev za obdobje po v1.

Razlikovanje je pomembno, ker sta porazdelitev namestitve in poslovna modularnost ločeni odločitvi. Module lahko imate brez ločenih storitev; veliko strežnikov lahko imate, ne da bi razdrobili logični model aplikacije.

02 / En logični model

Podatkovna zbirka in zaledje bližje skupaj.

Cygnus je načrtovani jezik, podatkovna zbirka in zaledni temelj NatusAI. Zasnova združuje tipizirano aplikacijsko logiko, trajne podatke in izpostavljene funkcije v eno skladno okolje. Namesto da bi na vsaki meji vzdrževali ločeno preslikavo, razvijalci delajo s povezanimi objekti in funkcijami, ki delujejo nad njimi.

To je še posebej pomembno za digitalni dvojček ali operativno aplikacijo. Ladja, stavba ali industrijsko sredstvo ima identiteto, povezave, lokacijo, meritve, dokumente in zgodovino. Če vsak pogled razdelimo v nepovezan sistem, moramo znova graditi povezave, ki v podjetju že obstajajo.

Enoten model naj bi te povezave ohranil. Izvajalnemu okolju daje tudi več informacij o podatkih, poizvedbah in izvajanju – informacij, ki lahko podprejo prihodnje odločitve o razporejanju in usklajevanju.

En model za aplikacijo.
Več možnosti, kje deluje.

To je načelo zasnove, ne obljuba, da se vsaka obremenitev pregledno širi. Particijski ključi, vzorci poizvedb, meje transakcij in zakasnitev še vedno vplivajo na to, kako je treba aplikacijo zgraditi.

03 / Štirje načini rasti

Zahteve in podatke širite kot ločeni potrebi.

»Moramo se širiti« lahko pomeni več hkratnih zahtev, večji nabor podatkov, boljšo razpoložljivost – ali vse troje. Replikacija in razdeljevanje rešujeta različna dela tega problema. Spodnji prikaz ponazarja usmeritev porazdeljene zasnove Cygnus; ni delujoča gruča ali izdana funkcija namestitve.

Štiri topologije v usmeritvi porazdeljene zasnove Cygnus
  1. 01 · Eno vozlišče

    Začnite z eno skladno aplikacijo

    Aplikacijska logika in celoten nabor podatkov sta skupaj na enem strežniku. To je obseg načrtovanega profila namestitve Cygnus v1.

    Najpreprostejši model obratovanja. Zmogljivost in razpoložljivost sta odvisni od enega strežnika in njegovih postopkov obnove.

  2. 02 · Replike

    Model kopirajte na več vozlišč

    V usmeritvi porazdeljene zasnove imajo vozlišča isto aplikacijsko kodo in polno kopijo podatkov. Replikacija lahko podpre redundanco in dodatno zmogljivost za zahteve, odvisno od modela doslednosti in usmerjanja zapisov.

    Kopije morajo usklajevati posodobitve. Več replik ne pomeni samodejno večkratne prepustnosti zapisovanja.

  3. 03 · Razdelki (shards)

    Razdelite podatke, ohranite model

    Aplikacijska koda ostane skupna, vsako vozlišče pa ima svojo particijo podatkov. Razporeditev bi lahko sledila geografiji, časovnim razponom ali razponom ključev, odvisno od obremenitve.

    Usmerjanje in poizvedbe prek particij potrebujejo izrecna pravila. Neenakomerni podatki ali vzorci dostopa lahko ustvarijo vroče točke.

  4. 04 · Oboje

    Replicirajte vsako particijo

    Združite zmogljivost več razdelkov z redundanco znotraj vsakega razdelka. Načrtovana izkušnja za razvijalce ostane ena logična podatkovna zbirka in zaledje, izvajalno okolje pa obvladuje zapletenejšo fizično topologijo.

    Razporeditev replik, preklop ob odpovedi, prerazporejanje in porazdeljene transakcije zahtevajo kvalifikacijo. To je usmeritev zasnove za obdobje po v1.

celotna kopija podatkov ena particija podatkov · Samo ponazoritev: ni delujoča gruča ali izdana funkcija namestitve.

Začnite na enem vozlišču

Načrtovani profil v1 se začne z enim strežnikom. Aplikacijska koda in podatki so skupaj, zato je prva namestitev obvladljiva. Varnostne kopije, obnova, pravice in omejitve virov ostajajo del odgovornega obratovanja.

Replicirajte za redundanco in zmogljivost za zahteve

V prihodnjem porazdeljenem modelu bi lahko več vozlišč imelo isto kodo in celotno kopijo nabora podatkov. Tako lahko nastane več mest za streženje primernih zahtev, sistem pa lahko prenese odpoved nekaterih vozlišč. Rezultat je odvisen od usmerjanja, zamika replikacije, jamstev doslednosti in tega, katere operacije se lahko izvajajo na katerih replikah.

Razdelite za zmogljivost podatkov

Ko nabor podatkov preraste strežnik, dodajanje polnih kopij ne reši omejitve shrambe. Razdeljevanje (sharding) razdeli podatke med vozlišča. Obremenitev je mogoče particionirati po geografiji, časovnem razponu ali razponu ključev. Poizvedbe, ki prečkajo te particije, potrebujejo usmerjanje in včasih porazdeljeno izvajanje.

Preprosta ponazoritev zmogljivosti: 30 TB logičnih podatkov potrebuje najmanj osem strežnikov po 4 TB, še preden upoštevamo replike, indekse, operativno rezervo ali druge dodatne stroške. To je aritmetika, ne meritev zmogljivosti Cygnus.

Združite oboje

Vsak razdelek ima lahko lastne replike. Razdelki zagotavljajo skupno zmogljivost podatkov; replike dodajo redundanco in možnosti za streženje zahtev. To kombinirano topologijo ljudje pogosto mislijo, ko si predstavljajo podatkovno zbirko, porazdeljeno po floti strežnikov.

Rast in krčenje glede na povpraševanje

Dolgoročna usmeritev je avtomatizirati te odločitve na podlagi pravil za obremenitve: dodati zmogljivost, ko povpraševanje raste, premakniti izvajanje skupaj s podatki, ki jih potrebuje, in sprostiti zmogljivost, ko povpraševanje upade. Cilj je ohraniti logični model aplikacije, medtem ko se razporeditev spreminja.

Pri zmanjševanju je treba najprej izprazniti delo ter varno preseliti ali ohraniti potrebne kopije podatkov. Razporejanje, prerazporejanje, doslednost in obnova potrebujejo izrecna pravila in kvalifikacijo. Samodejno širjenje in krčenje sta prihodnja cilja zasnove gruče, zunaj načrtovane različice v1 za en strežnik.

04 / Odgovornost izvajalnega okolja

Usklajevanje naj prevzame platforma.

Načrtovana izkušnja Cygnus ohranja eno kodno bazo aplikacije in eno logično podatkovno zbirko, medtem ko se namestitev razvija. Porazdelitev, ki jo upravlja izvajalno okolje, bi prevzela razporejanje, usmerjanje, replikacijo in mehaniko usklajevanja sodelujočih vozlišč.

Ta mehanika ne izgine. Omrežja prinašajo zakasnitve in razcepe. Posodobitve potrebujejo pravila doslednosti. Transakcije, ki segajo prek več razdelkov, potrebujejo opredeljen protokol. Obnova mora vedeti, kaj je bilo potrjeno, prerazporejanje pa ne sme izgubiti lastništva nad podatki med njihovim premikanjem.

Priložnost je v tem, da se te odgovornosti enkrat izvedejo v platformi, z izrecnimi pogodbami in orodji za obratovanje, namesto da vsaka aplikacija sestavlja svojo različico. Aplikacija še vedno potrebuje meje, ki ustrezajo njeni obremenitvi.

05 / Podatki skozi čas

Povezan model potrebuje spomin.

Veliko poslovnih vprašanj vključuje časovno dimenzijo, tudi ko je nihče ne izreče. Kje je bilo to sredstvo pred incidentom? Katera organizacija ga je takrat nadzorovala? Kaj je sistem vedel, ko je dal to priporočilo?

Zasnova Cygnus povezuje grafne povezave, geoprostorske podatke, vektorje, trojice, časovne vrste in iskanje po celotnem besedilu v istem logičnem temelju. To so načini raziskovanja nekega subjekta, ne ločene definicije tega, kaj ta subjekt je.

En povezan subjekt, več načinov raziskovanja
Sredstvo skozi časIdentiteta · stanje · povezave
  • Graf in trojice

    Kaj je povezano – in kako?

  • Geoprostorski podatki

    Kje je bilo v določenem trenutku?

  • Časovne vrste

    Kako so se spreminjali njegovi odčitki?

  • Polno besedilo in vektorji

    Kateri zapisi se ujemajo ali pomenijo nekaj podobnega?

Aplikacija · API · MCP · klepetDostop s pravicami do istega logičnega modela

Konceptualni model. Zgodovinski odgovori potrebujejo tudi ohranjene različice virov ter izvor iskanja, modela in poziva.

Konceptualna ilustracija povezanega znanja in zgodovine sredstva v časovni dimenziji
Lokacija, povezave in znanje so uporabnejši, ko jih je mogoče razumeti v zgodovinskem kontekstu.

Zgodovina za podatke – in izvor za UI

Časovni podatki lahko opišejo, kako se spreminjajo sredstvo, njegovi odčitki ali njegove povezave. Zgodovinski odgovor UI zahteva več. Odvisen je tudi od izvornih dokumentov, vložitev, konfiguracije iskanja, različice modela in poziva, s katerimi je nastal.

Ohranjanje zgodovine podatkov ne ohrani samodejno vsakega vektorskega indeksa in ne reproducira preteklega odgovora modela. Koristna zasnova te različice premišljeno poveže in zabeleži njihov izvor, tako da lahko odgovor pokaže nazaj na dokaze in kontekst, ki so ga podprli.

En temelj za aplikacije in orodja

Načrtovane izvorne zmogljivosti MCP in klepeta omogočajo izpostavljanje dovoljenih funkcij in poizvedovanje po povezanem znanju. Orodje ali pogovorni vmesnik naj deluje nad istim modelom in pravili dostopa kot aplikacija. Zgodovinska poizvedba lahko nato vpraša o izbranem času in pojasni, kateri dokazi in katera konfiguracija UI so na voljo za ta odgovor.

Tu enotno zaledje postane več kot le preprostejša zgodba o namestitvi: lahko zagotovi skupen temelj za operativne podatke, poslovno zgodovino in delo s pomočjo UI.

06 / Izbira meja

Arhitektura naj ostane usklajena z delom.

Mikrostoritve ostajajo koristne, ko jih upravičujejo neodvisne ekipe, ločene varnostne meje ali različne zahteve glede obratovanja. Modularni monolit ostaja koristen, ko skupna namestitev ohranja produktivnost ekipe. Usmeritev Cygnus dodaja še eno možnost: enoten model aplikacije in podatkov, pri katerem porazdelitev upravlja izvajalno okolje na globlji ravni.

Prava izbira se začne pri obremenitvi. Katere zahteve prevladujejo? Kako hitro morajo posodobitve postati vidne? Kateri podatki sodijo skupaj? Kaj se zgodi ob odpovedi omrežja? Katere odgovornosti potrebujejo neodvisno lastništvo?

Naš cilj je, da razvijalci več časa namenijo tem pomembnim odločitvam in manj ponovnemu gradenju povezav med svojimi orodji. Začnite s skladnim modelom. Ohranite poslovne povezave nedotaknjene. Fizično namestitev povečajte, ko sta obremenitev in platforma pripravljeni.

Za nadaljnje branje