Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions

Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions

Sawubona, Habr! Ngingu-Artem Karamyshev, inhloko yethimba lokuphatha uhlelo I-Mail.Ru Cloud Solutions (MCS). Sibe nokwethulwa kwemikhiqizo eminingi emisha onyakeni odlule. Besifuna ukwenza isiqiniseko sokuthi izinsiza ze-API zikhula kalula, zibekezelela amaphutha, futhi zilungele ukukhula ngokushesha komthwalo wabasebenzisi. Inkundla yethu isetshenziswa ku-OpenStack, futhi ngifuna ukukutshela ukuthi yiziphi izinkinga zokubekezelela amaphutha obekufanele sizixazulule ukuze sithole uhlelo olubekezelela amaphutha. Ngicabanga ukuthi lokhu kuzothakazelisa kulabo futhi abathuthukisa imikhiqizo ku-OpenStack.

Ukubekezelela amaphutha kukonke kweplatifomu kuhlanganisa ukuqina kwezingxenye zayo. Ngakho kancane kancane sizodlula kuwo wonke amazinga lapho sihlonze khona ubungozi futhi sazivala.

Inguqulo yevidiyo yale ndaba, umthombo wayo oyinhloko bekuwumbiko engqungqutheleni ye-Uptime day 4, ehlelwe ngu ITSumma, uyabona esiteshini se-YouTube se-Uptime Community.

Ukuqina kwezakhiwo ezibonakalayo

Ingxenye yomphakathi yefu le-MCS manje isisekelwe ezikhungweni zedatha ze-Tier III ezimbili, phakathi kwazo kukhona i-fiber yayo emnyama, egcinwe ezingeni elibonakalayo imizila ehlukene, enomphumela ongu-200 Gbit/s. Isigaba III sihlinzeka ngezinga elidingekayo lokubekezelela amaphutha nengqalasizinda ebonakalayo.

I-fiber emnyama igcinwe kuwo womabili amazinga angokwenyama nanengqondo. Inqubo yokubhukha isiteshi ibiphindaphinda, kwavela izinkinga, futhi sihlala sithuthukisa ukuxhumana phakathi kwezikhungo zedatha.

Ngokwesibonelo, esikhathini esingeside esidlule, ngesikhathi sisebenza emthonjeni oseduze kwesinye sezikhungo zedatha, i-excavator yaphula ipayipi, futhi ngaphakathi kwaleli payipi kwakukhona kokubili ikhebula le-optical main kanye nebhekhaphu. Isiteshi sethu sokuxhumana esibekezelela amaphutha nesikhungo sedatha siphenduke saba sengozini ngesikhathi esisodwa, emthonjeni. Ngokunjalo, silahlekelwe yingxenye yengqalasizinda. Sifinyelele iziphetho futhi sathatha izinyathelo eziningi, ezihlanganisa ukufaka ama-optics engeziwe emthonjeni oseduze.

Ezikhungweni zedatha kukhona amaphuzu okuba khona kwabahlinzeki bezokuxhumana esisakaza kubo iziqalo zethu nge-BGP. Ngokuqondisa kwenethiwekhi ngakunye, kukhethwa imethrikhi engcono kakhulu, evumela amaklayenti ahlukene ukuthi anikezwe ikhwalithi yokuxhumana engcono kakhulu. Uma ukuxhumana ngomhlinzeki oyedwa kwehla, sakha kabusha umzila wethu ngabahlinzeki abatholakalayo.

Uma umhlinzeki ehluleka, sishintshela kolandelayo ngokuzenzakalelayo. Uma kwenzeka ukwehluleka kwesinye sezikhungo zedatha, sinekhophi yesibuko yezinsizakalo zethu esikhungweni sedatha sesibili, esithatha wonke umthwalo.

Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions
Ukuqina kwengqalasizinda ebonakalayo

Esikusebenzisa ekubekezeleleni amaphutha ezingeni lesicelo

Isevisi yethu yakhelwe phezu kwenani lezingxenye ze-opensource.

