Byggingareiningar dreifðra forrita. Núll nálgun

Byggingareiningar dreifðra forrita. Núll nálgun

Heimurinn stendur ekki kyrr. Framfarir skapa nýjar tæknilegar áskoranir. Í samræmi við breyttar kröfur þarf arkitektúr upplýsingakerfa að þróast. Í dag munum við tala um atburðadrifinn arkitektúr, samhliða, samhliða, ósamstillingu og hvernig þú getur lifað friðsamlega með öllu þessu í Erlang.

Inngangur

Það fer eftir stærð hönnuðs kerfis og kröfum til þess, við, þróunaraðilar, veljum aðferðina til að skiptast á upplýsingum í kerfinu. Í flestum tilfellum, til að skipuleggja samskipti þjónustu, getur vinnuvalkostur verið kerfi með miðlara, til dæmis byggt á RabbitMQ eða kafka. En stundum er flæði atburða, SLA og stjórnunarstig yfir kerfinu þannig að tilbúin skilaboð henta okkur ekki. Auðvitað er hægt að flækja kerfið aðeins með því að taka ábyrgð á flutningslagi og klasamyndun, til dæmis með ZeroMQ eða nanomsg. En ef kerfið hefur næga afköst og getu staðlaðs Erlang þyrpingar, þá krefst spurningin um að kynna viðbótareiningu nákvæma rannsókn og efnahagslega rökstuðning.

Umræðuefnið um hvarfgjörn dreifð forrit er nokkuð breitt. Til að halda sig innan sniðs greinarinnar verður umfjöllunarefnið í dag eingöngu einsleitt umhverfi byggt á Erlang/Elixir. Erlang/OTP vistkerfið gerir þér kleift að innleiða hvarfgjarnan arkitektúr með minnstu fyrirhöfn. En í öllum tilvikum munum við þurfa skilaboðalag.

Fræðilegur grunnur

Hönnun hefst með því að skilgreina markmið og takmarkanir. Meginmarkmiðið er ekki á sviði þróunar í þágu þróunar. Við þurfum að fá öruggt og skalanlegt tól sem byggir á því að við getum búið til og, síðast en ekki síst, þróað nútímaleg forrit á ýmsum stigum: frá einum netþjónaforritum sem þjóna litlum áhorfendum, sem síðar geta þróast í allt að 50 þyrpingar. -60 hnútar, endar með klasasamböndum. Þannig er meginmarkmiðið að hámarka hagnað með því að draga úr kostnaði við þróun og eignarhald á endanlegu kerfi.

Við skulum draga fram 4 meginkröfur fyrir lokakerfið:

  • Сviðburðamiðað.
    Kerfið er alltaf tilbúið til að fara í gegnum atburðaflæði og framkvæma nauðsynlegar aðgerðir;
  • Мsveigjanleika.
    Hægt er að kvarða staka kubba bæði lóðrétt og lárétt. Allt kerfið verður að vera fær um óendanlega láréttan vöxt;
  • Оbilanaþol.
    Öll stig og öll þjónusta ættu að geta batnað sjálfkrafa eftir bilanir;
  • Гtryggður viðbragðstími.
    Tími er dýrmætur og notendur ættu ekki að bíða of lengi.

Manstu gamla ævintýrið um „Litla vélin sem gat“? Til þess að hönnuð kerfið geti farið út af frumgerðinni og verið framsækið verður grunnur þess að uppfylla lágmarkskröfur SMOG.

Einn punktur er bætt við skilaboðin sem innviðaverkfæri og grunnur allrar þjónustu: auðveld notkun fyrir forritara.

Atburðamiðað

Til að forrit geti vaxið úr einum netþjóni í klasa verður arkitektúr þess að styðja lausa tengingu. Ósamstillta líkanið uppfyllir þessa kröfu. Í því er sendanda og viðtakandi sama um upplýsingahleðslu skilaboðanna og hafa ekki áhyggjur af sendingu og leið innan kerfisins.

Stærð

Sveigjanleiki og skilvirkni kerfisins eru hlið við hlið. Forritsíhlutir verða að geta nýtt öll tiltæk úrræði. Því skilvirkari sem við getum nýtt afkastagetu og því ákjósanlegri vinnsluaðferðir okkar, því minna fé eyðum við í búnað.

