Blòk konstriksyon aplikasyon distribiye. Zewo apwoksimasyon

Blòk konstriksyon aplikasyon distribiye. Zewo apwoksimasyon

Mond lan pa kanpe. Pwogrè kreye nouvo defi teknolojik. Dapre kondisyon ki chanje, achitekti sistèm enfòmasyon yo dwe evolye. Jodi a nou pral pale sou evènman-kondwi achitekti, konkou, konkou, asynchrony, ak ki jan ou ka viv anpè ak tout bagay sa yo nan Erlang.

Entwodiksyon

Tou depan de gwosè sistèm ki fèt la ak kondisyon pou li, nou menm, devlopè yo, chwazi metòd pou echanje enfòmasyon nan sistèm nan. Nan pifò ka yo, yo òganize entèraksyon an nan sèvis, yon opsyon k ap travay ka yon konplo ak yon koutye, pou egzanp, ki baze sou RabbitMQ oswa kafka. Men pafwa koule nan evènman yo, SLA ak nivo kontwòl sou sistèm nan se konsa ke mesaj pare-fè pa apwopriye pou nou. Natirèlman, ou ka konplike sistèm nan yon ti kras pa pran responsablite pou kouch transpò a ak fòmasyon gwoup, pou egzanp lè l sèvi avèk ZeroMQ oswa nanomsg. Men, si sistèm nan gen ase debi ak kapasite nan yon grap Erlang estanda, Lè sa a, pwoblèm nan entwodwi yon antite adisyonèl mande pou etid detaye ak jistifikasyon ekonomik.

Sijè a nan aplikasyon reyaktif distribye se byen laj. Pou kenbe nan fòma atik la, sijè a nan diskisyon jodi a pral sèlman anviwònman omojèn bati sou Erlang/Elixir. Ekosistèm Erlang/OTP pèmèt ou aplike yon achitekti reyaktif ak pi piti efò. Men, nan nenpòt ka, nou pral bezwen yon kouch mesaj.

Baz teyorik

Design kòmanse ak defini objektif ak kontrent. Objektif prensipal la se pa nan zòn nan nan devlopman pou dedomajman pou devlopman. Nou bezwen jwenn yon zouti ki sekirize ak évolutif sou baz kote nou ka kreye epi, sa ki pi enpòtan, devlope aplikasyon modèn nan divès nivo: kòmanse nan aplikasyon pou yon sèl sèvè k ap sèvi yon ti odyans, ki pita ka devlope nan grap jiska 50. -60 nœuds, fini ak federasyon gwoup yo. Kidonk, objektif prensipal la se maksimize pwofi pa diminye pri a nan devlopman ak an komen nan sistèm final la.

Se pou nou mete aksan sou 4 kondisyon prensipal pou sistèm final la:

  • Сoryante evènman.
    Sistèm nan toujou pare pou pase nan koule nan evènman yo ak fè aksyon ki nesesè yo;
  • Мévolutivité.
    Blòk endividyèl yo ka scaled tou de vètikal ak orizontal. Tout sistèm nan dwe kapab kwasans orizontal enfini;
  • Оtolerans fòt.
    Tout nivo ak tout sèvis yo ta dwe kapab otomatikman retabli de echèk;
  • Гgaranti tan repons.
    Tan gen anpil valè epi itilizatè yo pa ta dwe tann twò lontan.

Sonje vye istwa a sou "Motè a ti kras ki te kapab"? Nan lòd pou sistèm ki fèt la avèk siksè sòti etap pwototip la epi yo dwe pwogresif, fondasyon li yo dwe satisfè kondisyon minimòm yo. SMOG.

Yon lòt pwen ajoute nan messagerie kòm yon zouti enfrastrikti ak baz pou tout sèvis yo: fasilite pou itilize pou pwogramè yo.

Oryante evènman

Pou yon aplikasyon grandi soti nan yon sèl sèvè nan yon gwoup, achitekti li yo dwe sipòte kouple ki lach. Modèl asynchrone a satisfè egzijans sa a. Nan li, moun k ap voye a ak moun k ap resevwa a pran swen sou chaj enfòmasyon mesaj la epi yo pa enkyete w sou transmisyon ak routage nan sistèm nan.

Évolutivité

Évolutivité ak efikasite sistèm yo akote youn ak lòt. Konpozan aplikasyon yo dwe kapab itilize tout resous ki disponib yo. Plis nou ka sèvi ak kapasite ak pi efikas metòd pwosesis nou yo, se mwens lajan nou depanse nan ekipman yo.