ExaBGP iyisevisi esebenzisa inani lemisebenzi esebenzisa iphrothokholi yomzila oguquguqukayo esekelwe ku-BGP. Siyisebenzisela ukukhangisa amakheli ethu e-IP agunyaziwe abasebenzisi abafinyelela ngawo i-API.

HAProxy iyibhalansi yomthwalo ophezulu ekuvumela ukuthi ulungiselele imithetho yokulinganisa yethrafikhi eguquguquka kakhulu emazingeni ahlukene emodeli ye-OSI. Siyisebenzisela ukulinganisela phambi kwazo zonke izinsiza: isizindalwazi, abadayisi bemiyalezo, izinsiza ze-API, izinsiza zewebhu, amaphrojekthi ethu angaphakathi - yonke into ingemuva kwe-HAProxy.

Uhlelo lokusebenza lwe-API - uhlelo lokusebenza lwewebhu olubhalwe nge-python, lapho umsebenzisi elawula ingqalasizinda yakhe kanye nenkonzo yakhe.

Isicelo somsebenzi (ngemuva kwalokhu isisebenzi nje) - Ezinsizeni ze-OpenStack, lena i-daemon yengqalasizinda ekuvumela ukuthi usakaze imiyalo ye-API kungqalasizinda. Isibonelo, ukudalwa kwediski kwenzeka esisebenzini, futhi isicelo sokudala senzeka ku-API yohlelo lokusebenza.

I-Standard OpenStack Application Architecture

Izinsizakalo eziningi ezithuthukiswe i-OpenStack zizama ukulandela ipharadigm eyodwa. Isevisi ngokuvamile iqukethe izingxenye ezi-2: i-API nabasebenzi (ababulali abangemuva). Njengomthetho, i-API iyisicelo se-WSGI ku-python, eyethulwa njengenqubo ezimele (i-daemon), noma kusetshenziswa iseva yewebhu ye-Nginx esenziwe ngomumo noma ye-Apache. I-API icubungula isicelo somsebenzisi futhi idlulisele eminye imiyalelo kuhlelo lokusebenza lwesisebenzi ukuze sifezwe. Ukudlulisa kwenzeka kusetshenziswa umthengisi womlayezo, ngokuvamile i-RabbitMQ, abanye abasekelwa kahle. Lapho imilayezo ifika kumthengisi, icutshungulwa ngabasebenzi futhi, uma kunesidingo, ibuyisela impendulo.

Le paradigm ibandakanya amaphuzu avamile okuhluleka: RabbitMQ kanye nesizindalwazi. Kodwa i-RabbitMQ ihlukaniswe phakathi kwenkonzo eyodwa futhi, ngokombono, ingaba umuntu ngamunye ngenkonzo ngayinye. Ngakho-ke kwa-MCS sihlukanisa lezi zinsizakalo ngangokunokwenzeka; kuphrojekthi ngayinye sakha isizindalwazi esihlukile, i-RabbitMQ ehlukile. Le ndlela yinhle ngoba uma kwenzeka ingozi ezindaweni ezisengozini, ayiwohloki yonke inkonzo, kodwa ingxenye yayo kuphela.

Inombolo yezicelo zabasebenzi ayinamkhawulo, ngakho-ke i-API ingakwazi ukukala kalula ngokuvundlile ngemuva kwamabhalansi ukuze kwandiswe ukusebenza nokubekezelela amaphutha.

Ezinye izinsiza zidinga ukuxhumana ngaphakathi kwesevisi lapho imisebenzi elandelanayo eyinkimbinkimbi yenzeka phakathi kwama-API nabasebenzi. Kulesi simo, kusetshenziswa isikhungo esisodwa sokuxhumanisa, isistimu yeqoqo efana ne-Redis, Memcache, njll, evumela isisebenzi esisodwa ukuthi sitshele omunye ukuthi lo msebenzi unikezwe yena ("sicela ungathathi"). Sisebenzisa njll. Njengomthetho, abasebenzi baxhumana ngenkuthalo ne-database, babhale futhi bafunde ulwazi olusuka lapho. Sisebenzisa i-mariadb njengesizindalwazi, esitholakala kuqoqo labaphathi abaningi.