Innan einni vél skapar Erlang mjög samkeppnishæft umhverfi. Hægt er að stilla jafnvægið milli samhliða og samhliða með því að velja fjölda stýrikerfisþráða sem eru tiltækir fyrir Erlang VM og fjölda tímaáætlunarmanna sem nýta þessa þræði.
Erlang ferli deila ekki ástandi og starfa í ólokandi ham. Þetta veitir tiltölulega litla leynd og meiri afköst en hefðbundin forrit sem byggja á blokkun. Tímaáætlun Erlangs tryggir sanngjarna úthlutun á örgjörva og IO og skortur á lokun gerir forritinu kleift að bregðast við jafnvel við hámarksálag eða bilanir.

Á klasastigi er vandinn með förgun einnig til staðar. Mikilvægt er að allar vélar í klasanum séu jafnt álagðar og að netið sé ekki of mikið. Við skulum ímynda okkur aðstæður: notendaumferð lendir á komandi jafnvægisbúnaði (haproxy, nginx, osfrv.), þeir dreifa vinnslubeiðnum eins jafnt og hægt er á milli mengi tiltækra bakenda. Innan innviða forritsins er þjónustan sem útfærir tilskilið viðmót aðeins síðasta mílan og mun þurfa að biðja um fjölda annarra þjónustu til að svara fyrstu beiðninni. Innri beiðnir krefjast einnig leiðar og jafnvægis.
Til að stjórna gagnaflæði á áhrifaríkan hátt verða skilaboð að veita forriturum viðmót til að stjórna leið og álagsjafnvægi. Þökk sé þessu munu verktaki geta, með því að nota örþjónustumynstur (samsöfnun, umboð, keðju, útibú osfrv.), leyst bæði venjuleg vandamál og þau sem koma sjaldan upp.

Frá viðskiptasjónarmiði er sveigjanleiki eitt af áhættustýringartækjunum. Aðalatriðið er að fullnægja beiðnum viðskiptavina með því að nota búnaðinn sem best:

  • Þegar kraftur búnaðar eykst vegna framfara. Hann verður ekki aðgerðalaus vegna ófullkomins hugbúnaðar. Erlang mælist lóðrétt vel og mun alltaf geta nýtt alla CPU kjarna og tiltækt minni;
  • Í skýjaumhverfi getum við stjórnað magni búnaðar eftir núverandi eða áætluðu álagi og tryggt SLA.

bilanaþol

Við skulum íhuga tvö meginreglur: "Brekking er óviðunandi" og "Það verða alltaf mistök." Fyrir fyrirtæki þýðir bilun í hugbúnaði tap á peningum og það sem verra er, tap á orðspori. Jafnvægi á milli mögulegs taps og kostnaðar við að þróa villuþolinn hugbúnað er oft hægt að finna málamiðlun.

Til skamms tíma, arkitektúr sem felur í sér bilanaþol sparar peninga við að kaupa óhefðbundnar klasalausnir. Þeir eru dýrir og þeir eru líka með pöddur.
Til lengri tíma litið borgar gallaþolinn arkitektúr sig margfalt til baka á öllum stigum þróunar.
Skilaboð innan kóðagrunnsins gera þér kleift að vinna ítarlega úr samspili íhluta innan kerfisins á þróunarstigi. Þetta einfaldar verkefnið við að bregðast við og stjórna bilunum, þar sem allir mikilvægir íhlutir höndla bilanir og kerfið sem myndast veit hvernig á að fara sjálfkrafa í eðlilegt horf eftir bilun með hönnun.

Viðbragðsflýti

Óháð bilunum verður umsóknin að svara beiðnum og uppfylla SLA. Raunin er sú að fólk vill ekki bíða, svo fyrirtæki verða að laga sig að því. Búist er við að fleiri og fleiri umsóknir séu mjög móttækilegar.
Móttækileg forrit starfa í næstum rauntíma. Erlang VM starfar í mjúkum rauntímaham. Fyrir sum svæði, svo sem hlutabréfaviðskipti, lyf og eftirlit með iðnaðarbúnaði, er harður rauntímahamur mikilvægur.
Móttækileg kerfi bæta UX og gagnast fyrirtækinu.

Bráðabirgðayfirlit

Þegar ég skipulagði þessa grein vildi ég deila reynslu minni af því að búa til skilaboðamiðlara og byggja flókin kerfi út frá því. En fræðilegi og hvatningarhlutinn reyndist vera nokkuð umfangsmikill.
Í seinni hluta greinarinnar mun ég tala um blæbrigði þess að innleiða skiptipunkta, skilaboðamynstur og beitingu þeirra.
Í þriðja hluta verður fjallað um almenn atriði varðandi skipulagningu þjónustu, leiðarlýsingu og jafnvægi. Við skulum tala um hagnýtu hliðina á sveigjanleika og bilanaþol kerfa.

Lok fyrri hluta.

Photo Shoot @lucabravo.

Heimild: www.habr.com

Bæta við athugasemd