Cara kanggo nahan beban tambah ing sistem: kita ngomong babagan persiapan skala gedhe kanggo Black Friday

Hey Habr!

Ing 2017, sajrone Black Friday, beban tambah meh siji lan setengah kaping, lan server kita ana ing watesan. Sajrone taun, jumlah klien saya tambah akeh, lan dadi jelas yen tanpa persiapan awal sing ati-ati, platform kasebut bisa uga ora tahan beban 2018.

Kita nyetel target sing paling ambisi: kita pengin disiapake kanthi lengkap kanggo kegiatan apa wae, sanajan sing paling kuat, lan wiwit ngluncurake kapasitas anyar luwih dhisik ing saindhenging taun.

CTO kita Andrey Chizh (chizh_andrey) ngandhani carane kita disiapake kanggo Black Friday 2018, apa langkah-langkah sing ditindakake supaya ora tiba, lan, mesthi, asil persiapan kasebut kanthi ati-ati.

Cara kanggo nahan beban tambah ing sistem: kita ngomong babagan persiapan skala gedhe kanggo Black Friday

Dina iki aku arep kanggo pirembagan bab ancang-ancang kanggo Black Friday 2018. Apa saiki, nalika paling dodolan utama ana konco kita? Kita miwiti nyiapake udakara setaun sadurunge acara skala gedhe, lan liwat nyoba lan kesalahan, kita nemokake solusi sing paling optimal. Disaranake sampeyan njupuk care saka mangsa panas ing advance lan nyegah apus sing bisa pop munggah ing wayahe paling inopportune.
Materi kasebut bakal migunani kanggo saben wong sing pengin ngetokake keuntungan maksimal saka saham kasebut, amarga Sisih teknis masalah kasebut ora kalah karo sisih marketing ing kene.

Fitur lalu lintas ing dodolan gedhe

Beda karo kapercayan populer, Black Friday ora mung sedina setaun, nanging meh seminggu: tawaran diskon pisanan teka 7-8 dina sadurunge adol. Lalu lintas situs web wiwit tuwuh kanthi lancar sajrone minggu, tekan puncak ing dina Jumuah lan mudhun banget ing dina Sabtu menyang tingkat biasa toko.

Cara kanggo nahan beban tambah ing sistem: kita ngomong babagan persiapan skala gedhe kanggo Black Friday

Iki penting kanggo dipikirake: toko online dadi luwih sensitif marang "slowdowns" ing sistem. Kajaba iku, baris newsletter email kita uga ngalami peningkatan sing signifikan ing jumlah kiriman.

Penting banget kanggo kita ngliwati Black Friday tanpa kacilakan, amarga ... Fungsi paling penting saka situs web lan buletin toko gumantung saka operasi platform, yaiku:

  • Nelusuri lan nerbitake rekomendasi produk,
  • Penerbitan materi sing gegandhengan (contone, gambar desain blok rekomendasi, kayata panah, logo, lambang lan unsur visual liyane),
  • Nyedhiyakake gambar produk kanthi ukuran sing dibutuhake (kanggo tujuan kasebut, kita duwe "ImageResizer" - subsistem sing ndownload gambar saka server toko, ngompres menyang ukuran sing dibutuhake lan, liwat server caching, ngasilake gambar ukuran sing dibutuhake kanggo saben produk ing saben blok rekomendasi).

Nyatane, sajrone Black Friday 2019, beban layanan tambah 40%, yaiku. jumlah acara sing sistem Rocket Retail trek lan proses ing situs nyimpen online wis tambah saka 5 kanggo 8 ewu panjalukan per detik. Amarga kasunyatan manawa kita lagi nyiapake beban sing luwih serius, kita bisa slamet kanthi gampang.

Cara kanggo nahan beban tambah ing sistem: kita ngomong babagan persiapan skala gedhe kanggo Black Friday

Latihan umum

Black Friday minangka wektu sing sibuk kanggo kabeh toko lan e-commerce utamane. Jumlah pangguna lan kegiatane saiki saya tambah akeh, mula kita, kaya biasane, wis siyap kanggo wektu sing sibuk iki. Ayo ditambahake ing kene kasunyatan manawa kita duwe akeh toko online sing disambungake ora mung ing Rusia, nanging uga ing Eropa, ing ngendi kasenengan luwih dhuwur, lan kita entuk tingkat semangat sing luwih elek tinimbang seri Brasil. Apa sing kudu ditindakake supaya bisa disiapake kanthi lengkap kanggo beban sing tambah?

Nggarap server

Pisanan, perlu kanggo ngerteni apa sing dibutuhake kanggo nambah daya server. Wis ing Agustus, kita wiwit pesen server anyar khusus kanggo Black Friday - total ditambahake 10 mesin tambahan. Ing Nopember padha lengkap ing pertempuran.

Ing wektu sing padha, sawetara mesin mbangun diinstal maneh kanggo digunakake minangka server Aplikasi. Kita langsung nyiapake kanggo nggunakake fungsi sing beda-beda: loro kanggo nerbitake rekomendasi lan kanggo layanan ImageResizer, supaya, gumantung saka jinis beban, saben wong bisa digunakake kanggo salah sawijining peran kasebut. Ing mode normal, server Aplikasi lan ImageResizer duwe fungsi sing jelas: Rekomendasi masalah sadurunge, sing terakhir nyedhiyakake gambar kanggo huruf lan pamblokiran rekomendasi ing situs web blanja online. Ing preparation kanggo Black Friday, iku mutusakΓ© kanggo nggawe kabeh server dual-tujuan kanggo ngimbangi lalu lintas antarane wong-wong mau gumantung ing jinis download.

