Tubalan gini na aikace-aikacen da aka rarraba. Kimanin sifili

Tubalan gini na aikace-aikacen da aka rarraba. Kimanin sifili

Duniya ba ta tsaya cak ba. Ci gaba yana haifar da sababbin kalubale na fasaha. Dangane da canje-canjen buƙatu, gine-ginen tsarin bayanai dole ne su haɓaka. A yau za mu yi magana game da gine-ginen da ke tafiyar da al'amuran, haɗin kai, haɗin kai, asynchony, da kuma yadda zaku iya rayuwa cikin lumana tare da duk wannan a Erlang.

Gabatarwar

Dangane da girman tsarin da aka tsara da kuma buƙatunsa, mu, masu haɓakawa, za mu zaɓi hanyar musayar bayanai a cikin tsarin. A mafi yawan lokuta, don tsara hulɗar ayyuka, zaɓin aiki na iya zama makirci tare da dillali, misali, dangane da RabbitMQ ko kafka. Amma wani lokacin kwararar abubuwan da suka faru, SLA da matakin iko akan tsarin sune irin saƙon da aka shirya bai dace da mu ba. Tabbas, zaku iya dagula tsarin kadan ta hanyar ɗaukar nauyin jigilar jigilar kayayyaki da ƙirƙirar gungu, misali ta amfani da ZeroMQ ko nanomsg. Amma idan tsarin yana da isassun kayan aiki da damar daidaitaccen gungun Erlang, to batun gabatar da ƙarin mahallin yana buƙatar cikakken nazari da hujjar tattalin arziki.

Taken aikace-aikacen da aka rarraba masu amsawa yana da faɗi sosai. Don kiyaye cikin tsarin labarin, batun tattaunawar yau zai kasance kawai mahalli iri ɗaya da aka gina akan Erlang/Elixir. Tsarin muhalli na Erlang/OTP yana ba ku damar aiwatar da gine-gine mai ɗaukar nauyi tare da ƙaramin ƙoƙari. Amma a kowane hali, za mu buƙaci Layer saƙo.

Tushen ka'idar

Zane ya fara da ma'anar maƙasudi da ƙuntatawa. Babban burin ba shine a fannin ci gaba ba don ci gaba. Muna buƙatar samun ingantaccen kayan aiki mai ƙima akan abin da zamu iya ƙirƙira kuma, mafi mahimmanci, haɓaka aikace-aikacen zamani na matakai daban-daban: farawa daga aikace-aikacen uwar garken guda ɗaya waɗanda ke hidima ga ƙaramin masu sauraro, wanda daga baya zai iya haɓaka zuwa gungu na har zuwa 50. -60 nodes, yana ƙarewa tare da ƙungiyoyin tari. Don haka, babban makasudin shine haɓaka riba ta hanyar rage farashin ci gaba da mallakar tsarin ƙarshe.

Bari mu haskaka mahimman buƙatun guda 4 don tsarin ƙarshe:

  • Сtaron-daidaitacce.
    Tsarin koyaushe yana shirye don wucewa ta hanyar abubuwan da suka faru da kuma aiwatar da ayyukan da suka dace;
  • Мscalability.
    Ana iya daidaita tubalan guda ɗaya a tsaye da a kwance. Duk tsarin dole ne ya kasance yana iya haɓaka girma a kwance mara iyaka;
  • Оhakuri da laifi.
    Duk matakan da duk ayyuka yakamata su sami damar murmurewa ta atomatik daga gazawar;
  • Гtabbacin lokacin amsawa.
    Lokaci yana da mahimmanci kuma kada masu amfani su jira dogon lokaci.

Ka tuna da tsohuwar tatsuniya game da "Ƙananan injin da zai iya"? Domin tsarin da aka ƙera ya sami nasarar fita daga matakin samfur kuma ya kasance mai ci gaba, dole ne tushensa ya cika mafi ƙarancin buƙatu SMOG.

Ana ƙara ƙarin batu guda ɗaya zuwa saƙo azaman kayan aikin ababen more rayuwa da tushen duk ayyuka: sauƙin amfani ga masu shirye-shirye.

Matsala-matsala

Domin aikace-aikacen ya girma daga uwar garken guda ɗaya zuwa tari, dole ne tsarin gine-ginensa ya goyi bayan haɗaɗɗiyar sako-sako. Samfurin asynchronous ya cika wannan buƙatu. A ciki, mai aikawa da mai karɓa suna kula da nauyin bayanai na saƙon kuma kada ku damu game da watsawa da kuma hanyar sadarwa a cikin tsarin.

Ƙimar ƙarfi

Scalability da ingantaccen tsarin suna kusa da juna. Abubuwan abubuwan aikace-aikacen dole ne su sami damar amfani da duk albarkatun da ake da su. Da yadda za mu iya amfani da iya aiki yadda ya kamata da kuma mafi kyawun hanyoyin sarrafa mu, ƙarancin kuɗin da muke kashewa akan kayan aiki.

