Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru

Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru

Kaabo, Habr! Emi ni Artem Karamyshev, ori ti ẹgbẹ iṣakoso eto Awọn solusan awọsanma Mail.Ru (MCS). A ti ni ọpọlọpọ awọn ifilọlẹ ọja tuntun ni ọdun to kọja. A fẹ lati rii daju pe awọn iṣẹ API jẹ iwọn irọrun, ifarada-aṣiṣe, ati ṣetan fun idagbasoke iyara ni fifuye olumulo. Syeed wa ni imuse lori OpenStack, ati pe Mo fẹ lati sọ fun ọ kini awọn iṣoro ifarada ẹbi paati ti a ni lati yanju lati gba eto ifarada-aṣiṣe. Mo ro pe eyi yoo jẹ igbadun fun awọn ti o tun ṣe agbekalẹ awọn ọja lori OpenStack.

Ifarada ẹbi gbogbogbo ti pẹpẹ kan ni ti resilience ti awọn paati rẹ. Nitorinaa a yoo maa lọ nipasẹ gbogbo awọn ipele nibiti a ti ṣe idanimọ awọn eewu ati tiipa wọn.

Ẹya fidio ti itan yii, orisun akọkọ eyiti o jẹ ijabọ kan ni apejọ Uptime ọjọ 4, ṣeto nipasẹ ITSumma, o le rii lori Uptime Community YouTube ikanni.

Resiliency ti awọn ti ara faaji

Apa gbangba ti awọsanma MCS ti da ni bayi ni awọn ile-iṣẹ data Tier III meji, laarin wọn nibẹ ni okun dudu ti ara rẹ, ti o wa ni ipamọ ni ipele ti ara nipasẹ awọn ipa-ọna oriṣiriṣi, pẹlu igbejade ti 200 Gbit/s. Ipele III pese ipele pataki ti ifarada ẹbi fun awọn amayederun ti ara.

Okun dudu ti wa ni ipamọ ni awọn ipele ti ara ati ọgbọn. Ilana ifiṣura ikanni jẹ aṣetunṣe, awọn iṣoro dide, ati pe a n ṣe ilọsiwaju ibaraẹnisọrọ nigbagbogbo laarin awọn ile-iṣẹ data.

Fun apẹẹrẹ, laipẹ sẹhin, lakoko ti o n ṣiṣẹ ni kanga kan nitosi ọkan ninu awọn ile-iṣẹ data, olutọpa kan fọ paipu kan, ati inu paipu yii mejeeji ni akọkọ ati okun USB opiti afẹyinti. Ikanni ibaraẹnisọrọ ọlọdun-ẹbi wa pẹlu ile-iṣẹ data ti jade lati jẹ ipalara ni aaye kan, ni kanga. Gẹgẹ bẹ, a ti padanu apakan ti awọn amayederun. A ṣe awọn ipinnu ati ṣe nọmba awọn iṣe, pẹlu fifi sori awọn opiti afikun ni kanga ti o wa nitosi.

Ni awọn ile-iṣẹ data awọn aaye wiwa ti awọn olupese ibaraẹnisọrọ si ẹniti a ṣe ikede awọn asọtẹlẹ wa nipasẹ BGP. Fun itọsọna nẹtiwọọki kọọkan, metric ti o dara julọ ti yan, eyiti ngbanilaaye awọn alabara oriṣiriṣi lati pese pẹlu didara asopọ to dara julọ. Ti ibaraẹnisọrọ nipasẹ olupese kan ba lọ silẹ, a tun ṣe ipa ọna wa nipasẹ awọn olupese ti o wa.

Ti olupese ba kuna, a yipada laifọwọyi si atẹle. Ni iṣẹlẹ ti ikuna ti ọkan ninu awọn ile-iṣẹ data, a ni ẹda digi ti awọn iṣẹ wa ni ile-iṣẹ data keji, eyiti o gba gbogbo ẹrù.

Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru
Resiliency ti ara amayederun

Ohun ti a lo fun ifarada aṣiṣe ipele-elo

Iṣẹ wa ni itumọ ti lori nọmba awọn paati orisun ṣiṣi.

ExaBGP jẹ iṣẹ kan ti o ṣe awọn iṣẹ ṣiṣe nọmba kan nipa lilo ilana ipa ọna agbara ti o da lori BGP. A máa ń lò ó dáadáa láti polówó àwọn àdírẹ́ẹ̀sì IP tí a jẹ́ funfun nípasẹ̀ èyí tí àwọn oníṣe ń ráyè sí API.

