Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil

Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil

Tere, Habr! Mina olen Artyom Karamyshev, sĂŒsteemi haldamise meeskonna juht. Mail.Ru Cloud Solutions (MCS). Viimase aasta jooksul on meil olnud palju uusi tooteid. Soovisime tagada, et API teenused oleksid kergesti skaleeritavad, talitluspĂŒsivad ja valmis kiiresti kasvavale kasutajakoormusele. Meie platvorm pĂ”hineb OpenStackil ja soovin rÀÀkida nendest talitluspĂŒsivuse probleemidest, millega oleme silmitsi seisnud, et luua talitluspĂŒsiv sĂŒsteem. Arvan, et see vĂ”iks huvi pakkuda ka neile, kes arendavad tooteid OpenStackil.

Platvormi ĂŒldine talitluspĂŒsivus tuleneb selle komponentide talitluspĂŒsivusest. Niisiis, liigume jĂ€rk-jĂ€rgult lĂ€bi kĂ”ikidest tasemetest, kus oleme avastanud riske ja need kĂ”rvaldada.

Selle loo videoversioon, mille algallikaks on ettekande Uptime day 4 konverentsil, mille korraldas ITSumma, on saadaval Uptime Community YouTube kanalil..

FĂŒĂŒsilise arhitektuuri talitluspĂŒsivus

MCSi avalik osa asub praegu kahel Tier III andmekeskusel, nende vahel on pimedat kiudkaablit, mis on fĂŒĂŒsilisel tasemel reserveeritud erinevate marsruutide jaoks, mille lĂ€bilaskevĂ”ime on 200 Gbit/s. Tier III tase tagab vajaliku fĂŒĂŒsilise infrastruktuuri talitluspĂŒsivuse taseme.

Pime kiud on reserveeritud nii fĂŒĂŒsilisel kui ka loogilisel tasemel. Kanali reserveerimise protsess oli iteratiivne, tekkisid probleemid ja pidevalt tĂ€iustame sideĂŒhendust andmekeskuste vahel.

NĂ€iteks hiljuti, kui töötati ĂŒhe andmekeskuse lĂ€hedal kaevanduses, lĂ”hkus ekskavaator toru, milles olid nii pĂ”hikaabel kui ka reserveeritud optiline kaabel. Meie talitluspĂŒsiv sidekanal andmekeskusega osutus ĂŒhes punktis, kaevanduses, haavatavaks. Vastavalt kaotasime osa infrastruktuurist. TĂ”ime vĂ€lja jĂ€reldused, tegime mitmeid samme, sealhulgas paigaldasime kĂ”rvalasuvasse kaevandusse tĂ€iendava optika.

Andmekeskustes on sidepakkujate kohalolekupunktid, kellele edastame oma eeliseid BGP kaudu. Iga vĂ”rgu suuna jaoks valitakse parim mÔÔdik, mis vĂ”imaldab pakkuda erinevatele klientidele parima kvaliteediga ĂŒhendust. Kui ĂŒhe pakkuja kaudu ĂŒhendus katkeb, kohandame oma marsruutimist saadaval olevate pakkujate kaudu.

Pakkuja töö tĂ”rke korral lĂŒlitame automaatselt jĂ€rgmisele. Kui ĂŒks andmekeskus ebaĂ”nnestub, on meil teises andmekeskuses peegelkohalik koopia meie teenustest, mis vĂ”tavad kogu koormuse enda peale.

Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil
FĂŒĂŒsilise infrastruktuuri tĂ”rketaluvus

Mida me kasutame tÔrketaluvuse tagamiseks rakendustasandil

Meie teenus on ĂŒles ehitatud mitmete avatud lĂ€htekoodiga komponentide baasil.

ExaBGP — teenus, mis realiseerib mitmeid funktsioone dĂŒnaamilise marsruutimise protokolli kaudu BGP baasil. Me kasutame seda aktiivselt, et kuulutada vĂ€lja meie valged IP-aadressid, mille kaudu kasutajad pÀÀsevad API-le.

Edasi lĂ€ks kliendi pĂ€ring HAProxy-sse, mis lahendas jĂ€rgmised ĂŒlesanded: — kĂ”rgkoormusega tasakaalustaja, mis lubab seadistada vĂ€ga paindlikke liikluse tasakaalustamise reegleid erinevatel OSI mudeli tasanditel. Me kasutame seda tasakaalustamiseks kĂ”igi teenuste ees: andmebaasid, sĂ”numibrokereid, API-teenuseid, veebiteenuseid, meie sisemisi projekte — kĂ”ik on HAProxy taga.