Le sevisi yakudala eyodwa ihlelwa ngendlela evame ukwamukelwa ku-OpenStack. Kungabhekwa njengohlelo oluvaliwe, lapho izindlela zokukala nokubekezelela amaphutha zisobala impela. Isibonelo, ngokubekezelela iphutha le-API, kwanele ukubeka ibhalansi phambi kwabo. Ukukhuphula abasebenzi kufinyelelwa ngokwandisa isibalo sabo.

Iphuzu elibuthakathaka kulo lonke uhlelo i-RabbitMQ ne-MariaDB. Izakhiwo zabo zifanelwe i-athikili ehlukile. Kulesi sihloko ngifuna ukugxila ekubekezeleleni amaphutha e-API.

Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions
I-Openstack Application Architecture. Ukulinganisa nokubekezelela amaphutha kweplathifomu yamafu

Ukwenza i-HAProxy balancer ibekezelele amaphutha isebenzisa i-ExaBGP

Ukuze senze ama-API ethu akhule, asheshe futhi abekezelele amaphutha, sibeka isilinganisi somthwalo phambi kwawo. Sikhethe i-HAProxy. Ngokubona kwami, inazo zonke izici ezidingekayo zomsebenzi wethu: ukulinganisa emazingeni amaningana e-OSI, isikhombimsebenzisi sokuphatha, ukuguquguquka nokunwebeka, inani elikhulu lezindlela zokulinganisa, ukusekelwa kwamatafula weseshini.

Inkinga yokuqala okwakudingeka ixazululwe kwakuwukubekezelela iphutha kwe-balancer ngokwayo. Ukufaka nje ibhalansi kudala iphuzu lokwehluleka: ibhalansi iyaphuka bese isevisi iphahlazeka. Ukuvimbela lokhu ukuthi kungenzeki, sisebenzise i-HAProxy ngokuhlangana ne-ExaBGP.

I-ExaBGP ikuvumela ukuthi usebenzise indlela yokuhlola isimo sesevisi. Sisebenzise le ndlela ukuhlola ukusebenza kwe-HAProxy futhi, uma kunezinkinga, vala isevisi ye-HAProxy evela ku-BGP.

Isikimu se-ExaBGP+HAProxy

  1. Sifaka isofthiwe edingekayo, i-ExaBGP ne-HAProxy, kumaseva amathathu.
  2. Sakha i-loopback interface kuseva ngayinye.
  3. Kuwo womathathu amaseva sinikeza ikheli le-IP elimhlophe elifanayo kulesi sixhumi esibonakalayo.
  4. Ikheli le-IP elimhlophe likhangiswa ku-inthanethi nge-ExaBGP.

Ukubekezelela amaphutha kufinyelelwa ngokukhangisa ikheli le-IP elifanayo kuwo womathathu amaseva. Ngokubuka kwenethiwekhi, ikheli elifanayo liyafinyeleleka kuma-hop amathathu ahlukene alandelayo. I-router ibona imizila emithathu efanayo, ikhetha okubaluleke kakhulu kuzo ngokusekelwe kumethrikhi yayo (lokhu ngokuvamile kuyinketho efanayo), futhi ithrafikhi iya kwenye yeziphakeli kuphela.

Esimeni sezinkinga ngokusebenza kwe-HAProxy noma ukwehluleka kweseva, i-ExaBGP iyayeka ukumemezela umzila, futhi ithrafikhi ishintshela kwenye iseva.

Ngakho-ke, sizuze ukubekezelelana kwamaphutha we-balancer.

Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions
Ukubekezelelwa kwephutha kwe-HAProxy balancers

Uhlelo luvele lungaphelele: sifunde ukuthi singagcina kanjani i-HAProxy, kodwa asizange sifunde ukusabalalisa umthwalo ngaphakathi kwezinsizakalo. Ngakho-ke, sandise lolu hlelo kancane: siqhubekele ekulinganiseni phakathi kwamakheli amaningana e-IP amhlophe.

Ukulinganisa kusekelwe ku-DNS kanye ne-BGP