HAProxy jẹ iwọntunwọnsi fifuye giga ti o fun ọ laaye lati tunto awọn ofin iwọntunwọnsi ijabọ ti o rọ pupọ ni awọn ipele oriṣiriṣi ti awoṣe OSI. A lo lati dọgbadọgba ni iwaju gbogbo awọn iṣẹ: awọn apoti isura infomesonu, awọn alagbata ifiranṣẹ, awọn iṣẹ API, awọn iṣẹ wẹẹbu, awọn iṣẹ inu inu wa - ohun gbogbo wa lẹhin HAProxy.

API ohun elo - ohun elo wẹẹbu ti a kọ sinu Python, pẹlu eyiti olumulo n ṣakoso awọn amayederun ati iṣẹ rẹ.

Ohun elo Osise (lẹhin ti oṣiṣẹ larọwọto) - ni awọn iṣẹ OpenStack, eyi jẹ daemon amayederun ti o fun ọ laaye lati tan kaakiri awọn aṣẹ API si awọn amayederun. Fun apẹẹrẹ, ẹda disiki waye ninu oṣiṣẹ, ati pe ibeere ẹda waye ninu ohun elo API.

Standard OpenStack Ohun elo Architecture

Pupọ awọn iṣẹ ti o dagbasoke fun OpenStack gbiyanju lati tẹle ilana kan. Iṣẹ kan nigbagbogbo ni awọn ẹya 2: API ati awọn oṣiṣẹ (awọn alaṣẹ ẹhin). Gẹgẹbi ofin, API jẹ ohun elo WSGI ni Python, eyiti o ṣe ifilọlẹ boya bi ilana ominira (daemon), tabi lilo Nginx ti o ti ṣetan tabi olupin wẹẹbu Apache. API ṣe ilana ibeere olumulo ati fi awọn ilana siwaju si ohun elo oṣiṣẹ fun ipaniyan. Gbigbe naa waye nipa lilo alagbata ifiranṣẹ kan, nigbagbogbo RabbitMQ, awọn miiran ko ni atilẹyin daradara. Nigbati awọn ifiranṣẹ ba de ọdọ alagbata, wọn ni ilọsiwaju nipasẹ awọn oṣiṣẹ ati, ti o ba jẹ dandan, da esi pada.

Ilana yii jẹ pẹlu awọn aaye ikuna ti o wọpọ ti o ya sọtọ: RabbitMQ ati ibi ipamọ data. Ṣugbọn RabbitMQ ti ya sọtọ laarin iṣẹ kan ati, ni imọran, le jẹ ẹni kọọkan fun iṣẹ kọọkan. Nitorinaa ni MCS a ya awọn iṣẹ wọnyi pọ bi o ti ṣee ṣe fun iṣẹ akanṣe kọọkan a ṣẹda aaye data lọtọ, RabbitMQ lọtọ. Ọna yii dara nitori pe ni iṣẹlẹ ti ijamba ni diẹ ninu awọn aaye ipalara, kii ṣe gbogbo iṣẹ naa ṣubu, ṣugbọn apakan nikan.

Nọmba awọn ohun elo oṣiṣẹ jẹ ailopin, nitorinaa API le ni irọrun ṣe iwọn petele lẹhin awọn iwọntunwọnsi lati le mu iṣẹ pọ si ati ifarada ẹbi.

Diẹ ninu awọn iṣẹ nilo isọdọkan laarin iṣẹ naa nigbati awọn iṣẹ ṣiṣe lẹsẹsẹ ti eka ba waye laarin awọn API ati awọn oṣiṣẹ. Ni idi eyi, ile-iṣẹ iṣọpọ kan ni a lo, eto iṣupọ gẹgẹbi Redis, Memcache, ati bẹbẹ lọ, eyiti o jẹ ki oṣiṣẹ kan sọ fun miiran pe iṣẹ-ṣiṣe yii ni a yàn fun u ("jọwọ maṣe gba"). A lo etcd. Gẹgẹbi ofin, awọn oṣiṣẹ n ṣiṣẹ ni itara pẹlu data data, kọ ati ka alaye lati ibẹ. A lo mariadb gẹgẹbi ibi ipamọ data, eyiti o wa ninu iṣupọ multimaster.

