Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions

Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions

Salama, Habr! Artem Karamyshev aho, lehiben'ny ekipan'ny fitantanana rafitra Mail.Ru Cloud Solutions (MCS). Nahazo vokatra vaovao maro izahay tamin'ny taon-dasa. Te-hiantoka izahay fa ny serivisy API dia mora mivelatra, mandefitra amin'ny fahadisoana, ary vonona amin'ny fitomboana haingana amin'ny enta-mavesatry ny mpampiasa. Ny sehatray dia ampiharina amin'ny OpenStack, ary tiako ny hilaza aminao hoe inona ny olan'ny fandeferana amin'ny lesoka tsy maintsy novahantsika mba hahazoana rafitra mahazaka lesoka. Heveriko fa hahaliana ireo izay mamolavola vokatra amin'ny OpenStack ihany koa izany.

Ny fandeferana ankapobeny amin'ny sehatra iray dia ny faharetan'ny singa ao aminy. Noho izany dia handeha tsikelikely amin'ny ambaratonga rehetra izay nahitanay ny loza sy nanakatona azy ireo izahay.

Lahatsary amin'ity tantara ity, ny loharano voalohany amin'izany dia ny tatitra tamin'ny fihaonambe Uptime andro 4, nokarakarain'ny ITsumma, hitanao ao amin'ny fantsona YouTube Uptime Community.

Faharetan'ny rafitra ara-batana

Ny ampahany ho an'ny besinimaro amin'ny rahona MCS dia miorina amin'ny ivontoerana angon-drakitra roa Tier III, eo anelanelan'izy ireo dia misy ny fibre maizina, voatokana amin'ny ambaratonga ara-batana amin'ny lalana samihafa, miaraka amin'ny 200 Gbit / s. Ny Tier III dia manome ny haavon'ny fandeferana tsy maintsy ilaina amin'ny fotodrafitrasa ara-batana.

Ny fibre maizina dia voatokana amin'ny ambaratonga ara-batana sy lojika. Niverimberina ny fizotran'ny famandrihana fantsona, nipoitra ny olana, ary manatsara hatrany ny fifandraisana misy eo amin'ny ivontoerana data.

Ohatra, tsy ela akory izay, raha niasa tao amin'ny fantsakana iray teo akaikin'ny iray amin'ireo foibe data, nisy excavator nanapaka sodina, ary tao anatin'io fantsona io dia nisy tariby optika lehibe sy backup. Ny fantsom-pifandraisanay mandefitra amin'ny fahadisoam-panantenana miaraka amin'ny foibe angon-drakitra dia hita fa marefo amin'ny fotoana iray, ao anaty lavadrano. Noho izany, very ny ampahany amin’ny fotodrafitrasa. Nanatsoaka hevitra izahay ary nanao hetsika maromaro, anisan'izany ny fametrahana optika fanampiny ao amin'ny lavadrano mifanila.

Ao amin'ny ivon-toeram-baovao dia misy toerana misy ny mpanome tolotra fampitana hafatra amin'ny alàlan'ny BGP ny prefix-nay. Ho an'ny tari-dalana tsirairay, ny metrika tsara indrindra dia voafantina, izay ahafahan'ny mpanjifa samihafa omena ny kalitaon'ny fifandraisana tsara indrindra. Raha tsy misy ny fifandraisana amin'ny mpamatsy iray, dia manangana ny lalanay amin'ny alàlan'ny mpamatsy misy izahay.

Raha tsy mahomby ny mpamatsy iray dia mifindra ho azy amin'ny manaraka isika. Raha sendra ny tsy fahombiazan'ny iray amin'ireo foibe angon-drakitra, dia manana kopia fitaratra amin'ny serivisinay izahay ao amin'ny foibe data faharoa, izay mitondra ny entana manontolo.

Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions
Faharetan'ny fotodrafitrasa ara-batana

Ny zavatra ampiasainay amin'ny fandeferana lesoka amin'ny ambaratongan'ny fampiharana

Ny serivisy ataonay dia miorina amin'ny singa opensource maromaro.

ExaBGP dia serivisy manatanteraka asa maromaro amin'ny alàlan'ny protocol routing dinamika mifototra amin'ny BGP. Ampiasainay am-pahavitrihana izy io mba hanaovana dokam-barotra ny adiresy IP misy lisitra fotsy izay idiran'ny mpampiasa ny API.

HAProxy dia mpifandanja entana avo lenta izay ahafahanao manitsy ny fitsipiky ny fifandanjan'ny fifamoivoizana amin'ny ambaratonga samihafa amin'ny maodely OSI. Ampiasainay handanjalanjana eo anoloan'ny serivisy rehetra: angon-drakitra, mpizara hafatra, serivisy API, serivisy tranonkala, tetikasa anatiny - ao ambadiky ny HAProxy ny zava-drehetra.

fampiharana API — rindranasa an-tranonkala misoratra amin'ny python, izay hitantanan'ny mpampiasa ny fotodrafitrasany sy ny serivisiny.

Fampiharana mpiasa (mpiasa tsotra avy eo) - amin'ny serivisy OpenStack, daemon fotodrafitrasa ity izay ahafahanao mandefa ny baiko API amin'ny fotodrafitrasa. Ohatra, ny famoronana kapila dia mitranga ao amin'ny mpiasa, ary ny fangatahana famoronana dia mitranga ao amin'ny API fampiharana.

Standard OpenStack Application Architecture

Ny ankamaroan'ny serivisy novolavolaina ho an'ny OpenStack dia manandrana manaraka paradigma tokana. Ny serivisy dia matetika misy ampahany 2: API sy mpiasa (mpanatanteraka backend). Amin'ny maha-fitsipika, ny API dia fampiharana WSGI amin'ny python, izay natomboka na ho toy ny dingana mahaleo tena (daemon), na mampiasa mpizara tranonkala Nginx na Apache efa vonona. Ny API dia manodina ny fangatahan'ny mpampiasa ary manome torolalana fanampiny amin'ny rindranasa mpiasa ho an'ny famonoana. Ny famindrana dia atao amin'ny alàlan'ny broker hafatra, matetika RabbitMQ, ny hafa dia tsy tohanana. Rehefa tonga any amin'ny mpivarotra ny hafatra dia karakarain'ny mpiasa ary, raha ilaina, dia mamerina valiny.

Ity paradigma ity dia misy teboka iraisana tsy fahombiazana: RabbitMQ sy ny angon-drakitra. Fa ny RabbitMQ dia mitoka-monina ao anatin'ny serivisy iray ary, raha ny teoria, dia mety ho olona tsirairay ho an'ny serivisy tsirairay. Noho izany ao amin'ny MCS dia manasaraka ireo serivisy ireo araka izay tratra izahay; Tsara io fomba fiasa io satria raha misy lozam-pifamoivoizana any amin'ny toerana marefo sasany dia tsy ny serivisy manontolo no rava fa ny ampahany ihany.

Tsy voafetra ny isan'ny fangatahan'ny mpiasa, ka ny API dia afaka manenjana mora foana mitsivalana ao ambadiky ny mpifandanja mba hampitomboana ny fandeferana sy ny fandeferana.

Ny serivisy sasany dia mitaky fandrindrana ao anatin'ny serivisy rehefa misy hetsika misesisesy sarotra eo amin'ny API sy ny mpiasa. Amin'ity tranga ity dia ampiasaina ny foibe fandrindrana tokana, rafitra cluster toy ny Redis, Memcache, sns, izay ahafahan'ny mpiasa iray milaza amin'ny hafa fa nomena azy io asa io ("azafady aza raisina"). Mampiasa etcd izahay. Amin'ny maha-fitsipika, mpiasa mavitrika mifandray amin'ny angon-drakitra, manoratra sy mamaky vaovao avy any. Mampiasa mariadb ho angon-drakitra izahay, izay hita ao anaty cluster multimaster.

Ity serivisy tokana mahazatra ity dia voalamina amin'ny fomba ekena amin'ny ankapobeny ho an'ny OpenStack. Azo heverina ho rafitra mihidy izy io, izay miharihary ny fomba fandeferana sy ny fandeferana ny fahadisoana. Ohatra, ho an'ny fandeferana API dia ampy ny mametraka balancer eo anoloan'izy ireo. Ny fampitomboana ny isan'ny mpiasa dia tratrarina.

Ny teboka malemy amin'ny drafitra manontolo dia RabbitMQ sy MariaDB. Mendrika lahatsoratra misaraka amin'ity lahatsoratra ity aho dia te hifantoka amin'ny fandeferana ny fahadisoan'ny API.

Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions
Openstack Application Architecture. Ny fifandanjana sy ny fandeferana ny fahadisoan'ny sehatra rahona

Ny fanaovana ny HAProxy balancer tsy mandefitra amin'ny fampiasana ExaBGP

Mba hahatonga ny API-nay ho miendrika, haingana ary mahazaka lesoka, dia asiana mandanjalanja entana eo anoloan'izy ireo. Nisafidy HAProxy izahay. Raha ny hevitro dia manana ny toetra ilaina rehetra amin'ny asantsika izy io: mandanjalanja amin'ny ambaratonga OSI maromaro, interface tsara fitantanana, flexibility sy scalability, fomba fampifandanjana marobe, fanohanana ny latabatra fivoriana.

Ny olana voalohany tokony hovahana dia ny fandeferana ny fahadisoan'ny mpifandanja mihitsy. Ny fametrahana mpanelanelana fotsiny ihany koa dia miteraka teboka tsy fahombiazana: tapaka ny mpifandanja ary mianjera ny serivisy. Mba hisorohana izany tsy hitranga, nampiasa HAProxy izahay miaraka amin'ny ExaBGP.

ExaBGP dia ahafahanao mampihatra mekanika hanamarinana ny toetry ny serivisy. Nampiasa ity rafitra ity izahay mba hanamarinana ny fiasan'ny HAProxy ary, raha misy olana, esory ny serivisy HAProxy amin'ny BGP.

Tetika ExaBGP+HAProxy

  1. Mametraka ny rindrambaiko ilaina, ExaBGP sy HAProxy, amin'ny lohamilina telo.
  2. Mamorona interface loopback amin'ny mpizara tsirairay izahay.
  3. Amin'ireo mpizara telo ireo dia omenay ny adiresy IP fotsy mitovy amin'ity interface ity.
  4. Adiresy IP fotsy dia avoaka amin'ny Internet amin'ny alàlan'ny ExaBGP.

Ny fandeferana diso dia tratra amin'ny alàlan'ny dokam-barotra adiresy IP mitovy amin'ny lohamilina telo. Avy amin'ny fomba fijerin'ny tambajotra, ny adiresy mitovy dia azo idirana amin'ny hop telo hafa manaraka. Ny router dia mahita lalana telo mitovy, mifidy ny laharam-pahamehana ambony indrindra amin'izy ireo mifototra amin'ny metric manokana (izany matetika no safidy iray), ary ny fifamoivoizana dia mankany amin'ny iray amin'ireo mpizara ihany.

Raha misy olana amin'ny fampandehanana ny HAProxy na ny tsy fahombiazan'ny mpizara, ExaBGP dia mijanona amin'ny filazana ny lalana, ary ny fifamoivoizana dia mifamadika amin'ny mpizara hafa.

Noho izany, nahatratra ny fandeferana diso amin'ny mpifandanja izahay.

Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions
Fandeferana tsy mety amin'ny mpandrindra HAProxy

Nivadika ho tsy lavorary ilay drafitra: nianatra ny fomba famandrihana HAProxy izahay, saingy tsy nianatra ny fomba fizarana ny entana ao anatin'ny serivisy. Noho izany, nanitatra kely ity tetika ity izahay: niroso tamin'ny fifandanjana eo amin'ny adiresy IP fotsy maromaro izahay.

Mifandanja mifototra amin'ny DNS miampy BGP

Mbola tsy voavaha ny olana momba ny fifandanjana entana ho an'ny HAProxy. Na izany aza, azo vahana tsotra izao izany, toy ny nataontsika teto.

Mba hampifandanjana lohamilina telo dia mila adiresy IP fotsy 3 sy DNS taloha tsara ianao. Ny tsirairay amin'ireo adiresy ireo dia voafaritra amin'ny interface loopback an'ny HAProxy tsirairay ary avoaka amin'ny Internet.

Ao amin'ny OpenStack, hitantana ny loharanon-karena, dia ampiasaina ny lahatahiry serivisy, izay mamaritra ny API farany amin'ny serivisy manokana. Amin'ity lahatahiry ity dia misoratra anarana anarana domain - public.infra.mail.ru, izay voavaha amin'ny alàlan'ny DNS amin'ny adiresy IP telo samihafa. Vokatr'izany dia mahazo fizarana entana eo anelanelan'ny adiresy telo amin'ny alàlan'ny DNS izahay.

Saingy satria rehefa manambara adiresy IP fotsy isika dia tsy mifehy ny laharam-pahamehana amin'ny fisafidianana mpizara, tsy mbola mandanjalanja izany. Amin'ny ankapobeny, mpizara iray ihany no hofantenana mifototra amin'ny zokiolona amin'ny adiresy IP, ary ny roa hafa dia tsy miasa satria tsy misy metrika voatondro ao amin'ny BGP.

Nanomboka nandefa lalana tamin'ny alàlan'ny ExaBGP izahay miaraka amin'ny metrika samihafa. Ny mpifandanja tsirairay dia manao dokam-barotra ireo adiresy IP fotsy telo, fa ny iray amin'izy ireo, ny lehibe indrindra ho an'ity mpandrindra ity, dia navoaka tamin'ny metrika kely indrindra. Noho izany, raha mbola miasa avokoa ny mpifandanja telo, ny antso amin'ny adiresy IP voalohany dia mankany amin'ny mpandrindra voalohany, miantso ny faharoa amin'ny faharoa ary miantso ny fahatelo ka hatramin'ny fahatelo.

Inona no mitranga rehefa lavo ny iray amin'ireo mpifandanja? Raha misy mpandrindra tsy mahomby, ny adiresiny lehibe dia mbola avoaka amin'ny roa hafa, ary averina zaraina eo anelanelan'izy ireo ny fifamoivoizana. Noho izany, manome ny mpampiasa adiresy IP maromaro miaraka amin'ny DNS izahay. Amin'ny alàlan'ny fampifandanjana amin'ny alàlan'ny DNS sy ny metrika samihafa, dia mahazo fizarana mitovy amin'ny enta-mavesatra isika amin'ny mpifandanja telo. Ary amin'izay fotoana izay ihany koa dia tsy manary ny fandeferana amin'ny fahadisoana isika.

Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions
Mampifandanja HAProxy mifototra amin'ny DNS + BGP

Fifandraisana eo amin'ny ExaBGP sy HAProxy

Noho izany, nampihatra ny fandeferana diso izahay raha toa ka miala ny mpizara, mifototra amin'ny fampiatoana ny fanambarana ny lalana. Saingy ny HAProxy dia afaka manakatona ihany koa noho ny antony hafa ankoatra ny tsy fahombiazan'ny server: fahadisoana amin'ny fitantanana, tsy fahombiazana ao anatin'ny serivisy. Tianay ny hanaisotra ny mpifandanja tapaka eo ambanin'ny enta-mavesatra amin'ireo tranga ireo, ary mila mekanika hafa izahay.

Noho izany, nanitatra ny tetika teo aloha, nampihatra ny fitempon'ny fo eo anelanelan'ny ExaBGP sy HAProxy. Ity dia fampiharana rindrambaiko amin'ny fifandraisana misy eo amin'ny ExaBGP sy HAProxy, rehefa mampiasa script manokana ny ExaBGP hanamarina ny satan'ny fampiharana.

Mba hanaovana izany, dia mila manamboatra mpanara-maso ara-pahasalamana ao amin'ny config ExaBGP ianao, izay afaka manamarina ny satan'ny HAProxy. Amin'ny tranga misy anay dia nanamboatra ny backend ara-pahasalamana tao amin'ny HAProxy izahay, ary avy amin'ny lafiny ExaBGP dia manamarina amin'ny fangatahana GET tsotra izahay. Raha mijanona ny fanambarana dia mety tsy mandeha ny HAProxy ary tsy ilaina ny manao dokambarotra.

Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions
HAProxy Health Check

HAProxy Peers: fampifanarahana fivoriana

Ny zavatra manaraka tokony hatao dia ny fampifanarahana ireo fivoriana. Rehefa miasa amin'ny alàlan'ny balancers zaraina dia sarotra ny mandamina ny fitahirizana vaovao momba ny fotoam-pivorian'ny mpanjifa. Saingy ny HAProxy dia iray amin'ireo mpifandanja vitsivitsy afaka manao izany noho ny fampiasa Peers - ny fahafahana mamindra latabatra fivoriana eo amin'ny fizotran'ny HAProxy samihafa.

Misy fomba fampifandanjana samihafa: tsotra toy ny robina boribory, ary hitarina, rehefa tsaroana ny fotoam-pivorian'ny mpanjifa, ary isaky ny miafara amin'ny lohamilina mitovy amin'ny teo aloha izy. Te hampihatra ny safidy faharoa izahay.

HAProxy dia mampiasa tabilao tapa-kazo mba hamonjena ny fotoam-pivorian'ny mpanjifa amin'ity mekanika ity. Izy ireo dia mitahiry ny adiresy IP voalohany an'ny mpanjifa, ny adiresy kendrena voafantina (backend) ary fampahalalana momba ny serivisy sasany. Amin'ny ankapobeny, ny latabatra tsorakazo dia ampiasaina hitahiry loharano-IP + destination-IP mpivady, izay tena ilaina ho an'ny fampiharana izay tsy afaka mamindra ny toetry ny fotoam-pivorian'ny mpampiasa rehefa mifindra amin'ny balancer hafa, ohatra, amin'ny fomba fampifandanjana RoundRobin.

Raha ampianarina hivezivezy eo anelanelan'ny fizotran'ny HAProxy samihafa ny latabatra tapa-kazo (eo anelanelan'ny fisian'ny fifandanjana), dia ho afaka hiara-miasa amin'ny dobo latabatra hazo iray ny mpifandanjantsika. Izany dia ahafahana mamadika moramora ny tambazotran'ny mpanjifa raha toa ka tsy mahomby ny iray amin'ireo mpifandanja;

Ho an'ny fampandehanana araka ny tokony ho izy dia tsy maintsy voavaha ny olan'ny adiresy IP loharanon'ny mpifandanja izay niorenan'ny fivoriana. Amin'ity tranga ity dia adiresy mavitrika amin'ny interface loopback.

Ny asa marina ataon'ny mpiara-mianatra dia tsy vita raha tsy amin'ny fepetra sasany. Izany hoe, tokony ho be dia be ny fiatoan'ny TCP na tsy maintsy haingana be ny fiatoana mba tsy hanam-potoana hamaranana ny TCP session. Na izany aza, dia mamela ny seamless switching.

Ao amin'ny IaaS dia manana serivisy namboarina tamin'ny teknolojia mitovy. izany Load Balancer ho serivisy ho an'ny OpenStack, izay antsoina hoe Octavia. Mifototra amin'ny fizotran'ny HAProxy roa izy io ary amin'ny voalohany dia misy fanohanana ny mpiara-mianatra aminy. Izy ireo dia nanaporofo ny tenany ho tena tsara amin'ity serivisy ity.

Ny sary dia mampiseho ny fihetsehan'ny tabilao mitovy eo anelanelan'ny tranga HAProxy telo, misy config atolotra amin'ny fomba azo amboarina:

Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions
HAProxy Peers (fandrindrana fivoriana)

Raha mampihatra io tetika io ianao, dia tsy maintsy tsapaina tsara ny fiasan'izy io. Tsy zava-misy fa hiasa amin'ny endrika mitovy 100% amin'ny fotoana. Fa farafaharatsiny dia tsy ho very latabatra tapa-kazo ianao rehefa mila mitadidy ny loharano IP an'ny mpanjifa.

Famerana ny isan'ny fangatahana miaraka amin'ny mpanjifa iray ihany

Ny serivisy rehetra azon'ny besinimaro, ao anatin'izany ny API, dia mety hiharan'ny fangatahana. Ny antony mahatonga azy ireo dia mety ho hafa tanteraka, manomboka amin'ny fahadisoan'ny mpampiasa ka hatramin'ny fanafihana nokendrena. DDoSed tsindraindray amin'ny adiresy IP izahay. Matetika ny mpanjifa no manao fahadisoana amin'ny sorany ary manome anay mini-DDoSs.

Na ahoana na ahoana, dia tsy maintsy omena fiarovana fanampiny. Ny vahaolana mazava dia ny mametra ny isan'ny fangatahana API ary tsy mandany fotoana amin'ny CPU amin'ny fanodinana fangatahana ratsy.

Mba hampiharana ny fameperana toy izany, dia mampiasa ny fetran'ny tahan'ny, voalamina miorina amin'ny HAProxy, mampiasa latabatra hazo mitovy. Ny fametrahana fetra dia tsotra ary ahafahanao mametra ny mpampiasa amin'ny isan'ny fangatahana amin'ny API. Ny algorithm dia mahatsiaro ny loharano IP izay nanaovana ny fangatahana ary mametra ny isan'ny fangatahana miaraka amin'ny mpampiasa iray. Mazava ho azy fa nanao kajy ny salan'isa momba ny entana API ho an'ny serivisy tsirairay izahay ary nametraka fetra ≈ in-10 amin'io sanda io. Manohy manara-maso akaiky ny toe-javatra izahay ary mitazona ny rantsan-tananay amin'ny fitepon'ny fo.

Manao ahoana izany amin'ny fampiharana? Manana mpanjifa izahay izay mampiasa tsy tapaka ny API ho an'ny autoscale. Mamorona milina virtoaly roa na telonjato eo ho eo izy ireo amin'ny maraina ary mamafa azy ireo amin'ny hariva. Ho an'ny OpenStack, ny famoronana milina virtoaly, miaraka amin'ny serivisy PaaS, dia mitaky fangatahana API farafahakeliny 1000, satria ny fifandraisana eo amin'ny serivisy dia mitranga amin'ny alàlan'ny API.

Ny famindrana asa toy izany dia miteraka enta-mavesatra be. Nanombana an'io entana io izahay, nanangona tampon'isa isan'andro, nampitomboinay avo folo heny, ary izany no fetran'ny sarany. Mijanona eo amin'ny pulse ny rantsantanana. Matetika izahay no mahita bots sy scanner izay miezaka mijery anay mba hahitana raha manana script CGA azo atao izahay, dia manapaka azy ireo izahay.

Ahoana ny fanavaozana ny codebase-nao nefa tsy hitan'ny mpampiasa

Mampihatra ny fandeferana diso ihany koa izahay amin'ny ambaratongan'ny fizotry ny fametrahana kaody. Mety hisy olana mandritra ny fandefasana, saingy azo ahena ny fiantraikan'izany amin'ny fahafahan'ny serivisy.

Manavao tsy tapaka ny serivisinay izahay ary tsy maintsy miantoka fa ny codebase dia havaozina tsy misy fiantraikany amin'ny mpampiasa. Nahavita namaha ity olana ity izahay tamin'ny fampiasana ny fahaiza-mitantana ny HAProxy sy ny fampiharana ny Graceful Shutdown amin'ny serivisy.

Mba hamahana ity olana ity dia ilaina ny miantoka ny fanaraha-maso ny balancer sy ny fanakatonana "marina" ny serivisy:

  • Raha ny momba ny HAProxy, ny fanaraha-maso dia atao amin'ny alàlan'ny rakitra statistika, izay tena socket ary voafaritra ao amin'ny config HAProxy. Azonao atao ny mandefa baiko aminy amin'ny alàlan'ny stdio. Fa ny fitaovana fanaraha-maso ny fanamafisam-peo lehibe dia azo atao, noho izany dia manana maodely naorina ho an'ny fitantanana HAProxy. Izay ampiasaintsika mavitrika.
  • Ny ankamaroan'ny serivisy API sy Engine dia manohana ny teknolojia fanakatonana tsara: rehefa mikatona dia miandry ny asa ankehitriny izy ireo, na fangatahana http na asa fanompoana. Toy izany koa no mitranga amin'ny mpiasa. Fantany ny asa rehetra ataony ary mifarana rehefa vitany tsara ny zava-drehetra.

Noho ireo teboka roa ireo dia toa izao ny algorithm azo antoka amin'ny fametrahana anay.

  1. Manangona fonosana code vaovao ny mpamorona (ho anay RPM ity), mizaha toetra azy ao amin'ny tontolo dev, mizaha izany amin'ny sehatra, ary mamela azy ao amin'ny tahiry sehatra.
  2. Ny mpamorona dia mametraka ny asa amin'ny fametrahana miaraka amin'ny famaritana amin'ny antsipiriany indrindra momba ny "zavakanto": ny dikan'ny fonosana vaovao, ny famaritana ny fiasa vaovao ary ny antsipiriany hafa momba ny fametrahana raha ilaina.
  3. Manomboka ny fanavaozana ny mpitantana ny rafitra. Manokatra ny playbook Ansible, izay manao izao manaraka izao:
    • Maka fonosana avy amin'ny fitehirizam-bokatra ary mampiasa azy io mba hanavaozana ny dikan'ny fonosana ao amin'ny fitahirizana vokatra.
    • Manangona lisitry ny backends amin'ny serivisy nohavaozina.
    • Akatona ny serivisy voalohany havaozina ao amin'ny HAProxy ary miandry ny fizotrany hamita ny fandehany. Noho ny fanakatonana tsara dia matoky izahay fa ho vita soa aman-tsara ny fangatahan'ny mpanjifa amin'izao fotoana izao.
    • Rehefa tapaka tanteraka ny API sy ny mpiasa, ary tapaka ny HAProxy, dia havaozina ny kaody.
    • Ansible dia mitantana serivisy.
    • Ho an'ny serivisy tsirairay dia misy "tantana" sasany nosintonina, izay manao fitiliana unit amin'ny fitsapana fanalahidy maromaro efa voafaritra mialoha. Misy fisavana fototra ny kaody vaovao.
    • Raha tsy misy lesoka hita tamin'ny dingana teo aloha dia alefa ny backend.
    • Andao hiroso amin'ny farany aoriana.
  4. Rehefa avy nohavaozina ny backends rehetra dia atomboka ny fitsapana miasa. Raha tsy hita izy ireo dia mijery izay fiasa vaovao noforoniny ny developer.

Izany dia mamita ny fametrahana.

Ahoana ny fampiharana ny rafi-tranonkala mahazaka fahadisoana ao amin'ny sehatra Mail.ru Cloud Solutions
Tsingerin'ny fanavaozana serivisy

Tsy hahomby io tetika io raha tsy manana fitsipika iray isika. Manohana ny dikan-teny taloha sy vaovao amin'ny ady izahay. Mialoha, eo amin'ny dingan'ny fampivoarana rindrambaiko, dia napetraka fa na dia misy fiovana ao amin'ny angon-drakitra serivisy aza dia tsy hanapaka ny code teo aloha izy ireo. Vokatr'izany dia havaozina tsikelikely ny fototry ny kaody.

famaranana

Mizara ny eritreritro manokana momba ny rafitra WEB mahazaka fahadisoana aho, te-hanamarika indray ny hevi-dehibeny aho:

  • fandeferana ny fahadisoana ara-batana;
  • fandeferana ny fahadisoan'ny tambajotra (mpandanja, BGP);
  • fandeferana diso amin'ny rindrambaiko ampiasaina sy novolavolaina.

Maharitra ny fotoana rehetra!

Source: www.habr.com

Add a comment