Indaba yokulinganisa umthwalo we-HAProxy yethu isalokhu ingaxazululiwe. Nokho, ingaxazululwa kalula, njengoba senzile lapha.

Ukuze ulinganisele amaseva amathathu uzodinga amakheli e-IP amhlophe angu-3 kanye ne-DNS endala enhle. Ikheli ngalinye lalawa linqunywa ku-loopback interface ye-HAProxy ngayinye futhi ikhangiswe ku-inthanethi.

Ku-OpenStack, ukuphatha izinsiza, kusetshenziswa uhla lwemibhalo lwesevisi, olucacisa i-API yephoyinti lokugcina yesevisi ethile. Kulo mkhombandlela sibhalisa igama lesizinda - public.infra.mail.ru, elixazululwa nge-DNS ngamakheli amathathu e-IP ahlukene. Njengomphumela, sithola ukusatshalaliswa komthwalo phakathi kwamakheli amathathu nge-DNS.

Kodwa njengoba lapho simemezela amakheli e-IP amhlophe asilawuli okubalulekile ekukhetheni iseva, lokhu akukalingani okwamanje. Ngokuvamile, iseva eyodwa kuphela ezokhethwa ngokusekelwe kubukhulu bekheli le-IP, futhi ezinye ezimbili zizoba zingasebenzi ngenxa yokuthi awekho amamethrikhi ashiwo ku-BGP.

Siqale ukuthumela imizila nge-ExaBGP ngamamethrikhi ahlukene. Ibhalansi ngayinye ikhangisa womathathu amakheli e-IP amhlophe, kodwa elilodwa lawo, eliyinhloko lalesi bhalansi, likhangiswa nge-metric encane. Ngakho-ke ngenkathi womathathu amabhalansi esebenza, izingcingo eziya ekhelini le-IP lokuqala ziya kweyesilinganisi sokuqala, izingcingo ziye kweyesibili ziye kweyesibili, bese zishayela kweyesithathu kuya kweyesithathu.

Kwenzekani lapho omunye wabalinganisi ewa? Uma noma iyiphi ibhalansi ihluleka, ikheli layo elikhulu lisakhangiswa kwamanye amabili, futhi ithrafikhi isatshalaliswa kabusha phakathi kwawo. Ngakho, sinikeza umsebenzisi amakheli e-IP amaningana ngesikhathi esisodwa nge-DNS. Ngokulinganisa nge-DNS namamethrikhi ahlukene, sithola ukusatshalaliswa okulinganayo komthwalo kuwo wonke amabhalansi amathathu. Futhi ngesikhathi esifanayo asilahlekelwa ukubekezelelana kwamaphutha.

Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions
Ukulinganisa i-HAProxy ngokusekelwe ku-DNS + BGP

Ukusebenzisana phakathi kwe-ExaBGP ne-HAProxy

Ngakho-ke, sisebenzise ukubekezelela iphutha uma iseva ihamba, ngokusekelwe ekumiseni isimemezelo semizila. Kodwa i-HAProxy ingavala ezinye izizathu kunokwehluleka kweseva: amaphutha okuphatha, ukwehluleka ngaphakathi kwesevisi. Sifuna ukususa isilinganisi esiphukile ngaphansi komthwalo nakulezi zimo, futhi sidinga indlela ehlukile.

Ngakho-ke, sandise uhlelo lwangaphambilini, sisebenzise ukushaya kwenhliziyo phakathi kwe-ExaBGP ne-HAProxy. Lokhu ukuqaliswa kwesofthiwe yokusebenzelana phakathi kwe-ExaBGP ne-HAProxy, lapho i-ExaBGP isebenzisa imibhalo yangokwezifiso ukuhlola isimo sezinhlelo zokusebenza.

Ukuze wenze lokhu, udinga ukumisa umhloli wezempilo ku-ExaBGP config, engabheka isimo se-HAProxy. Esimweni sethu, silungiselele i-backend yezempilo ku-HAProxy, futhi kusukela ohlangothini lwe-ExaBGP sihlola ngesicelo esilula se-GET. Uma isimemezelo siyeka ukwenzeka, khona-ke i-HAProxy cishe cishe ayisebenzi futhi asikho isidingo sokuyikhangisa.

Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions
I-HAProxy Health Check