Iṣẹ ẹyọkan Ayebaye yii ti ṣeto ni ọna ti a gba ni gbogbogbo fun OpenStack. O le ṣe akiyesi bi eto pipade, fun eyiti awọn ọna ti iwọn ati ifarada ẹbi jẹ kedere. Fun apẹẹrẹ, fun ifarada aṣiṣe API, o to lati fi iwọntunwọnsi si iwaju wọn. Awọn oṣiṣẹ wiwọn jẹ aṣeyọri nipasẹ jijẹ nọmba wọn.

Ojuami alailagbara ninu gbogbo ero jẹ RabbitMQ ati MariaDB. Wọn faaji ye kan lọtọ article Ni yi article Mo fẹ si idojukọ lori API ẹbi ifarada.

Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru
Opentack Ohun elo Architecture. Iwontunwonsi ati ifarada ẹbi ti Syeed awọsanma

Ṣiṣe aṣiṣe-ọlọdun HAProxy iwọntunwọnsi ni lilo ExaBGP

Lati jẹ ki awọn API wa ni iwọn, yara ati ifarada-aṣiṣe, a fi iwọntunwọnsi fifuye si iwaju wọn. A yan HAProxy. Ni ero mi, o ni gbogbo awọn abuda pataki fun iṣẹ-ṣiṣe wa: iwọntunwọnsi ni ọpọlọpọ awọn ipele OSI, wiwo iṣakoso, irọrun ati iwọntunwọnsi, nọmba nla ti awọn ọna iwọntunwọnsi, atilẹyin fun awọn tabili igba.

Iṣoro akọkọ ti o nilo lati yanju jẹ ifarada aṣiṣe ti oniwọntunwọnsi funrararẹ. Nfi fifi sori ẹrọ iwọntunwọnsi kan tun ṣẹda aaye ikuna: awọn fifọ iwọntunwọnsi ati awọn ipadanu iṣẹ. Lati ṣe idiwọ eyi lati ṣẹlẹ, a lo HAProxy ni apapo pẹlu ExaBGP.

ExaBGP gba ọ laaye lati ṣe ilana kan fun ṣiṣe ayẹwo ipo iṣẹ kan. A lo ẹrọ yii lati ṣayẹwo iṣẹ ṣiṣe ti HAProxy ati, ni ọran awọn iṣoro, mu iṣẹ HAProxy ṣiṣẹ lati BGP.

Ilana ExaBGP+HAProxy

  1. A fi sọfitiwia pataki sori ẹrọ, ExaBGP ati HAProxy, lori awọn olupin mẹta.
  2. A ṣẹda a loopback ni wiwo lori kọọkan olupin.
  3. Lori gbogbo awọn olupin mẹta a yan adiresi IP funfun kanna si wiwo yii.
  4. Adirẹsi IP funfun kan ti wa ni ipolowo si Intanẹẹti nipasẹ ExaBGP.

Ifarada aṣiṣe jẹ aṣeyọri nipasẹ ipolowo adiresi IP kanna lati gbogbo awọn olupin mẹta. Lati oju-ọna nẹtiwọọki kan, adirẹsi kanna ni iraye si lati awọn hops oriṣiriṣi mẹta ti o tẹle. Olulana naa rii awọn ipa-ọna kanna mẹta, yan ipo ti o ga julọ ti wọn da lori metric tirẹ (eyi nigbagbogbo jẹ aṣayan kanna), ati ijabọ naa lọ si ọkan ninu awọn olupin naa.

Ni ọran ti awọn iṣoro pẹlu iṣiṣẹ ti HAProxy tabi ikuna olupin, ExaBGP da duro lati kede ipa-ọna, ati ijabọ laisiyonu yipada si olupin miiran.

Nitorinaa, a ṣaṣeyọri ifarada ẹbi ti iwọntunwọnsi.

Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru
Ifarada aṣiṣe ti awọn iwọntunwọnsi HAProxy

Eto naa ti jade lati jẹ alaipe: a kọ bi a ṣe le ṣe ifipamọ HAProxy, ṣugbọn ko kọ bi a ṣe le pin ẹru laarin awọn iṣẹ naa. Nitorinaa, a faagun ero yii diẹ diẹ: a tẹsiwaju si iwọntunwọnsi laarin ọpọlọpọ awọn adirẹsi IP funfun.

Iwontunwonsi da lori DNS pẹlu BGP

