3.0

View in English

3.0 Inngangur að 3. hluta: Kerfi

Arkitektúr er safn ákvarðana sem er dýrt að snúa við. Hvernig skiptirðu kerfi í hluta? Hvernig tala þessir hlutar saman? Hvernig eru gögnin líkönuð? Og hvernig hegðar heildin sér undir álagi og í bilun? 3. hluti fjallar um að taka þessar ákvarðanir af ásetningi. Í litlu teymi getur arkitektúr lifað í fáum höfðum og þróast jafnóðum. Í stórri skipulagsheild (hundruð verkfræðinga, tugir teyma, kerfi sem lifa lengur en starfsferill þeirra sem smíða þau) verður arkitektúr það sem heldur öllum samhæfðum. Þegar hann er skýr hreyfast teymi sjálfstætt án árekstra. Þegar hann er óljós verður hvert þverteymisósjálfstæði að samningaviðræðum og hvert atvik að fornleifauppgreftri.

Hagsmunirnir eru mestir í fyrirtækjum og hjá hinu opinbera. Skattvél, bótavettvangur, landsskrá heilsufarsupplýsinga eða höfuðbók í kjarna banka er langlíf, mjög eftirlitsskyld, sameiginleg milli deilda og ábyrg gagnvart almenningi. Ákvarðanirnar sem þú tekur í dag um tengingu, gagnaeignarhald og gæðaeiginleika munu þrengja hvað er mögulegt í áratug eða lengur. Eftirlitsaðilar og endurskoðendur ætlast sífellt meira til skjalfests, rökstudds arkitektúrs, með raunverulegum sönnunargögnum um að áreiðanleiki, öryggi, persónuvernd og ending hafi verið hönnuð inn, ekki fest á eftir. Bilanirnar sem rata í fréttir eru arkitektúrbilanir: gáttir sem bogna á opnunardegi, skilakerfi sem renna út á tíma á skilafresti, flutningar sem tapa eða tvítelja færslur.

Þessi hluti byrjar á varanlegum grunnatriðum, færist gegnum áþreifanleg byggingarval, síðan inn í raunveruleika dreifingar, gagna og umfangs og endar á erfiðasta vandanum sem flestar stórar skipulagsheildir standa í raun frammi fyrir: að nútímavæða kerfin sem þær reka nú þegar. Þráðurinn sem bindur þetta saman: góður arkitektúr er röð meðvitaðra málamiðlana, ekki tískuvalið.

