Kumaha carana tahan ngaronjat beban dina sistem: urang ngobrol ngeunaan persiapan skala badag pikeun Hideung Jumaah

Héy Habr!

Dina 2017, salila Hideung Jumaah, beban ngaronjat ku ampir hiji satengah kali, sarta server kami dina wates maranéhanana. Sapanjang taun, jumlah klien parantos ningkat sacara signifikan, sareng janten écés yén tanpa persiapan awal anu ati-ati, platformna tiasa waé henteu tahan beban taun 2018.

Kami netepkeun tujuan anu paling ambisius: kami hoyong siap-siap pikeun kagiatan naon waé, bahkan anu paling kuat, sareng mimitian ngaluncurkeun kamampuan énggal sateuacanna sapanjang taun.

CTO kami Andrey Chizh (chizh_andrey) ngabejaan kumaha urang disiapkeun pikeun Hideung Jumaah 2018, naon ukuran urang nyandak pikeun nyegah ragrag, sarta, tangtosna, hasil persiapan ati sapertos.

Kumaha carana tahan ngaronjat beban dina sistem: urang ngobrol ngeunaan persiapan skala badag pikeun Hideung Jumaah

Dinten abdi hoyong ngobrol ngeunaan persiapan pikeun Hideung Jumaah 2018. Naha ayeuna, nalika lolobana jualan utama aya di tukangeun urang? Kami ngamimitian nyiapkeun sakitar sataun sateuacan acara skala ageung, sareng ngalangkungan trial and error kami mendakan solusi anu optimal. Kami ngarékoméndasikeun yén anjeun ngurus usum panas sateuacanna sareng nyegah panipuan anu tiasa muncul dina waktos anu paling henteu pas.
Bahanna bakal mangpaat pikeun saha waé anu hoyong squeeze kauntungan maksimal tina saham sapertos kitu, sabab Sisi téknis masalahna henteu langkung handap tina sisi pamasaran di dieu.

Fitur lalulintas di jualan badag

Sabalikna sareng kapercayaan populér, Hideung Jumaah sanés ngan ukur sadinten sataun, tapi ampir saminggu: tawaran diskon munggaran sumping 7-8 dinten sateuacan penjualan. Lalu lintas halaman wéb mimiti ningkat lancar salami saminggu, ngahontal puncakna dina dinten Jumaah sareng turun pisan dina dinten Saptu ka tingkat biasa toko.

Kumaha carana tahan ngaronjat beban dina sistem: urang ngobrol ngeunaan persiapan skala badag pikeun Hideung Jumaah

Ieu penting pikeun mertimbangkeun: toko online janten utamana sénsitip kana sagala "slowdowns" dina sistem. Salaku tambahan, garis buletin email urang ogé ngalaman paningkatan anu signifikan dina jumlah kiriman.

Penting sacara strategis pikeun urang ngaliwat Hideung Jumaah tanpa kacilakaan, sabab ... Fungsi anu paling penting tina situs wéb sareng buletin toko gumantung kana operasi platform, nyaéta:

  • Nyukcruk sareng ngaluarkeun rekomendasi produk,
  • Ngaluarkeun bahan anu aya hubunganana (contona, gambar desain blok rekomendasi, sapertos panah, logo, ikon sareng elemen visual anu sanés),
  • Nyayogikeun gambar produk tina ukuran anu diperyogikeun (kanggo tujuan ieu kami ngagaduhan "ImageResizer" - subsistem anu ngaunduh gambar tina server toko, ngompres kana ukuran anu diperyogikeun sareng, ngalangkungan server cache, ngahasilkeun gambar ukuran anu diperyogikeun pikeun unggal produk dina. unggal blok rekomendasi).

Nyatana, salami Hideung Jumaah 2019, beban jasa naék 40%, nyaéta. jumlah acara nu Retail Rocket sistem lagu jeung prosés dina situs toko online geus ngaronjat tina 5 ka 8 sarébu requests per detik. Kusabab kanyataan yén kami nyiapkeun beban anu langkung serius, kami tiasa salamet kalayan gampang.

Kumaha carana tahan ngaronjat beban dina sistem: urang ngobrol ngeunaan persiapan skala badag pikeun Hideung Jumaah

Latihan umum

Hideung Jumaah mangrupikeun waktos anu sibuk pikeun sadaya ritel sareng e-commerce khususna. Jumlah pangguna sareng kagiatanana dina waktos ayeuna ningkat sacara signifikan, janten kami, sapertos biasa, nyiapkeun tuntas pikeun waktos sibuk ieu. Hayu urang tambahkeun didieu kanyataan yén urang geus loba toko online disambungkeun teu ukur di Rusia, tapi ogé di Éropa, dimana pikagumbiraeun nu loba nu leuwih luhur, sarta kami meunang tingkat gairah leuwih goreng ti séri Brasil. Naon anu kudu dipigawé pikeun pinuh disiapkeun pikeun beban ngaronjat?

Gawe sareng server

Kahiji, perlu pikeun manggihan naon kahayang urang diperlukeun pikeun ngaronjatkeun kakuatan server. Geus dina bulan Agustus, urang mimiti mesen server anyar husus pikeun Hideung Jumaah - total urang ditambahkeun 10 mesin tambahan. Nepi ka Nopémber aranjeunna pinuh dina tempur.