API rakendus — veebirakendus, kirjutatud pythonis, mille abil kasutaja haldab oma infrastruktuuri, oma teenust.

Töötaja rakendus (edaspidi lihtsalt töötaja) — OpenStack teenustes on see infrastruktuuri demon, mis vĂ”imaldab edastada API-kĂ€sku infrastruktuurile. NĂ€iteks toimub ketta loomine just töötajas, samas kui loomise pĂ€ring lĂ€heb API rakendusse.

Standardne OpenStack rakenduste arhitektuur

Enamik OpenStacki alla arendatavaid teenuseid pĂŒĂŒab jĂ€rgida ĂŒhtset paradigmat. Teenus koosneb tavaliselt kahest osast: API-st ja töötajatest (taustarakenditest). Reeglina on API WSGI rakendus Pythonis, mis töötab kas iseseisva protsessina (daemon) vĂ”i olemasoleva veebiserveri Nginx, Apache kaudu. API töötleb kasutaja pĂ€ringut ja edastab edasised juhised töötaja rakendusele. Edastamine toimub sĂ”numivahendi kaudu, tavaliselt RabbitMQ, kuid teisi toetatakse halvasti. Kui sĂ”numid jĂ”uavad vahendisse, töötavad need töötajad ja vajadusel tagastavad vastuse.

See paradigma eeldab isoleeritud ĂŒldisi rikkepunkte: RabbitMQ ja andmebaasi. RabbitMQ on aga isoleeritud ĂŒhes teenuses ja vĂ”ib idee kohaselt olla iga teenuse jaoks individuaalne. Seega, meie MCS-is jagame maksimaalselt neid teenuseid; iga projekti jaoks loome eraldi andmebaasi ja eraldi RabbitMQ. See lĂ€henemine on hea, kuna rikke korral mĂ”nes haavatavas kohas ei lĂ”hku kogu teenust, vaid ainult selle osa.

Töötajate rakenduste arv ei ole millegagi piiratud, mistÔttu API saab hÔlpsasti horisontaalselt skaleerida koormustasakaalustajate abil jÔudluse ja tÔrkeotsingu suurendamiseks.

MĂ”nedes teenustes on vajalik koordineerimine teenuse sees - kui toimub keeruline jĂ€rjestikune tegevus API ja töötajate vahel. Sellisel juhul kasutatakse ĂŒhtset koordineerimiskeskust, klastrisĂŒsteemi, nagu Redis, Memcache, etcd, mis vĂ”imaldab ĂŒhel töötajal öelda teisele, et see ĂŒlesanne on tema peale mÀÀratud ("palun Ă€ra vĂ”ta seda"). Meie kasutame etcd-d. Reeglina suhtlevad töötajad andmebaasiga aktiivselt, kirjutavad ja loevad sealt teavet. Andmebaasina kasutame MariaDB-d, mis asub meil mitme masteriga klastris.

Klassikaline ĂŒhekordne teenus on korraldatud OpenStackile omase viisi kohaselt. Seda vĂ”ib pidada isoleeritud sĂŒsteemiks, mille jaoks on skaleerimise ja tĂ”rkeotsingu viisid piisavalt selged. NĂ€iteks, et tagada API tĂ”rkeotsing, piisab, kui paigaldada nende ette koormustasakaalustaja. Töötajate skaleerimine saavutatakse nende arvu suurendamisega.

Kogu sĂŒsteemi nĂ”rk koht on RabbitMQ ja MariaDB. Nende arhitektuur vÀÀrib eraldi artiklit. Selles artiklis soovin keskenduda API talitlushĂ€irete vĂ€ltimisele.

Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil
Openstacki rakenduse arhitektuur. Pilveplatvormi koormuse ja talitlushÀirete vÀltimine.

Teeme HAProxy koormuse tasandaja talitlushÀirete vÀltimiseks ExaBGP abil.

Kuna meie API-d peavad olema skaleeritavad, kiired ja talitlushĂ€irete vĂ€ltimisega, panime nende ette koormuse tasandaja. Valisime HAProxy. Minu arvates omab see kĂ”iki vajalikke omadusi meie ĂŒlesande jaoks: tasandamine mitmel OSI tasemel, haldustĂŒĂŒp, paindlikkus ja skaleeritavus, suur hulk tasandamismeetodeid, toeks sessioonitabelid.