Nan yon sèl machin, Erlang kreye yon anviwònman trè konpetitif. Balans ki genyen ant konkourans ak paralelis ka tabli lè w chwazi kantite fil sistèm opere ki disponib pou Erlang VM a ak kantite pwogramasyon ki itilize fil sa yo.
Pwosesis Erlang pa pataje eta epi opere nan mòd ki pa bloke. Sa a bay latansi relativman ba ak debi ki pi wo pase aplikasyon tradisyonèl ki baze sou bloke. Planifikatè Erlang a asire alokasyon ki jis nan CPU ak IO, ak absans la nan bloke pèmèt aplikasyon an reponn menm pandan chaj pik oswa echèk.

Nan nivo gwoup la, pwoblèm nan ak jete egziste tou. Li enpòtan pou tout machin nan gwoup la chaje menm jan ak rezo a pa twò chaje. Ann imajine yon sitiyasyon: trafik itilizatè ateri sou balanse fèk ap rantre (haproxy, nginx, elatriye), yo distribye demann pwosesis menm jan posib ant seri backend ki disponib yo. Nan enfrastrikti aplikasyon an, sèvis ki aplike koòdone obligatwa a se sèlman dènye mil la epi li pral bezwen mande yon kantite lòt sèvis pou reponn a demann inisyal la. Demann entèn yo mande tou routage ak balanse.
Pou byen jere koule done, mesaj dwe bay devlopè yo yon koòdone pou jere routage ak balans chaj. Mèsi a sa a, devlopè yo pral kapab, lè l sèvi avèk modèl mikwosèvis (agregateur, proxy, chèn, branch, elatriye), rezoud tou de pwoblèm estanda ak pwoblèm ki raman parèt.

Soti nan yon pwen de vi biznis, évolutivité se youn nan zouti jesyon risk yo. Bagay pwensipal lan se satisfè demann kliyan yo lè l sèvi avèk ekipman an:

  • Lè pouvwa a nan ekipman ogmante kòm yon rezilta nan pwogrè. Li pa pral san fè anyen konsa akòz lojisyèl enpafè. Erlang balanse vètikal byen epi yo pral toujou kapab itilize tout nwayo CPU ak memwa ki disponib;
  • Nan anviwònman nwaj yo, nou ka jere kantite ekipman depann sou chaj aktyèl la oswa prevwa epi garanti SLA.

tolerans fòt

Ann konsidere de aksyòm: "Echèk yo pa akseptab" ak "Pwal toujou gen echèk." Pou yon biznis, echèk lojisyèl vle di pèt lajan, ak sa ki pi mal, pèt repitasyon. Balanse ant pèt posib ak pri pou devlope lojisyèl fòt-toleran, yo ka jwenn yon konpwomi souvan.

Nan kout tèm, yon achitekti ki enkòpore tolerans fay ekonomize lajan sou achte solisyon grapman ki pa nan etajè. Yo chè epi yo gen pinèz tou.
Nan tèm long la, yon achitekti ki toleran fay peye pou tèt li anpil fwa sou nan tout etap nan devlopman.
Mesaj nan baz kòd la pèmèt ou travay an detay entèraksyon eleman nan sistèm nan nan etap devlopman an. Sa a senplifye travay la nan reponn ak jere echèk, depi tout eleman kritik okipe echèk, ak sistèm nan ki kapab lakòz konnen ki jan yo otomatikman retounen nan nòmal apre yon echèk pa konsepsyon.

Reyaksyon

Kèlkeswa echèk, aplikasyon an dwe reponn a demann yo epi satisfè SLA a. Reyalite a se ke moun pa vle rete tann, kidonk biznis yo dwe adapte kòmsadwa. Plis ak plis aplikasyon yo espere yo dwe trè reponn.
Aplikasyon ki reponn opere nan prèske tan reyèl. Erlang VM opere nan mòd an tan reyèl. Pou kèk zòn, tankou komès stock, medikaman, ak kontwòl ekipman endistriyèl, mòd difisil an tan reyèl enpòtan.
Sistèm reponn amelyore UX ak benefisye biznis la.

Rezime preliminè

Lè w ap planifye atik sa a, mwen te vle pataje eksperyans mwen nan kreye yon koutye messagerie ak bati sistèm konplèks ki baze sou li. Men, pati nan teyorik ak motivasyon yo te tounen soti yo dwe byen vaste.
Nan dezyèm pati a nan atik la, mwen pral pale sou nuans yo nan aplikasyon pwen echanj, modèl mesaj ak aplikasyon yo.
Nan twazyèm pati a nou pral konsidere pwoblèm jeneral nan òganize sèvis, routage ak balanse. Ann pale sou bò pratik nan évolutivité ak tolerans fay nan sistèm yo.

Fen premye pati a.

Photo tire @lucabravo.

Sous: www.habr.com

Add nouvo kòmantè