A cikin injin guda ɗaya, Erlang yana ƙirƙirar yanayi mai fa'ida sosai. Ana iya saita ma'auni tsakanin daidaituwa da daidaito ta hanyar zaɓar adadin zaren tsarin aiki da ke akwai ga Erlang VM da adadin masu tsara jadawalin da ke amfani da waɗannan zaren.
Hanyoyin Erlang ba sa raba yanayi kuma suna aiki a cikin yanayin da ba tare da toshewa ba. Wannan yana ba da ƙarancin jinkiri kuma mafi girma kayan aiki fiye da aikace-aikacen tushen toshewa na gargajiya. Mai tsara jadawalin Erlang yana tabbatar da daidaitaccen rabo na CPU da IO, kuma rashin toshewa yana ba da damar aikace-aikacen don amsawa ko da lokacin babban nauyi ko gazawa.

A matakin gungu, matsalar zubarwa ma tana nan. Yana da mahimmanci cewa duk injunan da ke cikin gungu an ɗora su daidai gwargwado kuma cewa hanyar sadarwa ba ta yi nauyi ba. Bari mu yi tunanin wani yanayi: zirga-zirgar mai amfani ya sauka akan ma'auni masu shigowa (haproxy, nginx, da sauransu), suna rarraba buƙatun sarrafawa daidai gwargwado tsakanin saitin bayanan baya. A cikin kayan aikin aikace-aikacen, sabis ɗin da ke aiwatar da ƙa'idar da ake buƙata shine mil na ƙarshe kawai kuma zai buƙaci buƙatar adadin wasu ayyuka don amsa buƙatun farko. Buƙatun ciki kuma suna buƙatar tuƙi da daidaitawa.
Don gudanar da tafiyar da bayanai yadda ya kamata, saƙon dole ne ya samar da masu haɓakawa tare da keɓancewa don gudanar da zirga-zirga da daidaita kaya. Godiya ga wannan, masu haɓakawa za su iya, ta amfani da tsarin microservice (aggregator, proxy, sarkar, reshe, da sauransu), don magance matsalolin daidaitattun da waɗanda ba kasafai suke tasowa ba.

Daga ra'ayi na kasuwanci, ƙaddamarwa yana ɗaya daga cikin kayan aikin haɗari. Babban abu shine gamsar da buƙatun abokin ciniki ta hanyar mafi kyawun amfani da kayan aiki:

  • Lokacin da ƙarfin kayan aiki ya karu a sakamakon ci gaba. Ba zai yi aiki ba saboda rashin cika software. Erlang yana da ma'auni a tsaye da kyau kuma koyaushe zai iya yin amfani da duk nau'ikan CPU da ƙwaƙwalwar ajiya;
  • A cikin yanayin girgije, za mu iya sarrafa adadin kayan aiki dangane da nauyin halin yanzu ko annabta da kuma garantin SLA.

hakuri da laifi

Bari mu yi la’akari da axioms guda biyu: “Ba za a yarda da gazawa ba” da kuma “A koyaushe za a yi kasawa.” Don kasuwanci, gazawar software yana nufin asarar kuɗi, kuma abin da ya fi muni, asarar suna. Daidaita tsakanin yuwuwar asara da farashin haɓaka software mai jurewa kuskure, ana iya samun sulhu sau da yawa.

A cikin ɗan gajeren lokaci, tsarin gine-ginen da ya haɗa da haƙuri da kuskure yana adana kuɗi akan siyan hanyoyin tari na kan layi. Suna da tsada kuma suna da kwari.
A cikin dogon lokaci, gine-ginen da ba ya jure wa kuskure yana biyan kansa sau da yawa a duk matakan ci gaba.
Saƙo a cikin tushen lambar yana ba ku damar yin aiki daki-daki game da hulɗar abubuwan da ke cikin tsarin a matakin haɓakawa. Wannan yana sauƙaƙa aikin amsawa da sarrafa gazawar, tunda duk mahimman abubuwan haɗin gwiwa suna ɗaukar gazawa, kuma tsarin da ya haifar ya san yadda za a koma al'ada ta atomatik bayan gazawar ta ƙira.

Mai da martani

Ko da kuwa gazawar, aikace-aikacen dole ne ya amsa buƙatun kuma ya sadu da SLA. Gaskiyar ita ce mutane ba sa son jira, don haka dole ne kasuwancin su daidaita daidai. Ana sa ran ƙarin aikace-aikacen za su kasance da karɓa sosai.
Aikace-aikace masu amsa suna aiki a kusa da ainihin lokaci. Erlang VM yana aiki a cikin yanayi mai laushi na ainihin lokacin. Ga wasu yankuna, kamar ciniki na hannun jari, magani, da sarrafa kayan aikin masana'antu, yanayin ainihin lokacin yana da mahimmanci.
Tsarin amsawa yana haɓaka UX kuma suna amfana da kasuwanci.

Bayanin farko

Lokacin shirya wannan labarin, Ina so in raba gwaninta na ƙirƙirar dillalin saƙo da gina hadaddun tsarin bisa shi. Amma bangaren ka'idar da karfafa gwiwa ya zama mai fadi sosai.
A cikin kashi na biyu na labarin, zan yi magana game da nuances na aiwatar da wuraren musayar, tsarin saƙon da aikace-aikacen su.
A kashi na uku za mu yi la'akari da batutuwa na gabaɗaya na tsara ayyuka, tuƙi da daidaitawa. Bari mu yi magana game da m gefen scalability da kuskure haƙuri na tsarin.

Karshen kashi na farko.

Photography @lucabravo.

source: www.habr.com

Add a comment