Kuinka kestää järjestelmän lisääntynyt kuormitus: puhumme laajamittaisista Black Friday -valmisteluista

Hei Habr!

Vuonna 2017 Black Fridayn aikana kuormitus kasvoi lähes puolitoistakertaiseksi ja palvelimemme olivat äärirajoillaan. Asiakkaiden määrä on vuoden aikana kasvanut merkittävästi ja kävi selväksi, että ilman huolellista ennakkovalmistelua alusta ei ehkä yksinkertaisesti kestä vuoden 2018 kuormia.

Asetimme kunnianhimoisimman mahdollisen tavoitteen: halusimme olla täysin valmiita kaikkiin, voimakkaimpiinkin toiminnan nousuihin ja aloimme käynnistää uusia kapasiteettia etukäteen läpi vuoden.

Tekniikkajohtajamme Andrey Chizh (chizh_andrey) kertoo kuinka valmistauduimme Black Friday 2018 -juhliin, mihin toimenpiteisiin teimme kaatumisen välttämiseksi ja tietysti huolellisen valmistelun tulokset.

Kuinka kestää järjestelmän lisääntynyt kuormitus: puhumme laajamittaisista Black Friday -valmisteluista

Tänään haluan puhua Black Friday 2018 -valmisteluista. Miksi nyt, kun suurin osa myynneistä on takanapäin? Aloitimme valmistelun noin vuosi ennen suuria tapahtumia, ja yrityksen ja erehdyksen kautta löysimme optimaalisen ratkaisun. Suosittelemme, että huolehdit kuumista vuodenajoista etukäteen ja vältät huijaukset, jotka saattavat ilmaantua sopimattomimmalla hetkellä.
Materiaali on hyödyllinen kaikille, jotka haluavat puristaa suurimman voiton tällaisista osakkeista, koska Asian tekninen puoli ei ole huonompi kuin markkinointipuoli tässä.

Liikenteen ominaisuudet suurissa myynneissä

Vastoin yleistä käsitystä Black Friday ei ole vain yksi päivä vuodessa, vaan lähes koko viikko: ensimmäiset alennustarjoukset saapuvat 7-8 päivää ennen myyntiä. Verkkosivujen liikenne alkaa kasvaa tasaisesti läpi viikon, saavuttaa huippunsa perjantaina ja laskee lauantaina melko jyrkästi kaupan tavanomaiselle tasolle.

Kuinka kestää järjestelmän lisääntynyt kuormitus: puhumme laajamittaisista Black Friday -valmisteluista

Tämä on tärkeää ottaa huomioon: verkkokaupat ovat erityisen herkkiä järjestelmän "hidastuksille". Lisäksi sähköpostiuutiskirjeemme lähetysten määrä kasvoi merkittävästi.

Meille on strategisesti tärkeää käydä läpi Black Friday ilman kaatumisia, koska... Sivujen ja kauppojen uutiskirjeiden tärkeimmät toiminnot riippuvat alustan toiminnasta, nimittäin:

  • Tuotesuositusten seuranta ja antaminen,
  • Aiheeseen liittyvien materiaalien (esimerkiksi kuvat suosituslohkojen suunnittelusta, kuten nuolet, logot, kuvakkeet ja muut visuaaliset elementit) julkaiseminen
  • Tarvittavan kokoisten tuotekuvien tarjoaminen (tätä varten meillä on “ImageResizer” - alijärjestelmä, joka lataa kuvan myymäläpalvelimelta, pakkaa sen vaadittuun kokoon ja tuottaa välimuistipalvelimien kautta tarvittavan kokoisia kuvia jokaisesta tuotteessa jokainen suosituslohko).

Itse asiassa Black Friday 2019 aikana palvelun kuormitus nousi 40 %, ts. Retail Rocket -järjestelmän seuraamien ja verkkokauppasivustoilla prosessoimien tapahtumien määrä on noussut 5:stä 8 tuhanteen pyyntöön sekunnissa. Koska valmistauduimme vakavampiin kuormiin, selvisimme tällaisesta noususta helposti.

Kuinka kestää järjestelmän lisääntynyt kuormitus: puhumme laajamittaisista Black Friday -valmisteluista

Yleiskoulutus

Black Friday on kiireistä aikaa kaikessa vähittäiskaupassa ja erityisesti verkkokaupassa. Käyttäjien määrä ja aktiivisuus kasvavat tällä hetkellä merkittävästi, joten valmistauduimme, kuten aina, perusteellisesti tähän kiireiseen aikaan. Lisätään tähän vielä se, että meillä on monia verkkokauppoja kytkettynä paitsi Venäjällä, myös Euroopassa, missä jännitys on paljon korkeampi ja saamme intohimon tason pahemmaksi kuin brasilialainen sarja. Mitä on tehtävä, jotta voit olla täysin valmistautunut lisääntyneisiin kuormituksiin?

Työskentely palvelimien kanssa

Ensin oli tarpeen selvittää, mitä tarkalleen tarvitsimme lisätäksemme palvelimen tehoa. Jo elokuussa aloimme tilata uusia palvelimia nimenomaan Black Fridayta varten – lisäsimme yhteensä 10 konetta. Marraskuussa he olivat täysin taistelussa.

Samaan aikaan osa rakennuskoneista asennettiin uudelleen käytettäväksi sovelluspalvelimina. Valmistelimme heidät heti eri toimintojen käyttöön: sekä suositusten antamiseen että ImageResizer-palveluun, jotta kutakin niistä voisi kuormituksen tyypistä riippuen käyttää johonkin näistä rooleista. Normaalitilassa Sovellus- ja ImageResizer-palvelimilla on selkeästi määritellyt toiminnot: edellinen antaa suosituksia, jälkimmäinen kuvia kirjeistä ja suosituslohkoista verkkokauppasivustoilla. Black Fridayta valmisteltaessa päätettiin tehdä kaikista kaksikäyttöisistä palvelimista, jotta niiden välinen liikenne voitaisiin tasapainottaa lataustyypistä riippuen.