Ọrọ ti iwọntunwọnsi fifuye fun HAProxy wa ko ni ipinnu. Sibẹsibẹ, o le yanju ni irọrun, bi a ti ṣe nibi.

Lati dọgbadọgba awọn olupin mẹta iwọ yoo nilo awọn adirẹsi IP funfun 3 ati DNS atijọ ti o dara. Ọkọọkan awọn adirẹsi wọnyi ni ipinnu lori wiwo loopback ti HAProxy kọọkan ati ipolowo si Intanẹẹti.

Ni OpenStack, lati ṣakoso awọn orisun, a lo itọsọna iṣẹ kan, eyiti o ṣe apejuwe API ipari ti iṣẹ kan pato. Ninu itọsọna yii a forukọsilẹ orukọ ìkápá kan - public.infra.mail.ru, eyiti o yanju nipasẹ DNS nipasẹ awọn adirẹsi IP oriṣiriṣi mẹta. Bi abajade, a gba pinpin fifuye laarin awọn adirẹsi mẹta nipasẹ DNS.

Ṣugbọn niwọn igba ti o n kede awọn adirẹsi IP funfun a ko ṣakoso awọn pataki yiyan olupin, eyi kii ṣe iwọntunwọnsi sibẹsibẹ. Ni deede, olupin kan ṣoṣo ni yoo yan ti o da lori oga adiresi IP, ati pe awọn meji miiran yoo wa laišišẹ nitori pe ko si awọn metiriki kan pato ni BGP.

A bẹrẹ fifiranṣẹ awọn ipa ọna nipasẹ ExaBGP pẹlu awọn metiriki oriṣiriṣi. Oniwọntunwọnsi kọọkan ṣe ipolowo gbogbo awọn adirẹsi IP funfun mẹta, ṣugbọn ọkan ninu wọn, akọkọ fun iwọntunwọnsi yii, ni ipolowo pẹlu metiriki to kere julọ. Nitorinaa lakoko ti gbogbo awọn iwọntunwọnsi mẹta n ṣiṣẹ, awọn ipe si adiresi IP akọkọ lọ si iwọntunwọnsi akọkọ, awọn ipe si keji si keji, ati awọn ipe si kẹta si kẹta.

Kini yoo ṣẹlẹ nigbati ọkan ninu awọn iwọntunwọnsi ṣubu? Ti eyikeyi iwọntunwọnsi ba kuna, adirẹsi akọkọ rẹ tun wa ni ipolowo lati awọn meji miiran, ati pe a tun pin ijabọ laarin wọn. Nitorinaa, a fun olumulo ni ọpọlọpọ awọn adirẹsi IP ni ẹẹkan nipasẹ DNS. Nipa iwọntunwọnsi nipasẹ DNS ati awọn metiriki oriṣiriṣi, a gba paapaa pinpin ẹru naa kọja gbogbo awọn iwọntunwọnsi mẹta. Ati ni akoko kanna a ko padanu ifarada aṣiṣe.

Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru
Iwontunwonsi HAProxy da lori DNS + BGP

Ibaṣepọ laarin ExaBGP ati HAProxy

Nitorinaa, a ṣe imuse ifarada ẹbi ni ọran ti olupin naa lọ, da lori didaduro ikede awọn ipa-ọna. Ṣugbọn HAProxy le tii fun awọn idi miiran ju ikuna olupin lọ: awọn aṣiṣe iṣakoso, awọn ikuna laarin iṣẹ naa. A fẹ lati yọ iwọntunwọnsi fifọ kuro labẹ ẹru ni awọn ọran wọnyi paapaa, ati pe a nilo ẹrọ ti o yatọ.

Nitorinaa, faagun ero iṣaaju, a ṣe imuse lilu ọkan laarin ExaBGP ati HAProxy. Eyi jẹ imuse sọfitiwia ti ibaraenisepo laarin ExaBGP ati HAProxy, nigbati ExaBGP nlo awọn iwe afọwọkọ aṣa lati ṣayẹwo ipo awọn ohun elo.

Lati ṣe eyi, o nilo lati tunto oluyẹwo ilera ni atunto ExaBGP, eyiti o le ṣayẹwo ipo HAProxy. Ninu ọran wa, a tunto ẹhin ilera ni HAProxy, ati lati ẹgbẹ ExaBGP a ṣayẹwo pẹlu ibeere GET ti o rọrun. Ti ikede ba dẹkun ṣẹlẹ, lẹhinna HAProxy ṣeese ko ṣiṣẹ ati pe ko si iwulo lati polowo rẹ.

Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru
Ṣayẹwo Ilera HAProxy

Awọn ẹlẹgbẹ HAProxy: amuṣiṣẹpọ igba

Ohun ti o tẹle lati ṣe ni lati mu awọn akoko ṣiṣẹpọ. Nigbati o ba n ṣiṣẹ nipasẹ awọn iwọntunwọnsi pinpin, o nira lati ṣeto ibi ipamọ ti alaye nipa awọn akoko alabara. Ṣugbọn HAProxy jẹ ọkan ninu awọn iwọntunwọnsi diẹ ti o le ṣe eyi nitori iṣẹ ṣiṣe Awọn ẹlẹgbẹ - agbara lati gbe awọn tabili igba laarin awọn ilana HAProxy oriṣiriṣi.

Awọn ọna iwọntunwọnsi oriṣiriṣi wa: awọn ti o rọrun bii yika-Robin, ati pe o gbooro sii, nigbati a ba ranti igba alabara, ati ni gbogbo igba ti o pari lori olupin kanna bi tẹlẹ. A fẹ lati ṣe aṣayan keji.

HAProxy nlo awọn tabili igi lati ṣafipamọ awọn akoko alabara ti ẹrọ yii. Wọn fipamọ adiresi IP atilẹba ti alabara, adirẹsi ibi-afẹde ti a yan (ẹhin ẹhin) ati diẹ ninu alaye iṣẹ. Ni deede, awọn tabili igi ni a lo lati ṣafipamọ orisun-IP + ibi-afẹde-IP bata, eyiti o wulo julọ fun awọn ohun elo ti ko le gbe ipo igba olumulo nigba iyipada si iwọntunwọnsi miiran, fun apẹẹrẹ, ni ipo iwọntunwọnsi RoundRobin.

Ti a ba kọ tabili igi kan lati gbe laarin awọn ilana HAProxy oriṣiriṣi (laarin eyiti iwọntunwọnsi waye), awọn iwọntunwọnsi wa yoo ni anfani lati ṣiṣẹ pẹlu adagun kan ti awọn tabili igi. Eyi yoo jẹ ki o ṣee ṣe lati yipada lainidi ti nẹtiwọọki alabara ti ọkan ninu awọn iwọntunwọnsi ba kuna;

Fun iṣiṣẹ to dara, iṣoro ti adiresi IP orisun ti iwọntunwọnsi lati eyiti a ti ṣeto igba naa gbọdọ jẹ ipinnu. Ninu ọran wa, eyi jẹ adirẹsi ti o ni agbara lori wiwo loopback.

Iṣẹ ti o tọ ti awọn ẹlẹgbẹ jẹ aṣeyọri nikan labẹ awọn ipo kan. Iyẹn ni, awọn akoko akoko TCP gbọdọ tobi to tabi iyipada gbọdọ yara to ki igba TCP ko ni akoko lati fopin si. Sibẹsibẹ, o gba laaye fun iyipada lainidi.

Ni IaaS a ni iṣẹ ti a ṣe nipa lilo imọ-ẹrọ kanna. Eyi Fifuye Iwontunws.funfun bi iṣẹ kan fun OpenStack, eyi ti a npe ni Octavia. O da lori awọn ilana HAProxy meji ati ni ibẹrẹ pẹlu atilẹyin fun awọn ẹlẹgbẹ. Wọn ti fihan ara wọn dara julọ ni iṣẹ yii.

Aworan naa ni ọna ṣiṣe fihan gbigbe ti awọn tabili ẹlẹgbẹ laarin awọn iṣẹlẹ HAProxy mẹta, a dabaa atunto kan lori bii eyi ṣe le tunto:

Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru
Awọn ẹlẹgbẹ HAProxy (imuṣiṣẹpọ igba)

Ti o ba ṣe ilana kanna, iṣẹ rẹ gbọdọ ni idanwo ni pẹkipẹki. Kii ṣe otitọ pe yoo ṣiṣẹ ni fọọmu kanna 100% ti akoko naa. Sugbon o kere o yoo ko padanu stick tabili nigba ti o ba nilo lati ranti awọn ose ká orisun IP.

Idiwọn nọmba awọn ibeere nigbakanna lati ọdọ alabara kanna

