Zomangamanga za ntchito zogawidwa. Zero pafupifupi

Zomangamanga za ntchito zogawidwa. Zero pafupifupi

Dziko siliima nji. Kupita patsogolo kumabweretsa zovuta zatsopano zaukadaulo. Mogwirizana ndi zomwe zikufunika kusintha, kamangidwe ka machitidwe azidziwitso kuyenera kusinthika. Lero tikambirana za zomangamanga zomwe zimayendetsedwa ndi zochitika, concurrency, concurrency, asynchrony, ndi momwe mungakhalire mwamtendere ndi zonsezi ku Erlang.

Mau oyamba

Malingana ndi kukula kwa dongosolo lopangidwa ndi zofunikira zake, ife, omanga, timasankha njira yotumizirana mauthenga mu dongosolo. Nthawi zambiri, kukonza kuyanjana kwa mautumiki, njira yogwirira ntchito ikhoza kukhala chiwembu ndi broker, mwachitsanzo, potengera RabbitMQ kapena kafka. Koma nthawi zina kutuluka kwa zochitika, SLA ndi mlingo wa kayendetsedwe ka kayendetsedwe ka kayendetsedwe kake ndi kotero kuti mauthenga okonzeka si oyenera kwa ife. Zachidziwikire, mutha kusokoneza dongosololi pang'ono potenga udindo woyendetsa ndi kupanga magulu, mwachitsanzo pogwiritsa ntchito ZeroMQ kapena nanomsg. Koma ngati dongosololi liri ndi mphamvu zokwanira ndi luso la gulu la Erlang, ndiye kuti nkhani yoyambitsa bungwe linalake imafuna kuphunzira mwatsatanetsatane ndi kulungamitsidwa kwachuma.

Mutu wamapulogalamu omwe amagawidwa mwachangu ndi wotakata. Kuti musunge momwe nkhaniyo ilili, nkhani yomwe tidzakambitsirana lero ingokhala malo amodzi omangidwa pa Erlang/Elixir. Erlang/OTP ecosystem imakupatsani mwayi wogwiritsa ntchito zomanga movutikira pang'ono. Koma mulimonse, tidzafunika kusanjikiza mauthenga.

Theoretical maziko

Kupanga kumayamba ndi kufotokozera zolinga ndi zopinga. Cholinga chachikulu sichili m'dera lachitukuko chifukwa cha chitukuko. Tiyenera kupeza chida chotetezeka komanso chowopsa chomwe titha kupanga ndipo, chofunikira kwambiri, kupanga mapulogalamu amakono a magawo osiyanasiyana: kuyambira pamapulogalamu a seva imodzi omwe amathandizira omvera ang'onoang'ono, omwe pambuyo pake amatha kukhala magulu mpaka 50. -60 node, kutha ndi mabungwe am'magulu. Choncho, cholinga chachikulu ndikukulitsa phindu mwa kuchepetsa mtengo wa chitukuko ndi umwini wa dongosolo lomaliza.

Tiyeni tiwonetsere zofunikira 4 za dongosolo lomaliza:

  • Π‘zochitika.
    Dongosololi nthawi zonse limakhala lokonzeka kudutsa zochitika ndikuchita zofunikira;
  • Мscalability.
    midadada payokha akhoza sikelo zonse vertically ndi yopingasa. Dongosolo lonse liyenera kukhala lotha kukula kosalekeza kopingasa;
  • Оkulekerera zolakwika.
    Magawo onse ndi mautumiki onse ayenera kuyambiranso kulephera;
  • Π“nthawi yotsimikizika yoyankha.
    Nthawi ndi yamtengo wapatali ndipo ogwiritsa ntchito sayenera kudikira motalika.

Kumbukirani nthano yakale ya "Injini yaying'ono yomwe ingathe"? Kuti dongosolo lopangidwira lituluke bwino pagawo la prototype ndikupita patsogolo, maziko ake ayenera kukwaniritsa zofunikira zochepa SMOG.

Mfundo ina imawonjezedwa ku mauthenga ngati chida chothandizira komanso maziko a ntchito zonse: kumasuka kwa okonza mapulogalamu.

Zokhazikika pazochitika

Kuti pulogalamu ikule kuchokera pa seva imodzi kupita pagulu, kamangidwe kake kuyenera kuthandizira kulumikizana kotayirira. Mtundu wa asynchronous umakwaniritsa izi. Mmenemo, wotumiza ndi wolandira amasamala za katundu wa uthengawo ndipo musadandaule za kufalitsa ndi kuyendetsa mkati mwa dongosolo.

Scalability

Scalability ndi magwiridwe antchito amachitidwe ali pafupi wina ndi mnzake. Zida zogwiritsira ntchito ziyenera kugwiritsa ntchito zonse zomwe zilipo. Pamene titha kugwiritsa ntchito bwino mphamvu zathu komanso njira zathu zokonzera bwino kwambiri, timawononga ndalama zochepa pazida.

Mkati mwa makina amodzi, Erlang amapanga malo opikisana kwambiri. Zotsalira pakati pa concurrency ndi parallelism zitha kukhazikitsidwa posankha kuchuluka kwa ulusi wamakina ogwiritsira ntchito omwe akupezeka ku Erlang VM ndi kuchuluka kwa okonza mapulogalamu omwe amagwiritsa ntchito ulusiwu.
Njira za Erlang sizigawana boma ndipo zimagwira ntchito mopanda kutsekereza. Izi zimapereka latency yotsika komanso kutulutsa kwapamwamba kuposa mapulogalamu achikhalidwe oletsa. Wokonzekera wa Erlang amaonetsetsa kuti CPU ndi IO zigawidwe mwachilungamo, ndipo kusakhalapo kwa kutsekereza kumapangitsa kuti pulogalamuyo iyankhe ngakhale pakulemedwa kwakukulu kapena kulephera.