I-HAProxy Peers: ukuvumelanisa isikhathi

Into elandelayo okufanele yenziwe kwakuwukuvumelanisa amaseshini. Lapho usebenza ngamabhalansi asabalalisiwe, kunzima ukuhlela ukugcinwa kolwazi mayelana nezikhathi zamaklayenti. Kodwa i-HAProxy ingesinye sezilinganisi ezimbalwa ezingenza lokhu ngenxa yokusebenza Kontanga - amandla okudlulisa amathebula eseshini phakathi kwezinqubo ezahlukene ze-HAProxy.

Kunezindlela ezahlukene zokulinganisa: ezilula njenge irobhothi eliyisiyingi, futhi inwetshiwe, lapho iseshini yeklayenti ikhunjulwa, futhi isikhathi ngasinye igcina iseva efanayo nangaphambili. Besifuna ukusebenzisa inketho yesibili.

I-HAProxy isebenzisa amatafula okunamathela ukuze ulondoloze izikhathi zeklayenti zalo mshini. Balondoloza ikheli le-IP langempela leklayenti, ikheli eliqondiwe elikhethiwe (i-backend) kanye nolunye ulwazi lwesevisi. Ngokuvamile, amatafula okunamathela asetshenziselwa ukugcina ipheya ye-IP + yendawo-IP, ewusizo ikakhulukazi ezinhlelweni ezingakwazi ukudlulisa umongo weseshini yomsebenzisi lapho ushintshela kwesinye isilinganisi, isibonelo, kumodi yokulinganisa ye-RoundRobin.

Uma ithebula lezinti lifundiswa ukuhamba phakathi kwezinqubo ezihlukene ze-HAProxy (phakathi kwalapho ukulinganisa kwenzeka), abalingani bethu bazokwazi ukusebenza ngechibi elilodwa lamatafula enduku. Lokhu kuzokwenza kube nokwenzeka ukushintsha kalula inethiwekhi yeklayenti uma omunye wababhalansi ehluleka; ukusebenza namaseshini amaklayenti kuzoqhubeka kuma-backend afanayo nakhethwe ngaphambili.

Ukuze usebenze kahle, inkinga yekheli le-IP lomthombo webhalansi lapho iseshini isungulwe khona kufanele ixazululwe. Esimweni sethu, leli yikheli eliguqukayo ku-loopback interface.

Umsebenzi olungile wontanga utholakala kuphela ngaphansi kwezimo ezithile. Okusho ukuthi, ukuphela kwesikhathi kwe-TCP kufanele kube kukhulu ngokwanele noma ukushintsha kufanele kusheshe ngokwanele ukuze iseshini ye-TCP ingabi naso isikhathi sokunqanyulwa. Nokho, ivumela ukushintsha okungenamthungo.

Ku-IAaS sinesevisi eyakhiwe kusetshenziswa ubuchwepheshe obufanayo. Lokhu Layisha Ibhalansi njengesevisi ye-OpenStack, ebizwa ngokuthi i-Octavia. Isekelwe kuzinqubo ezimbili ze-HAProxy futhi ekuqaleni ihlanganisa ukusekelwa kontanga. Bazibonakalise besezingeni eliphezulu kule nkonzo.

Isithombe sibonisa ngokuhlelekile ukunyakaza kwamathebula ontanga phakathi kwezimo ezintathu ze-HAProxy, kuhlongozwa ukulungiselelwa kokuthi lokhu kungamiswa kanjani:

Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions
I-HAProxy Peers (ukuvumelanisa isikhathi)

Uma usebenzisa uhlelo olufanayo, ukusebenza kwalo kufanele kuhlolwe ngokucophelela. Akulona iqiniso ukuthi izosebenza ngendlela efanayo 100% yesikhathi. Kodwa okungenani ngeke ulahlekelwe amatafula okunamathela lapho udinga ukukhumbula i-IP yomthombo weklayenti.

Ukunciphisa inani lezicelo kanyekanye ezivela kuklayenti elifanayo

