3.0

Gweld yn Saesneg

3.0 Cyflwyniad i Ran 3: Systemau

Pensaernïaeth yw’r set o benderfyniadau sy’n ddrud i’w gwrthdroi. Sut ydych chi’n rhannu system yn rhannau? Sut mae’r rhannau hynny’n cyfathrebu â’i gilydd? Sut mae’r data’n cael ei fodelu? A sut mae’r cyfan yn ymddwyn dan lwyth a than fethiant? Mae Rhan 3 yn ymwneud â gwneud y penderfyniadau hynny’n fwriadol. Mewn tîm bach, gall pensaernïaeth fyw ym mhennau ychydig o bobl a datblygu wrth fynd yn eich blaen. Mewn sefydliad mawr (cannoedd o beirianwyr, dwsinau o dimau, systemau a fydd yn goroesi gyrfaoedd y bobl sy’n eu hadeiladu), mae pensaernïaeth yn dod yn beth sy’n cadw pawb wedi’u cydgysylltu. Pan mae’n glir, gall timau symud yn annibynnol heb wrthdaro. Pan mae’n aneglur, mae pob dibyniaeth traws-dîm yn troi’n drafodaeth, a phob digwyddiad yn troi’n brosiect archaeolegol.

Mae’r risgiau ar eu huchaf mewn menter a llywodraeth. Mae peiriant treth, platfform budd-daliadau, cofnod iechyd cenedlaethol, neu brif gyfrif banc yn hirhoedlog, wedi’i reoleiddio’n drwm, wedi’i rannu ar draws adrannau, ac yn atebol i’r cyhoedd. Bydd y penderfyniadau a wnewch heddiw ynghylch cyplu, perchnogaeth data, a phriodoleddau ansawdd yn cyfyngu ar yr hyn sy’n bosibl am ddegawd neu fwy. Mae rheoleiddwyr ac archwilwyr yn fwyfwy disgwyl pensaernïaeth wedi’i dogfennu, y gellir ei hamddiffyn, gyda thystiolaeth wirioneddol fod dibynadwyedd, diogelwch, preifatrwydd, a gwydnwch wedi’u dylunio i mewn, nid eu clymu ymlaen wedyn. Y methiannau sy’n gwneud penawdau yw methiannau pensaernïol: pyrth sy’n plygu ar ddiwrnod lansio, systemau ffeilio sy’n rhedeg allan o amser wrth y dyddiad cau, mudo data sy’n colli neu’n cyfrif cofnodion ddwywaith.

Mae’r rhan hon yn dechrau gyda’r hanfodion parhaol, yn symud drwy ddewisiadau strwythurol pendant, yna i realiti dosbarthu, data, a graddfa, ac yn gorffen gyda’r broblem anoddaf y mae’r rhan fwyaf o sefydliadau mawr yn ei hwynebu mewn gwirionedd: moderneiddio’r systemau y maent eisoes yn eu rhedeg. Y trywydd sy’n clymu’r cyfan at ei gilydd: mae pensaernïaeth dda yn gyfres o gyfaddawdau ymwybodol, nid rhagosodiad ffasiynol.