Sitten lisäsimme kaksi suurta palvelinta Kafkalle (Apache Kafka) ja saimme 5 tehokkaan koneen klusterin. Valitettavasti kaikki ei sujunut niin sujuvasti kuin olisimme halunneet: tietojen synkronoinnin aikana kaksi uutta konetta miehitti koko verkkokanavan leveyden, ja jouduimme kiireesti keksimään, miten lisäysprosessi voidaan suorittaa nopeasti ja turvallisesti. koko infrastruktuuri. Tämän ongelman ratkaisemiseksi järjestelmänvalvojamme joutuivat uhraamaan rohkeasti viikonloppunsa.

Tietojen käsittely

Palvelimien lisäksi päätimme optimoida tiedostoja kuormituksen keventämiseksi ja iso askel meille oli staattisten tiedostojen kääntäminen. Kaikki staattiset tiedostot, joita aiemmin isännöitiin palvelimilla, siirrettiin S3 + Cloudfrontiin. Olemme halunneet tehdä tämän jo pitkään, koska palvelimen kuormitus oli lähellä raja-arvoja, ja nyt avautui loistava tilaisuus.

Viikkoa ennen Black Fridayta lisäsimme kuvien välimuistin ajan 3 päivään, jotta jos ImageResizer kaatuisi, aiemmin välimuistissa olevat kuvat noudettaisiin cdn:stä. Se myös vähensi palvelimiemme kuormitusta, koska mitä pidempään kuvaa säilytetään, sitä harvemmin joudumme käyttämään resursseja koon muuttamiseen.

Ja viimeisenä muttei vähäisimpänä: 5 päivää ennen Black Fridayta julkaistiin moratorio kaikkien uusien toimintojen käyttöönotolle sekä kaikille infrastruktuurin parissa tehtävälle työlle - kaikki huomio on suunnattu lisääntyneiden kuormitusten selvittämiseen.

Suunnitelmia vastata vaikeisiin tilanteisiin

Riippumatta siitä, kuinka laadukas valmistus on, fakapit ovat aina mahdollisia. Ja olemme kehittäneet kolme toimintasuunnitelmaa mahdollisia kriittisiä tilanteita varten:

  • kuormituksen vähentäminen,
  • joidenkin palvelujen poistaminen käytöstä,
  • palvelun täydellinen sulkeminen.

Suunnitelma A: Vähennä kuormaa. Olisi pitänyt aktivoida, jos palvelimemme ovat ylittäneet hyväksyttävät vastausajat kuormituksen nousun vuoksi. Tässä tapauksessa olemme valmistaneet mekanismeja kuormituksen vähentämiseksi asteittain siirtämällä osa liikenteestä Amazon-palvelimille, jotka vain vastaisivat kaikkiin pyyntöihin "200 OK" ja antaisivat tyhjän vastauksen. Ymmärsimme, että tämä oli palvelun laadun heikkenemistä, mutta valinta sen välillä, että palvelu ei toimi ollenkaan tai ei näytä suosituksia noin 10 % liikenteestä, on ilmeinen.

Suunnitelma B: Poista palvelut käytöstä. Palvelun oletettu osittainen heikkeneminen. Esimerkiksi henkilökohtaisten suositusten laskentanopeuden vähentäminen joidenkin tietokantojen ja viestintäkanavien purkamiseksi. Normaalitilassa suositukset lasketaan reaaliajassa, jolloin jokaiselle vierailijalle luodaan erilainen versio verkkokaupasta, mutta lisääntyneen kuormituksen olosuhteissa nopeuden vähentäminen mahdollistaa muiden ydinpalvelujen jatkamisen.

Suunnitelma C: Harmagedonin tapauksessa. Jos järjestelmässä tapahtuu täydellinen vika, olemme laatineet suunnitelman, jonka avulla voimme turvallisesti katkaista yhteyden asiakkaistamme. Kaupan ostajat yksinkertaisesti lakkaavat näkemästä suosituksia, verkkokaupan suorituskyky ei heikkene millään tavalla. Tätä varten meidän on nollattava integrointitiedostomme, jotta uudet käyttäjät lopettaisivat vuorovaikutuksen palvelun kanssa. Eli poistaisimme pääseurantakoodimme käytöstä, palvelu lopettaisi tietojen keräämisen ja suositusten laskemisen ja käyttäjä näkisi vain sivun ilman suosituslohkoja. Kaikille aiemmin integraatiotiedoston saaneille olemme tarjonneet mahdollisuuden vaihtaa DNS-tietueen Amazoniin ja 200 OK-tyngään.

Tulokset

Käsittelimme koko kuorman ilman lisärakennuskoneiden käyttöä. Ja ennakkovalmistelun ansiosta emme tarvinneet mitään kehitetyistä vastaussuunnitelmista. Mutta kaikki tehty työ on korvaamatonta kokemusta, joka auttaa meitä selviytymään odottamattomimmista ja suurista liikennevirroista.
Kuten vuonna 2017, palvelun kuormitus kasvoi 40 % ja verkkokauppojen käyttäjämäärä kasvoi 60 % Black Fridayna. Kaikki vaikeudet ja virheet tapahtuivat valmisteluvaiheessa, mikä säästi meidät ja asiakkaamme odottamattomilta tilanteilta.

Miten selviät Black Fridaysta? Miten valmistaudut kriittisiin kuormiin?

Lähde: will.com

Lisää kommentti