Noma imaphi amasevisi atholakala esidlangalaleni, okuhlanganisa nama-API ethu, angaba ngaphansi kwezicelo eziningi. Izizathu zazo zingahluka ngokuphelele, kusukela emaphutheni omsebenzisi kuya ekuhlaselweni okuhlosiwe. Siba ne-DDoSed ngamakheli e-IP ngezikhathi ezithile. Amaklayenti avame ukwenza amaphutha emibhalweni yawo futhi asinike ama-mini-DDoSs.

Ngandlela thize, ukuvikelwa okwengeziwe kufanele kuhlinzekwe. Isixazululo esisobala ukukhawulela inani lezicelo ze-API futhi ungachithi isikhathi se-CPU ukucubungula izicelo ezinonya.

Ukuze sisebenzise imikhawulo enjalo, sisebenzisa imikhawulo yezinga, ehlelwe ngesisekelo se-HAProxy, sisebenzisa amatafula enduku efanayo. Ukusetha imikhawulo kulula futhi kukuvumela ukuthi ukhawulele umsebenzisi ngenani lezicelo ku-API. I-algorithm ikhumbula i-IP yomthombo lapho izicelo zenziwa khona futhi ikhawulela inani lezicelo ngasikhathi sinye ezivela kumsebenzisi oyedwa. Yebo, sibale isilinganiso sephrofayela yokulayisha kwe-API kusevisi ngayinye futhi sabeka umkhawulo ≈ izikhathi ezingu-10 zaleli nani. Siyaqhubeka nokuqapha ngokucophelela isimo futhi sigcine umunwe wethu ku-pulse.

Lokhu kubukeka kanjani ekusebenzeni? Sinamakhasimende asebenzisa i-autoscaling APIs yethu ngaso sonke isikhathi. Bakha cishe imishini ebonakalayo engamakhulu amabili kuya kwamathathu ekuseni bese beyisusa kusihlwa. Ku-OpenStack, ukudala umshini obonakalayo, kanye nezinsizakalo ze-PaaS, kudinga okungenani izicelo ze-API eziyi-1000, njengoba ukusebenzisana phakathi kwezinsizakalo nakho kwenzeka nge-API.

Ukudluliswa kwemisebenzi okunjalo kubangela umthwalo omkhulu. Sawuhlola lo mthwalo, saqoqa amanani aphakeme nsuku zonke, sawandisa ngokuphindwe kashumi, futhi lokhu kwaba umkhawulo wethu wezinga. Sigcina umunwe wethu ku-pulse. Sivame ukubona ama-bots nama-scanner abazama ukusibheka ukuze babone ukuthi asinazo yini izikripthi ze-CGA ezingase zisetshenziswe, siyazisika ngenkuthalo.

Uyibuyekeza kanjani i-codebase yakho ngaphandle kokuqaphela abasebenzisi

Siphinde sisebenzise ukubekezelela amaphutha ezingeni lezinqubo zokuthunyelwa kwekhodi. Kungase kube khona izinkinga ngesikhathi sokukhishwa, kodwa umthelela wazo ekutholakaleni kwesevisi ungancishiswa.

Sihlala sibuyekeza amasevisi ethu futhi kufanele siqinisekise ukuthi i-codebase ibuyekezwa ngaphandle kokuthikameza abasebenzisi. Sikwazile ukuxazulula le nkinga sisebenzisa amandla okuphatha e-HAProxy kanye nokuqaliswa kwe-Graceful Shutdown kumasevisi ethu.

Ukuze kuxazululwe le nkinga, kwakudingeka ukuqinisekisa ukulawulwa kwe-balancer kanye nokuvalwa "okulungile" kwezinsizakalo:

  • Endabeni ye-HAProxy, ukulawula kwenziwa ngefayela lezibalo, okuyisokhethi futhi elichazwe ku-HAProxy config. Ungathumela imiyalo kuyo nge-stdio. Kodwa ithuluzi lethu eliyinhloko lokulawula ukucushwa liyasebenza, ngakho linemojula eyakhelwe ngaphakathi yokuphatha i-HAProxy. Esikusebenzisa ngenkuthalo.
  • Iningi lezinsiza zethu ze-API neNjini zisekela ubuchwepheshe bokuvala shaqa okuhle: lapho kuvalwa, zilinda umsebenzi wamanje ukuthi uqedele, kungaba isicelo se-http noma umsebenzi othile wesevisi. Kwenzeka okufanayo nasesisebenzini. Iyayazi yonke imisebenzi eyenzayo futhi iphetha lapho isiqede yonke into ngempumelelo.