Kaflar í þessum hluta

  • 3.1 Grunnatriði arkitektúrs. Varanlegu verkfærin sem lifa af tækniæði: gæðaeiginleikar („-leikarnir“), arkitektúrlega marktækar kröfur, hæfnisföll (sjálfvirk próf sem gæta valins arkitektúrgæðis) og þróunararkitektúr, létt skjölun með C4-líkaninu (nestuð arkitektúrrit á fjórum aðdráttarstigum) og arc42 (sniðmáti fyrir arkitektúrskjölun) og skipulögð málamiðlanagreining.

  • 3.2 Arkitektúrstílar og mynstur. Yfirlit yfir helstu kerfislögun, frá einlitu kerfi gegnum örþjónustur, atburðadrifinn arkitektúr með CQRS (Command Query Responsibility Segregation, sem aðskilur lesmódel frá skrifmódelum) og atburðauppsprettu (að geyma ástand sem viðbótarskrá atburða), þjónustunet (sérstakt innviðalag fyrir samskipti milli þjónusta) og gáttir, þjónustulaus rekstur og sexhyrndan og hreinan arkitektúr, með leiðsögn um hvenær hver á við, römmuð af lögmáli Conways (kerfi hneigjast til að endurspegla samskiptabyggingu skipulagsheildarinnar sem smíðar þau).

  • 3.3 Dreifð kerfi. Hörðu sannindin sem birtast um leið og þú ferð yfir netmörk (óáreiðanleg net, hlutabilun, engin sameiginleg klukka) og staðlaðar varnir: samræmisrökhugsun, eins-áhrif (að gera aðgerð örugga til endurtekningar), endurtekningar með undanhaldi, rofar (sem hætta að kalla á bilandi ósjálfstæði), sögur (raðir staðbundinna færslna með bótaskrefum til að afturkalla) og dreifður sýnileiki.

  • 3.4 Gagnaarkitektúr og geymsla. Hvernig gögn eru líkönuð, geymd, höfð samræmd og afgreidd hratt í stórum stíl: helstu geymslulíkönin og hvenær á að nota hvert, fjölmála varðveisla (að nota nokkra sérhæfða gagnageymslu í einu kerfi), þróun og flutningur skema, skyndiminni og CDN (efnisdreifinet) og færslur og samtími undir álagi.

  • 3.5 Stigvöxtur, afköst og seigla. Þrír aðgreindir eiginleikar hannaðir inn frekar en bætt við eftir á: lárétt og lóðrétt stigvöxtur, ástandsleysi og sneiðing (að skipta gögnum milli véla eftir lykli), álagsdreifing og sjálfvirk stigstilling, afkastafjárhagsáætlanir, seigluminstur og glundroðaverkfræði og fjölsvæða hamfaraendurheimt römmuð af RTO (markmiði um endurheimtartíma) og RPO (markmiði um endurheimtarpunkt).

  • 3.6 Nútímavæðing eldri kerfa. Stigvaxandi mynstrin sem virka í raun, kyrkingarfíka (að rækta nýtt kerfi umhverfis það gamla þar til hægt er að leggja hið gamla niður) og útibú-með-ágripun (að skipta um íhlut bak við viðmót á aðalþróunarlínunni), auk áhættumats eldri kerfa, ráðsmennsku stórtölva og COBOL (Common Business-Oriented Language), gagnaflutnings og tvíkeyrslu og hvernig á að standa gegn freistingu stóru endurskriftarinnar sem veldur dýrustu bilunum greinarinnar.

  • 3.7 Hugbúnaðarviðhald. Ríkjandi skeið líftíma hugbúnaðar: leiðréttandi, aðlagandi, fullkomnandi og fyrirbyggjandi viðhald, forritaskilningur og endurhönnun og hönnun fyrir viðhaldshæfni svo langlíf kerfi haldist hagkvæm að breyta.

  • 3.8 Samvirkni og opnir staðlar. Að hanna kerfi til að vinna saman gegnum opna staðla frekar en sérsmíðaðar samþættingar: tæknileg, setningafræðileg og merkingarleg samvirkni, lénsstaðlar eins og FHIR í heilbrigðisþjónustu og kostnaður við séreignarbindingar.

  • 3.9 Kerfisverkfræði. Verkfræði flókinna kerfa frá enda til enda, oft sem sameinar hugbúnað, vélbúnað, fólk og ferla: líftími, úthlutun krafna og rekjanleiki, viðmót, samþætting og sannprófun og staðfesting.

  • 3.10 Innbyggð kerfi og rauntímakerfi. Hugbúnaður fyrir tæki undir þröngum skorðum: rauntímahegðun og ákveðni, RTOS eða beran fastbúnað, takmarkað minni og afl, samskipti við vélbúnað og öryggiskritískir staðlar.

  • 3.11 Skýjaarkitektúr. Að hanna fyrir skýið frekar en að lyfta-og-færa gagnaver: þjónustulíkön og þjónustulaus rekstur, svæði og aðgengissvæði sem bilanalén, ábyrgðarskiptamódelið, málamiðlanir stýrðrar þjónustu og binding, fjölskýja- og blendingslausnir þegar þau vinna sér inn flækjuna og kostnaðarmeðvituð, vel hönnuð smíði.

  • 3.12 Atburðadrifinn arkitektúr og skilaboðamiðlun. Að smíða kerfi sem eiga samskipti með því að framleiða og bregðast við atburðum: biðraðir á móti varanlegum straumum, kóreógrafía á móti hljómsveitarstjórn, atburðauppspretta og CQRS þar sem þau vinna fyrir sér, sögur fyrir dreifðar færslur, afhendingarábyrgðir og eins-áhrif og mynstrin sem halda ósamstilltu flæði áreiðanlegu.

  • 3.13 Netkerfi og tengingar. Netkerfin sem forritaverkfræðingur tekst á við í raun: DNS, TCP og þróun HTTP, TLS-lúkning, álagsdreifing og öfugir milliþjónar, efnisdreifing og jaðar, þjónustuuppgötvun og þjónustunet og tímamörk, endurtekningar og rofar sem gera óáreiðanleika netsins lífvænlegan.

  • 3.14 Fjölleiga og SaaS-arkitektúr. Að þjóna mörgum viðskiptavinum úr einu hugbúnaðartilviki án þess að leyfa þeim að sjá hver annan eða svelta: spönn einangrunar á móti hagkvæmni, gagnaskipting, kvótar á hvern leigjanda gegn háværum nágrönnum, líftími leigjanda og kostnaðarskipting.

  • 3.15 Skyndiminni og efnisdreifing. Að skipta litlum úreldingi fyrir mikinn ávinning í töf, álagi og kostnaði yfir skyndiminnisþrepin (biðlari, jaðar og CDN, öfugur milliþjónn, forrit og gagnageymsla), á meðan ógilding skyndiminnis og hjarðvörn eru meðhöndluð sem fyrsta flokks hönnun.

  • 3.16 API-gáttir og þjónustunet. Að meðhöndla norður-suður umferð við API-gátt (leiðsögn, auðkenning, hraðatakmörkun, samsetning) og austur-vestur umferð gegnum þjónustunet (gagnkvæmt TLS, umferðarfærsla, endurtekningar, sýnileiki) og að ákveða hvenær net vinnur sér inn flækju sína.

  • 3.17 Leit og upplýsingaendurheimt. Að líta á leit sem fyrsta flokks kerfi, frá öfugri vísitölu (inverted index) og mikilvægisröðun til fyrirspurnaskilnings, flötunar og vektor- og blendingsleitar, með raunverulegu mikilvægismati frekar en ágiskunum.