Esimene probleem, mille lahendamine on vajalik, on koormuse tasandaja talitlushÀirete vÀltimine. Lihtsalt koormuse tasandaja paigaldamine loob samuti rikke punkti: koormuse tasandaja ebaÔnnestub - teenus kukub vÀlja. Selle vÀltimiseks kasutasime HAProxy koos ExaBGP-ga.

ExaBGP vĂ”imaldab rakendada teenuse seisundi kontrollimise mehhanismi. Me kasutasime seda mehhanismi HAProxy töökindluse kontrollimiseks ning probleemide ilmnemisel lĂŒlitasime HAProxy teenuse BGP-st vĂ€lja.

ExaBGP+HAProxy skeem.

  1. Installime kolmele serverile vajaliku tarkvara, ExaBGP ja HAProxy.
  2. Loome igas serveris loopback-liidese.
  3. Kasutame kÔigil kolmel serveril selle liidese jaoks sama avalikku IP-aadressi.
  4. Avalik IP-aadress kuulutab vÀlja ExaBGP kaudu internetis.

TalitlushĂ€irete vĂ€ltimine saavutatakse sama IP-aadressi kuulutamisega kĂ”igilt kolmest serverist. VĂ”rgu vaates on tegemist sama aadressiga, mis on saadaval kolme erineva jĂ€rgmise hĂŒppena. Ruuter nĂ€eb kolme identset marsruuti, valib oma meetri alusel kĂ”ige prioriteetsemalt (tavaliselt on see sama valik) ning liiklus suunatakse ainult ĂŒhele serverile.

Kui HAProxy tööga tekivad probleemid vĂ”i server ebaĂ”nnestub, lĂ”petab ExaBGP marsruudi kuulutamise ning liiklus sujuvalt lĂŒlitub teisele serverile.

Nii saavutasime koormuse tasandaja talitlushÀirete vÀltimise.

Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil
HAProxy koormuse tasandajate talitlushÀirete vÀltimine.

Skeem on osutunud mitteideaalseks: me Ă”ppisime HAProxy varukoopiaid tegema, kuid ei Ă”ppinud koormust teenuste sees jagama. SeetĂ”ttu laiendasime skeemi veidi: lĂ€ksime ĂŒle koormuse tasandamisele mitme avaliku IP-aadressi vahel.

DNS ja BGP-pÔhine koormuse tasakaalustamine

Koormuse tasakaalustamine meie HAProxy ees on endiselt lahendamata kĂŒsimus. Siiski, seda on vĂ”imalik lahendada ĂŒsna lihtsalt, nagu me ka ise tegime.

Kolme serveri tasakaalustamiseks on vajalik 3 avalikku IP-aadressi ja vana hea DNS. IgaĂŒks neist aadressidest mÀÀratakse iga HAProxy loopback-liidesele ja kuulutatakse internetis.

OpenStackis kasutatakse ressursside haldamiseks teenuste katalooge, kus mÀÀratakse mingisuguse teenuse API lĂ”pp-punkt. Selles kataloogis kirjutame domeeninime — public.infra.mail.ru, mis lahendatakse DNS kaudu kolme erineva IP-aadressiga. Tulemuseks on koormuse jaotamine kolme aadressi vahel DNS-i kaudu.

Kuna me ei halda avalike IP-aadresside kuulutamisel serveri valimise prioriteete, ei ole see veel tasakaalustamine. Üldiselt valitakse ainult ĂŒks server IP-aadresside vanuse alusel, samas kui kaks teist jÀÀvad kĂ€est, kuna BGP-s ei ole mingeid meetrikaid mÀÀratud.

Oleme hakanud kuulutama marsruute ExaBGP kaudu erineva meetriku jĂ€rgi. Iga koormuse tasakaalustaja kuulutab kĂ”ik kolm avalikku IP-aadressi, kuid ĂŒks neist, antud koormuse tasakaalustaja jaoks peamine, kuulutatakse minimaalse meetrikaga. SeetĂ”ttu, kuni kĂ”ik kolm tasakaalustajat on töös, saavad esimest IP-aadressi ringlusse esimesest tasakaalustajast, teise aadressi teiselt ja kolmanda aadressi kolmandalt.