Pamagulu amagulu, vuto la kutaya liliponso. Ndikofunikira kuti makina onse omwe ali mgululi azidzaza mofanana komanso kuti netiweki isalemedwe. Tangoganizirani momwe zinthu zilili: kuchuluka kwa anthu ogwiritsa ntchito kumafika pamabalancers omwe akubwera (haproxy, nginx, ndi zina), amagawa zopempha zomwe zimakonzedwa mofanana momwe angathere pakati pa zotsalira zomwe zilipo. M'kati mwazogwiritsidwa ntchito, ntchito yomwe ikugwiritsira ntchito mawonekedwe ofunikira ndi mtunda wotsiriza ndipo idzafunika kupempha mautumiki ena angapo kuti ayankhe pempho loyamba. Zopempha zamkati zimafunanso kuwongolera ndi kusanja.
Kuti muzitha kuyendetsa bwino mayendedwe a data, mauthenga amayenera kupatsa opanga mawonekedwe kuti athe kuyang'anira mayendedwe ndi kuwongolera katundu. Chifukwa cha izi, Madivelopa adzatha, pogwiritsa ntchito njira za microservice (aggregator, proxy, chain, nthambi, ndi zina), kuthetsa mavuto onse ndi omwe samapezeka kawirikawiri.

Kuchokera pamalingaliro abizinesi, scalability ndi chimodzi mwa zida zowongolera zoopsa. Chinthu chachikulu ndikukwaniritsa zopempha zamakasitomala pogwiritsa ntchito zida:

  • Pamene mphamvu ya zida ikuwonjezeka chifukwa cha kupita patsogolo. Sizidzakhala zopanda pake chifukwa cha mapulogalamu opanda ungwiro. Erlang amakula molunjika bwino ndipo nthawi zonse amatha kugwiritsa ntchito ma CPU cores ndi kukumbukira komwe kulipo;
  • M'madera amtambo, tikhoza kuyang'anira kuchuluka kwa zipangizo malinga ndi katundu wamakono kapena wonenedweratu ndikutsimikizira SLA.

kulekerera zolakwika

Tiyeni tikambirane mfundo ziwiri: β€œZolephereka n’zosavomerezeka” ndiponso β€œPadzakhala zolephera nthawi zonse.” Kwa bizinesi, kulephera kwa mapulogalamu kumatanthauza kutaya ndalama, ndipo choyipa kwambiri, kutayika kwa mbiri. Kulinganiza pakati pa zotayika zomwe zingatheke ndi mtengo wa kupanga mapulogalamu olekerera zolakwika, kusagwirizana nthawi zambiri kungapezeke.

M'kanthawi kochepa, zomangamanga zomwe zimaphatikizira kulekerera zolakwika zimapulumutsa ndalama pogula njira zopangira mashelufu. Ndiokwera mtengo komanso ali ndi nsikidzi.
M'kupita kwa nthawi, zomangamanga zolekerera zolakwika zimadzilipira nthawi zambiri pazigawo zonse za chitukuko.
Kutumizirana mameseji mkati mwa code base kumakupatsani mwayi wofotokozera mwatsatanetsatane kulumikizana kwa magawo mkati mwa dongosolo pagawo lachitukuko. Izi zimachepetsa ntchito yoyankha ndikuwongolera zolephera, popeza zigawo zonse zofunikira zimagwirira ntchito zolephera, ndipo dongosolo lotsatira limadziwa momwe mungabwererenso kunthawi zonse pambuyo polephera ndi mapangidwe.

Kuyankha

Mosasamala kanthu za kulephera, ntchitoyo iyenera kuyankha zopempha ndikukumana ndi SLA. Chowonadi ndichakuti anthu safuna kudikirira, chifukwa chake mabizinesi ayenera kusintha moyenera. Mapulogalamu ochulukirapo akuyembekezeka kuyankha kwambiri.
Mapulogalamu omvera amagwira ntchito pafupi ndi nthawi yeniyeni. Erlang VM imagwira ntchito mofewa zenizeni zenizeni. Kwa madera ena, monga malonda a masheya, mankhwala, ndi kuwongolera zida za mafakitale, njira yolimba yanthawi yeniyeni ndiyofunikira.
Makina omvera amawongolera UX ndikupindulitsa bizinesi.

Chidule choyambirira

Pokonzekera nkhaniyi, ndinkafuna kugawana zomwe ndakumana nazo popanga mauthenga otumizirana mauthenga ndikumanga machitidwe ovuta kutengera izo. Koma gawo lazambiri komanso lolimbikitsa lidakhala lalikulu kwambiri.
Mu gawo lachiwiri la nkhaniyi, ndilankhula za ma nuances akugwiritsa ntchito malo osinthira, njira zotumizirana mauthenga ndi kugwiritsa ntchito kwawo.
Mu gawo lachitatu tikambirana za kasamalidwe ka ntchito, mayendedwe ndi kusanja. Tiyeni tikambirane mbali zothandiza za scalability ndi zolakwika kulolerana kachitidwe.

Kutha kwa gawo loyamba.

chithunzi @lucabravo.

Source: www.habr.com

Kuwonjezera ndemanga