Hvernig þessir kaflar tengjast

Kaflarnir byggja hver á öðrum í röð. Kafli 3.1 gefur þér orðaforðann (gæðaeiginleika og málamiðlanagreiningu) sem hver síðari kafli notar. „-leikarnir“ sem hann nefnir eru einmitt það sem kaflar 3.4 og 3.5 gera áþreifanlegt. Kafli 3.2 breytir þessum grunnatriðum í byggingarval, og dreifðari stílarnir sem hann mælir með (örþjónustur, atburðadrifinn, þjónustunet) færa með sér kostnaðinn sem kafli 3.3 kennir þér að stýra. Kaflar 3.3, 3.4 og 3.5 styðjast mjög hver við annan: dreifing neyðir fram samræmis- og endingarákvarðanir gagnaarkitektúrs, og saman móta dreifing og gögn hvaða stigvöxt og seiglu þú getur í raun náð. Kafli 3.6 lokar hringnum, því flestar stórar skipulagsheildir byggja ekki á auðu blaði: þær þróa eldri kerfi sem takmarka hvert val sem fyrri kaflar lýsa.

  1. hluti nær líka út á við. Kafli 3.2 sækir í hönnunarreglur og lénsdrifna hönnun kafla 2.2 til að finna góð þjónustumörk. Rekstrarfögin sem halda þessum kerfum gangandi búa í 9. hluta: áreiðanleikaverkfræði (kafli 9.1) og sýnileiki (kafli 9.2) eru þar sem arkitektúrseigla er sönnuð í framleiðslu. Öryggis- og persónuverndareiginleikarnir sem eftirlitsaðilar krefjast eru hannaðir hér en útfærðir í 4. hluta, og vettvangs- og afhendingarvinnubrögðin í 8. hluta ráða hvort hægt sé í raun að afhenda og reka arkitektúr af mörgum teymum í einu.