Banjur kita nambah loro server gedhe kanggo Kafka (Apache Kafka) lan entuk kluster 5 mesin kuat. Sayange, kabeh ora dadi lancar kaya sing dikarepake: sajrone proses sinkronisasi data, rong mesin anyar nguwasani kabeh saluran jaringan, lan kita kudu cepet-cepet ngerteni carane nindakake proses nambah kanthi cepet lan aman kanggo kabeh infrastruktur. Kanggo ngrampungake masalah iki, para pangurus kita kudu ngorbanake akhir minggu kanthi gagah berani.

Nggarap data

Saliyane server, kita mutusake kanggo ngoptimalake file kanggo nyuda beban lan langkah gedhe kanggo kita yaiku terjemahan file statis. Kabeh file statis sing sadurunge di-host ing server dipindhah menyang S3 + Cloudfront. Kita wis pengin nindakake iki kanggo wektu sing suwe, amarga beban ing server cedhak karo nilai watesan, lan saiki ana kesempatan sing apik.

Seminggu sadurunge Black Friday, kita nambah wektu caching gambar kanggo 3 dina, supaya yen ImageResizer tabrakan, gambar sadurunge cache bakal dijupuk saka cdn. Iki uga nyuda beban ing server kita, amarga saya suwe gambar kasebut disimpen, luwih asring kita kudu mbuwang sumber daya kanggo ngowahi ukuran.

Lan pungkasan, nanging paling ora: 5 dina sadurunge Black Friday, moratorium diumumake babagan penyebaran fungsi anyar, uga ing karya apa wae karo infrastruktur - kabeh perhatian ditujukan kanggo ngatasi beban sing tambah.

Rencana kanggo nanggapi kahanan sing angel

Ora ketompo carane kualitas preparation punika, fakaps tansah bisa. Lan kita wis ngembangake 3 rencana respon kanggo kahanan kritis:

  • pengurangan beban,
  • mateni sawetara layanan,
  • mati lengkap layanan.

Plan A: Ngurangi beban. Mesthine wis diaktifake yen, amarga mundhake beban, server kita ngluwihi wektu respon sing bisa ditampa. Ing kasus iki, kita wis nyiapake mekanisme kanggo ngurangi beban kanthi bertahap kanthi ngoper bagean lalu lintas menyang server Amazon, sing mung bakal nanggapi kabeh panjalukan kanthi "200 OK" lan menehi respon kosong. Kita mangertos manawa iki minangka degradasi kualitas layanan, nanging pilihan antarane kasunyatan manawa layanan kasebut ora bisa digunakake utawa ora nuduhake rekomendasi kanggo udakara 10% lalu lintas jelas.

Plan B: Pateni layanan. Degradasi parsial layanan kasebut. Contone, nyuda kacepetan ngitung rekomendasi pribadi kanggo mbongkar sawetara database lan saluran komunikasi. Ing mode normal, rekomendasi diwilang ing wektu nyata, nggawe versi toko online sing beda kanggo saben pengunjung, nanging ing kondisi beban tambah, nyuda kacepetan ngidini layanan inti liyane bisa terus digunakake.

Plan C: ing kasus Armageddon. Yen gagal sistem lengkap, kita wis nyiapake rencana sing bakal ngidini kita bisa dicopot kanthi aman saka pelanggan. Para panuku toko mung bakal mandheg ndeleng rekomendasi; kinerja toko online ora bakal nandhang sangsara kanthi cara apa wae. Kanggo nindakake iki, kita kudu ngreset file integrasi supaya pangguna anyar mandheg sesambungan karo layanan kasebut. Yaiku, kita bakal mateni kode pelacakan utama, layanan kasebut bakal mandheg nglumpukake data lan ngetung rekomendasi, lan pangguna mung bakal ndeleng kaca tanpa pamblokiran rekomendasi. Kanggo kabeh sing sadurunge wis nampa file integrasi, kita wis nyedhiyakake pilihan kanggo ngoper rekaman DNS menyang Amazon lan 200 OK stub.

Hasil

Kita nangani kabeh beban sanajan tanpa perlu nggunakake mesin mbangun tambahan. Lan matur nuwun kanggo persiapan sing luwih maju, kita ora butuh rencana tanggapan sing dikembangake. Nanging kabeh karya sing ditindakake minangka pengalaman sing ora bisa dipercaya sing bakal mbantu kita ngatasi lalu lintas sing paling ora dikarepke lan gedhe banget.
Kaya ing 2017, beban layanan tambah 40%, lan jumlah pangguna ing toko online tambah 60% ing Black Friday. Kabeh kangelan lan kesalahane dumadi sak periode preparatory, kang nylametakΓ© kita lan klien kita saka kahanan unforeseen.

Kepiye cara ngatasi Black Friday? Kepiye sampeyan nyiapake beban kritis?

Source: www.habr.com

Add a comment