Mis juhtub, kui ĂŒks koormuse tasakaalustajatest tĂ”rjub? Kui mĂ”ni koormuse tasakaalustaja ebaĂ”nnestub, kuulutatakse tema pĂ”hjaadress ikka veel kahe teise kaudu, liiklus nende vahel jaotatakse ĂŒmber. SeelĂ€bi saame kasutajale DNS kaudu kohe mitu IP-aadressi. DNS-i ja erineva meetrikaga tasakaalustamisega saavutame koormuse ĂŒhtlase jaotuse kĂ”igi kolme tasakaalustaja vahel. Ja samal ajal ei kaota me rikke taluvust.

Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil
HAProxy tasakaalustamine DNS + BGP-pÔhiselt

ExaBGP ja HAProxy vaheline suhtlus

Seega oleme rakendanud rikke taluvuse serveri vÀljalangemise korral, tuginedes marsruutide kuulutamise lÔpetamisele. Kuid HAProxy vÔib sulguda ka muudel pÔhjustel, kui serveri rike: haldusvead, teenuse sisevead. Soovime sellistel juhtudel kahjustatud koormuse tasakaalustaja koormuse alt eemaldada ja seetÔttu on vajalik teine mehhanism.

SeetÔttu, laiendades eelmist skeemi, rakendasime heartbeat'i ExaBGP ja HAProxy vahel. See on tarkvara rakendus ExaBGP ja HAProxy vahelise suhtluse jaoks, kus ExaBGP kasutab rakenduste staatuse kontrollimiseks kohandatud skripte.

Selleks tuleb ExaBGP konfiguratsioonis seadistada tervise kontrollimise tööriist, mis suudab HAProxy staatust jÀlgida. Meie puhul seadistasime HAProxy-s tervise taustteenuse ja ExaBGP kontrollime seda lihtsa GET pÀringuga. Kui kuulutus lÔpetab toimumise, ei tohiks HAProxy tÔenÀoliselt töötada ja kuulutamine ei ole vajalik.

Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil
HAProxy Tervise Kontroll

HAProxy Peers: sessioonide sĂŒnkroniseerimine

JĂ€rgmine, mida tuli teha, oli sessioonide sĂŒnkroniseerimine. Jaotatud tasakaalustajate kaudu töötades on keeruline korraldada kliendi sessioonide teabe sĂ€ilitamist. Kuid HAProxy on ĂŒks vĂ€heseid tasakaalustajaid, mis suudab seda teha Peers funktsionaalsuse kaudu, mis vĂ”imaldab edastada HAProxy erinevate protsesside vahel sessioonide tabelid.

On olemas erinevaid tasakaalustamise meetodeid: lihtsad, nagu round-robin, ja tÀiustatud, kui kliendi sessioon salvestatakse ja ta jÔuab igal korral samale serverile, nagu varem. Soovisime rakendada teist varianti.

HAProxy-s kasutatakse kliendi sessioonide sĂ€ilitamiseks selle mehhanismi stick-tables. Need salvestavad kliendi algse IP-aadressi, valitud sihtaadressi (taustteenus) ja teatud teenuseteavet. Üldiselt kasutatakse stick-tabeleid source-IP ja destination-IP paari sĂ€ilitamiseks, mis on eriti kasulik rakendustes, mis ei suuda edastada kasutaja sessiooni konteksti teisele tasakaalustajale, nĂ€iteks RoundRobin tasakaalustamise reĆŸiimis.

Kui stick-tabelit Ă”petada liikuma erinevate HAProxy protsesside vahel (kui toimub tasakaalustamine), saavad meie tasakaalustajad töötada ĂŒhe stick-tabelite kogumiga. See vĂ”imaldab sujuvat kliendi vĂ”rgu ĂŒleminekut, kui ĂŒks tasakaalustaja kokku kukub, ja kliendi sessioonidega töötamine jĂ€tkub valitud taustteenustes, mis olid valitud varem.

Õige toimimise tagamiseks peab olema lahendatud tasakaalustaja source IP-aadressi probleem, millelt sessioon on loodud. Meie puhul on see dĂŒnaamiline aadress loopback-interfÀÀsil.