Dina waktos anu sami, sababaraha mesin ngawangun dipasang deui kanggo dianggo salaku server Aplikasi. Kami langsung nyiapkeun aranjeunna pikeun ngagunakeun fungsi anu béda: boh pikeun ngaluarkeun saran sareng pikeun jasa ImageResizer, ku kituna, gumantung kana jinis beban, masing-masing tiasa dianggo pikeun salah sahiji peran ieu. Dina modeu normal, server Aplikasi sareng ImageResizer ngagaduhan fungsi anu jelas: rekomendasi ngaluarkeun sateuacana, anu terakhir nyayogikeun gambar pikeun hurup sareng blok rekomendasi dina situs wéb balanja online. Dina préparasi Hideung Jumaah, éta mutuskeun pikeun nyieun sagala server dual-tujuan pikeun nyaimbangkeun lalulintas antara aranjeunna gumantung kana jenis download.

Teras we ditambahkeun dua server badag pikeun Kafka (Apache Kafka) sarta meunang klaster 5 mesin kuat. Hanjakalna, sadayana henteu lancar sapertos anu urang pikahoyong: salami prosés sinkronisasi data, dua mesin énggal nempatan sakumna lebar saluran jaringan, sareng urang kedah gancang-gancang terang kumaha ngalaksanakeun prosés tambihan gancang sareng aman pikeun sakabéh infrastruktur. Pikeun ngabéréskeun masalah ieu, pangurus urang kedah wani ngorbankeun akhir mingguna.

Gawe sareng data

Salian server, kami mutuskeun pikeun ngaoptimalkeun file pikeun ngaringankeun beban sareng léngkah anu ageung pikeun kami nyaéta tarjamahan file statik. Kabéh file statik nu saméméhna hosted on server anu dipindahkeun ka S3 + Cloudfront. Kami parantos lami hoyong ngalakukeun ieu, sabab beban dina server caket kana nilai wates, sareng ayeuna kasempetan anu saé parantos timbul.

Saminggu sateuacan Hideung Jumaah, urang ningkatkeun waktos caching gambar janten 3 dinten, ku kituna upami ImageResizer nabrak, gambar anu di-cache sateuacana bakal dicandak tina cdn. Éta ogé ngirangan beban dina server kami, sabab langkung lami gambar disimpen, langkung sering urang kedah nyéépkeun sumber daya pikeun ngarobih ukuran.

Sareng anu terakhir tapi henteu sakedik: 5 dinten sateuacan Hideung Jumaah, moratorium diumumkeun ngeunaan panyebaran fungsionalitas énggal, kitu ogé dina padamelan naon waé sareng infrastruktur - sadaya perhatian ditujukeun pikeun ngatasi beban anu ningkat.

Rencana pikeun ngaréspon kana kaayaan susah

Perkara teu sabaraha kualitas luhur persiapan téh, fakaps salawasna mungkin. Sareng kami parantos ngembangkeun 3 rencana réspon pikeun kamungkinan kaayaan kritis:

  • ngurangan beban,
  • nganonaktipkeun sababaraha jasa,
  • shutdown lengkep jasa.

Rencana A: Ngurangan beban. Sakuduna geus diaktipkeun lamun, alatan lonjakan dina beban, server kami ngaleuwihan timings respon ditarima. Dina hal ieu, kami geus disiapkeun mékanisme pikeun laun ngurangan beban ku ngaganti bagian tina lalulintas ka server Amazon, nu saukur bakal ngabales sagala requests kalawan "200 OK" na masihan respon kosong. Kami ngartos yén ieu mangrupikeun degradasi kualitas jasa, tapi pilihan antara kanyataan yén jasa éta henteu jalan atanapi henteu nunjukkeun saran pikeun sakitar 10% tina lalu lintas jelas.

Rencana B: Pareuman jasa. Tersirat degradasi parsial jasa. Salaku conto, ngirangan laju ngitung saran pribadi pikeun ngabongkar sababaraha pangkalan data sareng saluran komunikasi. Dina modeu normal, rekomendasi diitung sacara real-time, nyiptakeun vérsi anu béda tina toko online pikeun unggal sémah, tapi dina kaayaan beban anu ningkat, ngirangan laju ngamungkinkeun jasa inti anu sanés tiasa dianggo.

Rencana C: bisi Armageddon. Upami aya kagagalan sistem anu lengkep, kami parantos nyiapkeun rencana anu bakal ngamungkinkeun urang aman dipegatkeun tina palanggan kami. Pembeli toko ngan saukur bakal lirén ningali rekomendasi; kinerja toko online moal sangsara ku cara naon waé. Pikeun ngalakukeun ieu, urang kedah ngareset file integrasi urang supados pangguna énggal bakal ngeureunkeun interaksi sareng jasa éta. Hartina, urang bakal nganonaktipkeun kode tracking utama urang, jasa bakal eureun ngumpulkeun data jeung ngitung rekomendasi, sarta pamaké saukur bakal ningali kaca tanpa blok rekomendasi. Pikeun sakabéh jalma anu saacanna nampi file integrasi, kami parantos nyayogikeun pilihan pikeun ngagentos catetan DNS ka Amazon sareng 200 OKÉ.

hasil

Urang nanganan sakabéh beban sanajan tanpa kudu make mesin ngawangun tambahan. Sareng hatur nuhun kana persiapan sateuacanna, kami henteu peryogi salah sahiji rencana réspon anu dikembangkeun. Tapi sadaya padamelan anu dilakukeun mangrupikeun pangalaman anu teu ternilai anu bakal ngabantosan urang ngatasi panyaluran lalu lintas anu paling teu kaduga sareng ageung.
Sapertos dina 2017, beban jasa naék ku 40%, sareng jumlah pangguna di toko online ningkat ku 60% dina Hideung Jumaah. Sadaya kasusah sareng kasalahan lumangsung salami periode persiapan, anu nyalametkeun kami sareng klien kami tina kaayaan anu teu kaduga.

Kumaha anjeun nungkulan Hideung Jumaah? Kumaha anjeun nyiapkeun beban kritis?

sumber: www.habr.com

Tambahkeun komentar