Eyikeyi awọn iṣẹ ti o wa ni gbangba, pẹlu awọn API wa, le jẹ koko-ọrọ si awọn ainiye ti awọn ibeere. Awọn idi fun wọn le jẹ iyatọ patapata, lati awọn aṣiṣe olumulo si awọn ikọlu ti a fojusi. A jẹ DDoSed lorekore nipasẹ awọn adirẹsi IP. Awọn alabara nigbagbogbo ṣe awọn aṣiṣe ninu awọn iwe afọwọkọ wọn ati fun wa ni mini-DDoSs.

Ona kan tabi omiran, afikun aabo gbọdọ wa ni pese. Ojutu ti o han gedegbe ni lati fi opin si nọmba awọn ibeere API ati pe ko padanu akoko Sipiyu ṣiṣe awọn ibeere irira.

Lati ṣe iru awọn ihamọ bẹ, a lo awọn opin oṣuwọn, ti a ṣeto lori ipilẹ ti HAProxy, ni lilo awọn tabili ọpá kanna. Ṣiṣeto awọn opin jẹ ohun rọrun ati gba ọ laaye lati ṣe idinwo olumulo nipasẹ nọmba awọn ibeere si API. Algoridimu ranti orisun IP lati eyiti awọn ibeere ti ṣe ati fi opin si nọmba awọn ibeere nigbakanna lati ọdọ olumulo kan. Nitoribẹẹ, a ṣe iṣiro apapọ profaili fifuye API fun iṣẹ kọọkan ati ṣeto opin kan ti ≈ 10 igba iye yii. A tẹsiwaju lati ṣe atẹle ipo naa ni pẹkipẹki ati tọju ika wa lori pulse.

Kini eleyi dabi ni iṣe? A ni awọn onibara ti o lo awọn API autoscaling wa ni gbogbo igba. Wọn ṣẹda awọn ẹrọ foju to meji si ọdun mẹta ni owurọ ati paarẹ wọn ni irọlẹ. Fun OpenStack, ṣiṣẹda ẹrọ foju kan, pẹlu awọn iṣẹ PaaS, nilo o kere ju awọn ibeere API 1000, nitori ibaraenisepo laarin awọn iṣẹ tun waye nipasẹ API.

Iru gbigbe ti awọn iṣẹ-ṣiṣe fa kan iṣẹtọ tobi fifuye. A ṣe ayẹwo ẹru yii, a gba awọn oke giga lojoojumọ, pọ si wọn ni ilọpo mẹwa, ati pe eyi di opin oṣuwọn wa. A pa ika wa lori pulse. Nigbagbogbo a rii awọn bot ati awọn ọlọjẹ ti n gbiyanju lati wo wa lati rii boya a ni awọn iwe afọwọkọ CGA eyikeyi ti o le ṣiṣẹ, a n ge wọn ni itara.

Bii o ṣe le ṣe imudojuiwọn koodu koodu rẹ laisi akiyesi awọn olumulo

A tun ṣe imuṣe ifarada aṣiṣe ni ipele ti awọn ilana imuṣiṣẹ koodu. Awọn abawọn le wa lakoko awọn yipo, ṣugbọn ipa wọn lori wiwa iṣẹ le dinku.

A ṣe imudojuiwọn awọn iṣẹ wa nigbagbogbo ati pe a gbọdọ rii daju pe koodu koodu ti ni imudojuiwọn laisi ni ipa lori awọn olumulo. A ṣakoso lati yanju iṣoro yii nipa lilo awọn agbara iṣakoso ti HAProxy ati imuse ti Tiipa Graceful ninu awọn iṣẹ wa.

Lati yanju iṣoro yii, o jẹ dandan lati rii daju iṣakoso iwọntunwọnsi ati tiipa awọn iṣẹ “tọ”:

  • Ninu ọran ti HAProxy, iṣakoso ni a ṣe nipasẹ faili iṣiro, eyiti o jẹ iho pataki kan ati pe o ti ṣalaye ni atunto HAProxy. O le fi awọn aṣẹ ranṣẹ si nipasẹ stdio. Ṣugbọn ọpa iṣakoso iṣeto akọkọ wa jẹ ohun ti o ṣeeṣe, nitorinaa o ni module ti a ṣe sinu fun iṣakoso HAProxy. Eyi ti a lo ni itara.
  • Pupọ julọ ti API ati awọn iṣẹ Engine ṣe atilẹyin awọn imọ-ẹrọ tiipa oore-ọfẹ: nigba tiipa, wọn duro de iṣẹ lọwọlọwọ lati pari, jẹ ibeere http tabi iṣẹ iṣẹ kan. Ohun kanna ni o ṣẹlẹ pẹlu oṣiṣẹ. O mọ gbogbo awọn iṣẹ-ṣiṣe ti o n ṣe ati pari nigbati o ba ti pari ohun gbogbo ni aṣeyọri.

Ṣeun si awọn aaye meji wọnyi, algorithm ailewu fun imuṣiṣẹ wa dabi eyi.

  1. Olùgbéejáde ṣajọpọ akojọpọ koodu tuntun (fun wa eyi ni RPM), ṣe idanwo ni agbegbe dev, ṣe idanwo rẹ ni ipele, o si fi silẹ ni ibi ipamọ ipele.
  2. Olùgbéejáde ṣeto iṣẹ-ṣiṣe fun imuṣiṣẹ pẹlu apejuwe alaye julọ ti “awọn ohun-ọṣọ”: ẹya ti package tuntun, apejuwe ti iṣẹ ṣiṣe tuntun ati awọn alaye miiran nipa imuṣiṣẹ ti o ba jẹ dandan.
  3. Alakoso eto bẹrẹ imudojuiwọn. Ṣe ifilọlẹ iwe-iṣere Ansible, eyiti o ṣe atẹle naa:
    • Gba package kan lati ibi ipamọ ipele ati lo lati ṣe imudojuiwọn ẹya ti package ni ibi ipamọ ọja naa.
    • Ṣe akojọpọ atokọ ti awọn ẹhin ti iṣẹ imudojuiwọn.
    • Pa iṣẹ akọkọ silẹ lati ṣe imudojuiwọn ni HAProxy ati duro fun awọn ilana rẹ lati pari ṣiṣe. Ṣeun si pipade oore-ọfẹ, a ni igboya pe gbogbo awọn ibeere alabara lọwọlọwọ yoo pari ni aṣeyọri.
    • Lẹhin ti API ati awọn oṣiṣẹ ti duro patapata, ati HAProxy ti wa ni pipa, koodu naa ti ni imudojuiwọn.
    • Awọn iṣẹ ṣiṣe ti o ṣeeṣe.
    • Fun iṣẹ kọọkan, “awọn ọwọ” kan ni a fa, eyiti o ṣe idanwo ẹyọkan lori nọmba awọn idanwo bọtini ti a ti ṣalaye tẹlẹ. Ayẹwo ipilẹ ti koodu tuntun waye.
    • Ti a ko ba ri awọn aṣiṣe ni igbesẹ ti tẹlẹ, ẹhin ti mu ṣiṣẹ.
    • Jẹ ká gbe lori si tókàn backend.
  4. Lẹhin ti gbogbo awọn ẹhin ti ni imudojuiwọn, awọn idanwo iṣẹ ti ṣe ifilọlẹ. Ti wọn ba nsọnu, lẹhinna olupilẹṣẹ n wo eyikeyi iṣẹ ṣiṣe tuntun ti o ṣẹda.

Eyi pari imuṣiṣẹ.

Bawo ni faaji wẹẹbu ọlọdun-aṣiṣe ti ṣe imuse ni Syeed Awọn solusan awọsanma Mail.ru
Iṣẹ imudojuiwọn ọmọ

Ilana yii kii yoo ṣiṣẹ ti a ko ba ni ofin kan. A ṣe atilẹyin mejeeji ti atijọ ati awọn ẹya tuntun ni ogun. Ni ilosiwaju, ni ipele ti idagbasoke sọfitiwia, o ti gbe kalẹ pe paapaa ti awọn ayipada ba wa ninu ibi ipamọ data iṣẹ, wọn kii yoo fọ koodu ti tẹlẹ. Bi abajade, ipilẹ koodu ti ni imudojuiwọn diẹdiẹ.

ipari

Pínpín awọn ero ti ara mi nipa faaji WEB kan ti o ni ifarada, Emi yoo fẹ lati ṣe akiyesi awọn aaye pataki rẹ lekan si:

  • ifarada aṣiṣe ti ara;
  • ifarada aṣiṣe nẹtiwọki (awọn oniwontunwọnsi, BGP);
  • ifarada ẹbi ti sọfitiwia ti a lo ati idagbasoke.

Idurosinsin uptime gbogbo eniyan!

orisun: www.habr.com

Fi ọrọìwòye kun