Peers'i Ă”ige töö saavutatakse ainult teatud tingimustes. See tĂ€hendab, et TCP aegumised peavad olema piisavalt suured vĂ”i ĂŒleminek peab olema piisavalt kiire, et TCP seanss ei katkeks. Sellegipoolest vĂ”imaldab see sujuvat ĂŒleminekut.

Meie IaaS-is on teenus, mis on ehitatud sama tehnoloogia alusel. See on Load Balancer teenus OpenStacki jaoks, mille nimi on Octavia. See pÔhineb kahe HAProxy protsessi baasil ning selles on algselt olemas peer'ide tugi. Selles teenuses on nad end hÀsti tÔestanud.

Pildil on diagrammil kujutatud peers-tabelite liikumist kolme HAProxy instantsi vahel, on pakutud konfiguratsioon, kuidas seda seadistada:

Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil
HAProxy Peers (seansside sĂŒnkroonimine)

Kui te rakendate sarnast skeemi, tuleb selle tööd hoolikalt testida. Pole kindel, et see töötab samamoodi 100% juhtudel. Kuid vÀhemalt ei kaota te stick-tabeleid, kui on vaja meeles pidada kliendi source IP-d.

Piirang samaaegsete pĂ€ringute arvu peale ĂŒhelt ja samalt kliendilt

KĂ”ik avalikud teenused, sealhulgas meie API-d, vĂ”ivad olla kalduvad pĂ€ringute laviinidele. Nende pĂ”hjused vĂ”ivad olla tĂ€iesti erinevad, alates kasutajate vigadest kuni sihitud rĂŒnnakuteni. Meid rĂŒnnatakse aeg-ajalt DDoS-iga IP-aadresside kaudu. Kliendid teevad sageli vigu oma skriptides, tehes meile mini-DDoS-e.

Nii vÔi teisiti tuleb ette nÀha lisakaitse. Ilmselge lahendus on piirata pÀringute arvu API-le ja mitte raisata protsessoriaega pahatahtlike pÀringute töötlemiseks.

Selliste piirangute rakendamiseks kasutame rate limits, mis on organiseeritud HAProxy baasil, samade stick-tabelite abil. Piirangute seadistamine on piisavalt lihtne ja vÔimaldab piirata kasutajat API pÀringute arvu osas. Algoritm salvestab source IP, kust pÀringud tehakse, ja piirab sama kasutaja samaaegsete pÀringute arvu. Loomulikult oleme arvutanud igas teenuses API koormuse keskmise profiili ja seadnud piiri, mis on umbes 10 korda suurem kui see vÀÀrtus. JÀtkame siiani tÀhelepanelikku olukorra jÀlgimist, hoides kÀe pulsil.

Kuidas see praktikas vÀlja nÀeb? Meil on kliente, kes kasutavad pidevalt meie API-sid automaatselt skaleerimiseks. Nad loovad umbes kakssada-kolmsada virtuaalmasinat varahommikul ja kustutavad need Ôhtul. OpenStackis virtuaalmasina loomine, koos PaaS-teenustega, tÀhendab vÀhemalt 1000 API-pÀringut, kuna teenuste vaheline suhtlus toimub samuti lÀbi API.

Sellised ĂŒlesannete ĂŒlekanded tekitavad ĂŒsna suurt koormust. Me hindasime seda koormust, kogusime pĂ€evased tipud, suurendasime neid kĂŒmme korda ja see sai meie rate-limiidiks. Hoidke kĂ€t pulsil. NĂ€eme tihti roboteid, skaneerijaid, kes proovivad meie peale vaadata, kas meil on mingeid CGA-skripte, mida kĂ€ivitada, ja me lĂ”ikame neid aktiivselt.

Kuidas vÀrskendada koodibaasi kasutajatele mÀrkamatult

Kasutame ka koodi juurutamise protsesside tasemel tÔrketaluvust. Juurutamise ajal vÔivad esineda tÔrked, kuid nende mÔju teenuste kÀttesaadavusele saab minimeerida.

Uuendame pidevalt oma teenuseid ja peame tagama koodibaasi uuendamise protsessi ilma kasutajatele mĂ”ju avaldamata. Selle ĂŒlesande lahendamine Ă”nnestus meil, kasutades HAProxy haldusvĂ”imalusi ja meie teenustes Graceful Shutdowni rakendamist.