Penodau yn y rhan hon

  • 3.1 Hanfodion pensaernïaeth. Yr offer parhaol sy’n goroesi ffasiwn technoleg: priodoleddau ansawdd (yr “-ilities”), gofynion pensaernïol arwyddocaol, ffwythiannau ffitrwydd (profion awtomataidd sy’n gwarchod ansawdd pensaernïol dewisedig) a phensaernïaeth esblygol, dogfennaeth ysgafn gyda’r C4 model (diagramau pensaernïaeth nythog ar bedwar lefel chwyddo) ac arc42 (templed dogfennaeth pensaernïaeth), a dadansoddiad cyfaddawd strwythuredig.

  • 3.2 Arddulliau a phatrymau pensaernïol. Arolwg o’r prif siapiau system, o fonolith drwy ficrowasanaethau, bensaernïaethau wedi’u gyrru gan ddigwyddiadau gyda CQRS (Command Query Responsibility Segregation, sy’n gwahanu’r modelau darllen oddi wrth y modelau ysgrifennu) a tharddu digwyddiadau (storio cyflwr fel log ychwanegu-yn-unig o ddigwyddiadau), rhwyll gwasanaeth (haen seilwaith bwrpasol ar gyfer cyfathrebu gwasanaeth-i-wasanaeth) a phyrth, di-weinydd, a phensaernïaeth hecsagonol a glân, gyda chyfarwyddyd ar pryd mae pob un yn addas, wedi’i fframio gan Ddeddf Conway (mae systemau’n tueddu i adlewyrchu strwythur cyfathrebu’r sefydliad sy’n eu hadeiladu).

  • 3.3 Systemau dosbarthedig. Y gwirioneddau caled sy’n ymddangos yr eiliad y byddwch yn croesi ffin rhwydwaith (rhwydweithiau annibynadwy, methiant rhannol, dim cloc a rennir), a’r amddiffynfeydd safonol: rhesymu cysondeb, idempotens (gwneud gweithrediad yn ddiogel i’w ailadrodd), ailgeisiadau gyda chiliad, torwyr cylched (sy’n stopio galw dibyniaeth sy’n methu), sagas (dilyniannau o drafodion lleol gyda chamau dadwneud digolledol), ac arsylwadwyedd dosbarthedig.

  • 3.4 Pensaernïaeth data a storio. Sut mae data’n cael ei fodelu, ei storio, ei gadw’n gyson, a’i gyflenwi’n gyflym ar raddfa: y prif baradeimau storio a phryd i ddefnyddio pob un, dyfalbarhad amlieithog (defnyddio sawl storfa ddata arbenigol mewn un system), esblygiad a mudo sgema, celcio a CDNs (rhwydweithiau cyflenwi cynnwys), a thrafodion a chydamseroldeb dan lwyth.

  • 3.5 Graddadwyedd, perfformiad, a gwydnwch. Tair ansawdd wahanol sy’n cael eu dylunio i mewn yn hytrach na’u hôl-ffitio: graddio llorweddol a fertigol, diffyg cyflwr a rhannu’n ddarnau (rhannu data ar draws peiriannau yn ôl allwedd), cydbwyso llwyth a hunanraddio, cyllidebau perfformiad, patrymau gwydnwch a pheirianneg anhrefn, a gwaith adfer trychineb aml-ranbarth wedi’i fframio gan RTO (nod amser adfer) ac RPO (nod pwynt adfer).

  • 3.6 Moderneiddio systemau etifeddol. Y patrymau cynyddrannol sydd wir yn gweithio, ffigysbren tagu (strangler fig) (tyfu system newydd o amgylch yr hen un nes y gellir ymddeol o’r hen un) a changhennu-drwy-haniaeth (branch-by-abstraction) (disodli cydran y tu ôl i ryngwyneb ar brif linell y datblygiad), ynghyd ag asesu risg etifeddol, stiwardiaeth prif ffrâm a COBOL (Common Business-Oriented Language), mudo data a rhedeg deuol, a sut i wrthsefyll temtasiwn yr ailysgrifennu mawr sy’n cynhyrchu methiannau drutaf y maes.

  • 3.7 Cynnal a chadw meddalwedd. Cyfnod amlycaf oes meddalwedd: cynnal a chadw cywirol, addasol, gwellhaol, ac ataliol, dirnadaeth rhaglenni ac ailbeiriannu, a dylunio ar gyfer cynhaliadwyedd fel bod systemau hirhoedlog yn parhau’n fforddiadwy i’w newid.

  • 3.8 Rhyngweithredoldeb a safonau agored. Dylunio systemau i ryngweithredu drwy safonau agored yn hytrach na integreiddiadau pwrpasol: rhyngweithredoldeb technegol, cystrawennol, a semantig, safonau parth fel FHIR mewn gofal iechyd, a chost clymu perchnogol.

  • 3.9 Peirianneg systemau. Peiriannu systemau cymhleth o’r dechrau i’r diwedd, gan gyfuno meddalwedd, caledwedd, pobl, a phrosesau yn aml: cylch bywyd, dyrannu ac olrheiniadwyedd gofynion, rhyngwynebau, integreiddio, a gwirio a dilysu.

  • 3.10 Systemau wedi’u mewnblannu ac amser real. Meddalwedd ar gyfer dyfeisiau dan gyfyngiadau tynn: ymddygiad amser real a phenderfyniaeth, RTOS neu firmware metel-noeth, cof a phŵer cyfyngedig, rhyngweithio caledwedd, a safonau critigol-o-ran-diogelwch.

  • 3.11 Pensaernïaeth cwmwl. Dylunio ar gyfer y cwmwl yn hytrach na chodi-a-symud canolfan ddata: modelau gwasanaeth a di-weinydd, rhanbarthau a pharthau argaeledd fel meysydd methiant, y model cyfrifoldeb a rennir, cyfaddawdau gwasanaeth-a-reolir a chlymu, aml-gwmwl a hybrid pan fyddant yn ennill eu cymhlethdod, a dylunio sy’n ymwybodol o gost ac wedi’i bensaernïo’n dda.

  • 3.12 Pensaernïaeth wedi’i gyrru gan ddigwyddiadau a negeseua. Adeiladu systemau sy’n cyfathrebu drwy gynhyrchu ac ymateb i ddigwyddiadau: ciwiau yn erbyn ffrydiau parhaol, coreograffi yn erbyn cerddorfaeth, tarddu digwyddiadau a CQRS lle maent yn ennill eu lle, sagas ar gyfer trafodion dosbarthedig, gwarantau danfon ac idempotens, a’r patrymau sy’n cadw llifau anghydamserol yn ddibynadwy.

  • 3.13 Rhwydweithio a chysylltedd. Y rhwydweithio y mae peiriannydd cymwysiadau’n ymdrin ag ef mewn gwirionedd: DNS, TCP ac esblygiad HTTP, terfynu TLS, cydbwyso llwyth a dirprwyon gwrthdro, cyflenwi cynnwys ac ymyl, darganfod gwasanaeth a rhwyll gwasanaeth, a’r goramseriadau, ailgeisiadau, a thorwyr cylched sy’n gwneud annibynadwyedd y rhwydwaith yn oddefadwy.

  • 3.14 Aml-ddeiliadaeth a phensaernïaeth SaaS. Gwasanaethu llawer o gwsmeriaid o un enghraifft meddalwedd heb adael iddynt weld na llwgu ei gilydd: y sbectrwm ynysu-yn-erbyn-effeithlonrwydd, rhaniad data, cwotâu fesul deiliad yn erbyn cymdogion swnllyd, cylch bywyd deiliaid, a phriodoli cost.

  • 3.15 Celcio a chyflenwi cynnwys. Cyfnewid ychydig o hynafedd am enillion mawr mewn oedi, llwyth, a chost ar draws hierarchaeth y celc (cleient, ymyl a CDN, dirprwy gwrthdro, cymhwysiad, a storfa ddata), gan drin dilysu celc ac amddiffyn rhag ymchwydd fel dylunio dosbarth cyntaf.

  • 3.16 Pyrth API a rhwyll gwasanaeth. Trin traffig gogledd-de wrth borth API (llwybro, dilysu, cyfyngu cyfradd, cyfansoddi) a thraffig dwyrain-gorllewin drwy rwyll gwasanaeth (TLS cydfuddiannol, symud traffig, ailgeisiadau, arsylwadwyedd), a phenderfynu pryd mae rhwyll yn ennill ei chymhlethdod.

  • 3.17 Chwilio ac adfer gwybodaeth. Trin chwilio fel system dosbarth cyntaf, o’r mynegai gwrthdroedig a graddio perthnasedd i ddealltwriaeth ymholiadau, ffasedu, ac adferiad fector a hybrid, gyda gwerthusiad perthnasedd gwirioneddol yn hytrach na dyfalu.

Sut mae’r penodau hyn yn rhyngberthyn

Mae’r penodau’n adeiladu ar ei gilydd yn eu trefn. Mae Pennod 3.1 yn rhoi’r eirfa i chi (priodoleddau ansawdd a dadansoddiad cyfaddawd) y mae pob pennod ddiweddarach yn ei defnyddio; yr “-ilities” y mae’n eu henwi yw’n union yr hyn y mae penodau 3.4 a 3.5 yn ei wneud yn benodol. Mae Pennod 3.2 yn troi’r hanfodion hynny’n ddewisiadau strwythurol, ac mae’r arddulliau mwy dosbarthedig y mae’n eu cymeradwyo (microwasanaethau, wedi’u gyrru gan ddigwyddiadau, rhwyll gwasanaeth) yn dod â’r costau y mae Pennod 3.3 yn dysgu i chi eu rheoli. Mae Penodau 3.3, 3.4, a 3.5 yn dibynnu’n drwm ar ei gilydd: mae dosbarthu’n gorfodi penderfyniadau cysondeb a gwydnwch pensaernïaeth data, ac ynghyd, mae dosbarthu a data’n llunio pa raddadwyedd a gwydnwch y gallwch eu cyrraedd mewn gwirionedd. Mae Pennod 3.6 yn cau’r cylch, oherwydd nid yw’r rhan fwyaf o sefydliadau mawr yn adeiladu ar dudalen wag: maent yn esblygu systemau cofnod sy’n cyfyngu ar bob dewis y mae’r penodau cynharach yn eu disgrifio.

Mae Rhan 3 hefyd yn estyn allan. Mae Pennod 3.2 yn tynnu ar egwyddorion dylunio a Dylunio Wedi’i Yrru gan Barth (Domain-Driven Design) Pennod 2.2 i ddod o hyd i ffiniau gwasanaeth da. Mae’r disgyblaethau gweithredol sy’n cadw’r systemau hyn i redeg yn byw yn Rhan 9: mae peirianneg dibynadwyedd safle (Pennod 9.1) ac arsylwadwyedd (Pennod 9.2) yn lle mae gwydnwch pensaernïol yn cael ei brofi mewn cynhyrchiad. Mae’r priodoleddau diogelwch a phreifatrwydd y mae rheoleiddwyr yn eu mynnu’n cael eu dylunio yma ond eu manylu yn Rhan 4, ac mae’r arferion platfform a chyflenwi yn Rhan 8 yn penderfynu a ellir wir gludo a gweithredu pensaernïaeth gan lawer o dimau ar unwaith.