Ngenxa yalawa maphuzu amabili, i-algorithm ephephile yokuthunyelwa kwethu ibukeka kanje.

  1. Umthuthukisi uhlanganisa iphakheji entsha yekhodi (kithi lena i-RPM), uyayihlola endaweni ye-dev, ayivivinye esiteji, futhi ayishiye endaweni yokugcina yesiteji.
  2. Umthuthukisi usetha umsebenzi wokuthi usetshenziswe ngencazelo enemininingwane eminingi "yezinto zobuciko": inguqulo yephakheji entsha, incazelo yokusebenza okusha neminye imininingwane mayelana nokusetshenziswa uma kudingeka.
  3. Umlawuli wesistimu uqala isibuyekezo. Yethula i-Ansible playbook, yona eyenza lokhu okulandelayo:
    • Ithatha iphakheji endaweni yokugcina yesiteji futhi iyisebenzisele ukubuyekeza inguqulo yephakeji endaweni yokugcina yomkhiqizo.
    • Ihlanganisa uhlu lwezingemuva zesevisi ebuyekeziwe.
    • Ivala isevisi yokuqala ezobuyekezwa ku-HAProxy futhi ilinde ukuthi izinqubo zayo ziqede ukusebenza. Ngenxa yokuvala ucingo okuhle, siyaqiniseka ukuthi zonke izicelo zamaklayenti zamanje zizoqedwa ngempumelelo.
    • Ngemuva kokuthi i-API nabasebenzi bemiswe ngokuphelele, futhi i-HAProxy ivaliwe, ikhodi ibuyekezwa.
    • Ansible iqhuba izinsiza.
    • Kusevisi ngayinye, “izibambo” ezithile ziyadonswa, ezenza ukuhlola kweyunithi enanini lokuhlola okhiye abachazwe ngaphambilini. Ukuhlolwa okuyisisekelo kwekhodi entsha kuyenzeka.
    • Uma kungekho amaphutha atholakele esinyathelweni sangaphambilini, i-backend iyasebenza.
    • Asiqhubekele esigabeni esilandelayo.
  4. Ngemuva kokuthi wonke ama-backends abuyekeziwe, ukuhlolwa okusebenzayo kuyethulwa. Uma zingekho, unjiniyela uzobheka noma yikuphi ukusebenza okusha akudalile.

Lokhu kuqeda ukuthunyelwa.

Isakhiwo sewebhu esibekezelela amaphutha sisetshenziswa kanjani kuplathifomu ye-Mail.ru Cloud Solutions
Umjikelezo wokubuyekeza isevisi

Lolu hlelo belungeke lusebenze ukube besingenawo umthetho owodwa. Sisekela kokubili izinguqulo ezindala nezintsha empini. Ngaphambili, esigabeni sokuthuthukiswa kwesofthiwe, kubekwe ukuthi ngisho noma kukhona izinguquko ku-database yesevisi, ngeke baphule ikhodi yangaphambilini. Ngenxa yalokho, isisekelo sekhodi sibuyekezwa kancane kancane.

isiphetho

Ngokwabelana ngemicabango yami mayelana nesakhiwo se-WEB esibekezelela amaphutha, ngingathanda ukuphinda ngiphawule amaphuzu ayo abalulekile:

  • ukubekezelelana kwamaphutha ngokomzimba;
  • ukubekezelelana kwamaphutha enethiwekhi (abalancers, BGP);
  • ukubekezelelwa kwephutha kwesoftware esetshenzisiwe neyathuthukiswa.

Isikhathi sokuphumula esizinzile wonke umuntu!

Source: www.habr.com

Engeza amazwana