Selle ĂŒlesande lahendamiseks oli vajalik tagada koormuse ja „Ôige” teenuste vĂ€ljalĂŒlitamine:

  • HAProxy puhul toimub haldus lĂ€bi stats-faili, mis on pĂ”himĂ”tteliselt soket ja mÀÀratakse HAProxy konfigurasioonis. Sellele saab komande edastada lĂ€bi stdio. Kuid meie peamine tööriist konfiguratsioonide kontrollimiseks on ansible, millel on sisse ehitatud moodul HAProxy haldamiseks. Seda kasutame aktiivselt.
  • Enamik meie API ja Engine teenustest toetavad graceful shutdown tehnoloogiaid: vĂ€lja lĂŒlitamisel ootavad nad praeguse ĂŒlesande, olgu see http-pĂ€ring vĂ”i mĂ”ni teenindusĂŒlesanne, tĂ€ielikku lĂ”petamist. Sama juhtub ka töötlusega. Ta teab kĂ”ik ĂŒlesanded, mida ta teeb, ja lĂ”petab, kui kĂ”ik on edukalt tehtud.

Nende kahe asja tÔttu nÀeb meie ohutu juurutamisprotsess vÀlja jÀrgmiselt.

  1. Arendaja kogub uue koodipaketi (meie puhul RPM), testib arenduskeskkonnas, testib etapis ja jÀtab etapi-repositooriumisse.
  2. Arendaja esitab juurutamiseks ĂŒlesande koos vĂ”imalikult ĂŒksikasjaliku kirjeldusega "artefaktidest": uue paketi versioon, uue funktsionaalsuse kirjeldus ja muud ĂŒksikasjad juurutamiseks vajadusel.
  3. SĂŒsteemihaldur alustab vĂ€rskendamist. KĂ€ivitab Ansible'i mĂ€ngu, mis omakorda teeb jĂ€rgmist:
    • VĂ”tab paki stage-repositooriumist ja vĂ€rskendab paki versiooni tootmisrepositooriumis.
    • Koostab uuendatava teenuse taustsĂŒsteemide nimekirja.
    • LĂŒlitab vĂ€lja esimese uuendatava teenuse HAProxy's ja ootab, kuni selle protsessid lĂ”petavad töö. AitĂ€h sujuvale sulgemisele, oleme kindlad, et kĂ”ik praegused kliendi pĂ€ringud lĂ”petatakse edukalt.
    • PĂ€rast API, töötajate ja HAProxy tĂ€ielikku sulgemist toimub koodi vĂ€rskendamine.
    • Ansible kĂ€ivitab teenused.
    • Iga teenuse jaoks tĂ”mbab ta kindlaid "nuppe", mis viivad lĂ€biĂŒksustestis, pĂ”hinedes eelnevalt mÀÀratud vĂ”tmetestidele. Toimub uue koodi pĂ”hialuste kontroll.
    • Kui eelmisel sammul ei leitud vigu, aktiveeritakse taustsĂŒsteem.
    • Liigume jĂ€rgmise taustsĂŒsteemi juurde.
  4. PĂ€rast kĂ”igi taustsĂŒsteemide vĂ€rskendamist kĂ€ivitatakse funktsionaalsed testid. Kui neid on puudu, vaatab arendaja igasugust uut funktsionaalsust, mida ta on loonud.

Sellega on juurutamine lÔppenud.

Kuidas rakendatakse talitlushÀirekindlat veebiarhitektuuri Mail.ru Cloud Solutions platvormil
Teenuse vĂ€rskendamise tsĂŒkkel

See skeem ei toimiks, kui meil ei oleks ĂŒht reeglit. Me toetame samal ajal tootmises nii vana kui ka uut versiooni. Varakult, tarkvara arendamise etapis, on paika pandud, et isegi kui teenuse andmebaasis toimuvad muudatused, ei riku need eelmist koodi. Tulemuseks on jĂ€rkjĂ€rguline koodibaasi vĂ€rskendamine.

KokkuvÔte

Jagades oma mĂ”tteid talitluspĂŒsiva WEB-arhitektuuri kohta, tahan veel kord rĂ”hutada selle vĂ”tmeelemente:

  • fĂŒĂŒsiline talitluspĂŒsivus;
  • vĂ”rgu talitluspĂŒsivus (tasakaalustajad, BGP);
  • kasutatud ja arendatava tarkvara talitluspĂŒsivus.

KÔigile stabiilset tööaega!

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster