Naon mantuan kami gancang adaptasi jeung dagang online dina kaayaan anyar

Salam!

Nami abdi Mikhail, abdi Wakil Diréktur IT di perusahaan Sportmaster. Abdi hoyong ngabagi carita kumaha urang nungkulan tangtangan anu timbul nalika pandémik.

Dina poé mimiti realities anyar, format dagang offline biasa tina Sportmaster froze, sarta beban dina saluran online urang, utamana dina watesan pangiriman ka alamat klien urang, ngaronjat 10 kali. Dina ngan sababaraha minggu, urang ngarobah bisnis offline gigantic kana hiji online tur diadaptasi jasa pikeun kaperluan klien kami.

Dasarna, naon dasarna operasi samping urang janten bisnis inti urang. Pentingna unggal pesenan online parantos ningkat pisan. Ieu diperlukeun pikeun ngahemat unggal ruble nu klien dibawa ka pausahaan. 

Naon mantuan kami gancang adaptasi jeung dagang online dina kaayaan anyar

Pikeun gancang ngabales pamundut palanggan, kami muka pusat kontak tambahan di kantor utama perusahaan, sareng ayeuna tiasa nampi sakitar 285 rébu telepon per minggu. Dina waktos anu sami, urang ngalihkeun 270 toko kana format operasi anu teu aya hubunganana sareng aman, anu ngamungkinkeun para nasabah nampi pesenan sareng karyawan pikeun ngajaga padamelan na.

Salila prosés transformasi, urang ngalaman dua masalah utama. Anu mimiti, beban sumber daya online kami parantos ningkat sacara signifikan (Sergey bakal nyarioskeun ka anjeun kumaha urang nungkulan ieu). Kadua, aliran operasi langka (pra-COVID) parantos ningkat sababaraha kali, anu salajengna peryogi seueur otomatisasi gancang. Pikeun ngabéréskeun masalah ieu, urang kedah gancang mindahkeun sumber daya ti daérah anu saacanna janten utama. Elena bakal ngabejaan ka maneh kumaha urang nungkulan ieu.

Operasi jasa online

Kolesnikov Sergey, jawab operasi toko online tur microservices

Ti momen toko ritel urang mimiti nutup ka datang, urang mimiti ngarekam paningkatan dina metrics kayaning jumlah pamaké, jumlah pesenan disimpen dina aplikasi urang, sarta jumlah requests kana aplikasi. 

Naon mantuan kami gancang adaptasi jeung dagang online dina kaayaan anyarJumlah pesenan ti 18 Maret nepi ka 31 MaretNaon mantuan kami gancang adaptasi jeung dagang online dina kaayaan anyarJumlah requests ka microservices pembayaran onlineNaon mantuan kami gancang adaptasi jeung dagang online dina kaayaan anyarJumlah pesenan disimpen dina website

Dina grafik kahiji urang nempo yén kanaékan éta kira 14 kali, dina kadua - 4 kali. Kami nganggap métrik waktos réspon tina aplikasi kami janten anu paling indikatif. 

Naon mantuan kami gancang adaptasi jeung dagang online dina kaayaan anyar

Dina grafik ieu kami ningali réspon payun sareng aplikasi, sareng pikeun diri urang sorangan kami ditangtukeun yén kami henteu perhatikeun kamekaran sapertos kitu.

Ieu utamana alatan kanyataan yén urang mimiti gawé préparasi dina ahir 2019. Ayeuna jasa kami dicadangkeun, kasabaran kasalahan dipastikeun dina tingkat server fisik, sistem virtualisasi, docker, sareng jasa di antarana. Dina waktos anu sami, kapasitas sumber daya server kami ngamungkinkeun urang nahan sababaraha beban.

Alat utama anu ngabantosan kami dina sadaya carita ieu nyaéta sistem ngawaskeun kami. Leres, dugi ka ayeuna urang teu gaduh sistem tunggal anu ngamungkinkeun urang pikeun ngumpulkeun métrik dina sadaya lapisan, ti tingkat alat fisik sareng hardware dugi ka tingkat métrik bisnis. 

Sacara resmi, aya ngawaskeun perusahaan, tapi biasana dibubarkeun sareng aya di daérah tanggung jawab departemén khusus. Kanyataanna, nalika hiji kajadian lumangsung, urang ampir pernah boga pamahaman umum ngeunaan naon kahayang kajadian, euweuh komunikasi, sarta mindeng ieu ngarah ka ngajalankeun di bunderan pikeun manggihan tur ngasingkeun masalah meh bisa dibereskeun.

Dina sababaraha waktos, kami panginten sareng mutuskeun yén kami cekap pikeun tahan ieu - kami peryogi sistem anu ngahijikeun pikeun ningali sadayana gambar sacara lengkep. Téknologi utama anu kalebet dina tumpukan kami nyaéta Zabbix salaku pusat panyimpen anu waspada sareng métrik, Prometheus pikeun ngumpulkeun sareng nyimpen métrik aplikasi, Stack ELK pikeun logging sareng nyimpen data tina sakabéh sistem ngawaskeun, kitu ogé Grafana pikeun visualisasi, Swagger, Docker. sarta mangpaat séjén sarta hal anu wawuh ka anjeun.

Dina waktos anu sami, kami henteu ngan ukur nganggo téknologi anu aya di pasar, tapi ogé ngembangkeun sababaraha urang sorangan. Salaku conto, urang ngadamel jasa pikeun ngahijikeun sistem saling, nyaéta, sababaraha jinis API pikeun ngumpulkeun métrik. Tambih Deui, urang nuju ngerjakeun sistem ngawaskeun sorangan - dina tingkat métrik bisnis kami nganggo tés UI. Sareng ogé bot dina Telegram pikeun ngabéjaan tim.

Urang ogé nyobian sangkan sistem ngawaskeun diaksés ka tim ambéh maranéhanana bisa mandiri nyimpen sarta dianggo kalayan metrics maranéhna, kaasup nyetel panggeuing pikeun sababaraha metrics sempit nu teu loba dipaké. 

Sapanjang sistem, urang narékahan pikeun proaktivitas sareng lokalisasi kajadian gancang-gancang. Salaku tambahan, jumlah jasa mikro sareng sistem kami parantos ningkat sacara signifikan, sareng jumlah integrasi parantos ningkat. Sareng salaku bagian tina ngaoptimalkeun prosés diagnosis kajadian dina tingkat integrasi, kami ngembangkeun sistem anu ngamungkinkeun anjeun ngalaksanakeun pamariksaan cross-sistem sareng ningalikeun hasilna, anu ngamungkinkeun anjeun mendakan masalah utama anu aya hubunganana sareng impor sareng interaksi sistem sareng. masing-masing. 

Tangtosna, urang masih gaduh rohangan pikeun tumbuh sareng mekar dina hal sistem operasi, sareng kami aktip ngusahakeun ieu. Anjeun tiasa maca langkung seueur ngeunaan sistem ngawaskeun kami di dieu

Tés téknis 

Orlov Sergey, lulugu puseur kompetensi pikeun web tur ngembangkeun mobile

Kusabab panutupan toko fisik dimimitian, kami parantos nyanghareupan sababaraha tantangan tina sudut pandang pamekaran. Anu mimiti, beban surge sapertos kitu. Éta jelas yén upami ukuran anu pas henteu dilaksanakeun, maka nalika beban anu luhur diterapkeun kana sistem, éta tiasa janten waluh kalayan bang hanjelu, atanapi lengkep nguraikeun kinerja, atanapi malah leungit pungsionalitasna.

Aspék kadua, rada kurang atra, nyaéta yén sistem dina beban anu luhur kedah dirobih gancang-gancang, adaptasi kana parobahan dina prosés bisnis. Kadang sababaraha kali sapoé. Seueur perusahaan gaduh aturan yén upami aya seueur kagiatan pamasaran, henteu kedah parobihan kana sistem. Euweuh pisan, hayu eta dianggo salami gawéna.

Sarta kami dasarna kungsi hiji Hideung Jumaah sajajalan, salila ieu diperlukeun pikeun ngarobah sistem. Sareng kasalahan, masalah, atanapi kagagalan dina sistem bakal mahal pisan pikeun bisnis.

Ningali payun, kuring bakal nyarios yén urang tiasa ngatasi tés ieu, sadaya sistem nahan beban, gampang diskalakeun, sareng urang henteu ngalaman gagal téknis global.

Aya opat pilar dimana kamampuan sistem nahan beban surge tinggi. Anu kahiji nyaéta ngawaskeun, anu anjeun baca di luhur. Tanpa sistem ngawaskeun anu diwangun, ampir teu mungkin pikeun mendakan bottlenecks sistem. Sistem ngawaskeun anu saé sapertos baju bumi; éta kedah nyaman sareng cocog pikeun anjeun.

Aspék kadua nguji. Kami nyandak titik ieu sacara serius: urang nyerat unit klasik, tes integrasi, tes beban sareng seueur anu sanésna pikeun unggal sistem. Kami ogé nyerat strategi tés, sareng dina waktos anu sami nyobian ningkatkeun tingkat tés dugi ka urang henteu peryogi deui cek manual.

Pilar katilu nyaéta CI/CD Pipeline. Prosés ngawangun, nguji, sareng nyebarkeun aplikasi kedah otomatis sabisa-gancang; teu kedah aya campur tangan manual. Topik CI / CD Pipeline cukup jero, sareng kuring ngan ukur bakal nyabak sakedap. Ieu ngan patut disebutkeun yen urang boga CI / CD Pipeline Daptar pariksa, nu unggal tim produk mana ngaliwatan kalayan bantuan puseur kompetensi.

Naon mantuan kami gancang adaptasi jeung dagang online dina kaayaan anyarSareng ieu daptar pariksa

Ku cara kieu, loba tujuan anu kahontal. Ieu mangrupikeun versi API sareng toggle fitur pikeun ngahindarkeun karéta pelepasan, sareng ngahontal liputan rupa-rupa tés dina tingkat sapertos anu nguji otomatis otomatis, panyebaran lancar, sareng sajabana.

Pilar kaopat nyaéta prinsip arsitéktur sareng solusi téknis. Urang tiasa nyarios seueur ngeunaan arsitéktur pikeun waktos anu lami, tapi kuring hoyong ngantebkeun sababaraha prinsip anu kuring hoyong difokuskeun.

Kahiji, anjeun kudu milih parabot husus pikeun tugas husus. Sumuhun, eta disada atra, sarta eta jelas yén paku kudu disetir ku palu, sarta wristwatches kudu disassembled kalawan screwdrivers husus. Tapi dina umur urang, loba parabot narékahan pikeun universalization guna nutupan bagean maksimum pamaké: database, caches, frameworks jeung lianna. Salaku conto, upami anjeun nyandak database MongoDB, éta tiasa dianggo sareng transaksi multi-dokumen, sareng database Oracle tiasa dianggo sareng json. Sarta eta bakal sigana yen sagalana bisa dipaké pikeun sagalana. Tapi upami urang nangtung pikeun produktivitas, maka urang kedah ngartos jelas kaunggulan sareng kalemahan unggal alat sareng nganggo anu urang peryogikeun pikeun tugas kelas urang. 

Kadua, nalika ngarancang sistem, unggal paningkatan pajeulitna kedah diyakinkeun. Urang kedah teras-terasan ngémutan ieu; prinsip gandeng low dipikanyaho sadayana. Kuring yakin yén éta kudu dilarapkeun dina tingkat layanan husus, sarta dina tingkat sakabéh sistem, sarta dina tingkat bentang arsitéktur. Kamampuhan pikeun skala horisontal unggal komponén sistem sapanjang jalur beban ogé penting. Upami anjeun gaduh kamampuan ieu, skala moal sesah.

Ngomongkeun solusi téknis, kami naroskeun ka tim produk pikeun nyiapkeun sakumpulan rekomendasi, ideu sareng solusi anu énggal, anu dilaksanakeun pikeun nyiapkeun gelombang beban kerja anu salajengna.

Keshi

Perlu sadar kana pilihan cache lokal sareng disebarkeun. Kadang-kadang masuk akal ngagunakeun duanana dina sistem anu sami. Contona, urang gaduh sistem dimana sababaraha data dina dasarna mangrupikeun cache showcase, nyaéta, sumber apdet aya di tukangeun sistem éta sorangan, sareng sistemna henteu robih. data ieu. Pikeun pendekatan ieu kami nganggo Cache Kafein lokal. 

Sareng aya data yén sistem sacara aktip robih salami operasi, sareng di dieu urang parantos nganggo cache anu disebarkeun sareng Hazelcast. pendekatan ieu ngamungkinkeun urang ngagunakeun mangpaat cache disebarkeun dimana maranéhna bener diperlukeun, sarta ngaminimalkeun waragad jasa sirkulasi data klaster Hazelcast dimana urang tiasa ngalakukeun tanpa eta. Kami parantos nyerat seueur ngeunaan cache. di dieu и di dieu.

Salaku tambahan, ngarobah serializer kana Kryo di Hazelcast masihan kami dorongan anu saé. Sareng transisi tina ReplicatedMap ka IMap + Cache Cache di Hazelcast ngamungkinkeun urang ngaminimalkeun gerakan data dina kluster. 

Saeutik naséhat: dina kasus invalidation cache massal, taktik pemanasan cache kadua teras ngalih ka éta kadang tiasa dianggo. Sigana yén kalayan pendekatan ieu urang kedah nampi konsumsi memori ganda, tapi dina prakna, dina sistem dimana ieu latihan, konsumsi memori turun.

Tumpukan réaktif

Kami nganggo tumpukan réaktif dina sajumlah ageung sistem. Dina kasus urang, ieu Webflux atanapi Kotlin kalawan coroutines. Tumpukan réaktif hususna saé dimana urang ngarepkeun operasi input-output anu laun. Contona, nelepon ka ngalambatkeun jasa, gawé bareng sistem file atawa sistem gudang.

Prinsip anu paling penting nyaéta ngahindarkeun ngablokir telepon. Frameworks réaktif boga sajumlah leutik threads layanan hirup ngajalankeun handapeun tiung. Upami urang sacara teu ati-ati ngijinkeun diri pikeun nelepon langsung ngahalangan, sapertos nelepon supir JDBC, sistemna ngan saukur bakal lirén. 

Coba ngahurungkeun kasalahan kana iwal runtime anjeun sorangan. Aliran sabenerna palaksanaan program pindah ka kerangka réaktif, sarta palaksanaan kode jadi nonlinier. Hasilna, hésé pisan pikeun ngadiagnosa masalah nganggo jejak tumpukan. Sareng solusina di dieu nyaéta nyiptakeun éntitas runtime anu jelas sareng objektif pikeun unggal kasalahan.

Elasticsearch

Nalika nganggo Elasticsearch, ulah milih data anu henteu dianggo. Ieu, prinsipna mah, oge nasehat basajan pisan, tapi paling sering ieu téh poho. Upami anjeun kedah milih langkung ti 10 rébu rékaman sakaligus, anjeun kedah nganggo Gulung. Ngagunakeun analogi, éta rada kawas kursor dina database relational. 

Ulah make postfilter iwal perlu. Kalawan data badag dina sampel utama, operasi ieu greatly beban database. 

Paké operasi bulk mana lumaku.

API

Nalika ngarancang API, kalebet sarat pikeun ngaminimalkeun data anu dikirimkeun. Ieu hususna leres aya hubunganana sareng payun: éta di simpang ieu kami ngalangkungan saluran pusat data kami sareng parantos damel dina saluran anu nyambungkeun kami sareng klien. Lamun boga masalah slightest, teuing lalulintas ngabalukarkeun pangalaman pamaké négatip.

Sarta pamustunganana, ulah buang kaluar kebat sakabeh data, jadi jelas ngeunaan kontrak antara konsumén jeung suppliers.

Transformasi organisasi

Eroshkina Elena, Wakil Diréktur IT

Dina waktos karantina kajantenan, sareng kabutuhan timbul pikeun ningkatkeun laju pangembangan online sareng ngenalkeun jasa omnichannel, kami parantos dina prosés transformasi organisasi. 

Bagian tina struktur urang ditransferkeun ka dianggo dumasar kana prinsip sareng prakték pendekatan produk. Tim parantos dibentuk anu ayeuna tanggung jawab pikeun operasi sareng pamekaran unggal produk. Karyawan di tim sapertos ieu 100% kalibet sareng nyusun karyana nganggo Scrum atanapi Kanban, gumantung kana naon anu langkung dipikaresep pikeun aranjeunna, nyetél pipa penyebaran, ngalaksanakeun prakték téknis, prakték jaminan kualitas, sareng seueur deui.

Ku kabeneran, seuseueurna tim produk kami aya di daérah jasa online sareng omnichannel. Ieu ngamungkinkeun urang ngalih ka modeu kerja jauh dina waktos anu paling pondok (serius, sacara harfiah dina dua dinten) tanpa kaleungitan efisiensi. Prosés ngaropéa ngamungkinkeun urang pikeun gancang adaptasi kana kaayaan kerja anyar sareng ngajaga laju anu cukup luhur pikeun pangiriman fungsionalitas énggal.

Salaku tambahan, urang kedah nguatkeun tim anu aya dina wates bisnis online. Dina waktos éta janten écés yén urang ngan ukur tiasa ngalakukeun ieu nganggo sumber internal. Sareng sakitar 50 urang dina dua minggu ngarobih daérah dimana aranjeunna damel sateuacanna sareng aub dina ngerjakeun produk anu énggal pikeun aranjeunna. 

Ieu teu merlukeun sagala usaha manajemén husus, sabab babarengan jeung pangatur prosés urang sorangan, perbaikan teknis produk, sarta prakték jaminan kualitas, urang ngajarkeun tim urang pikeun timer ngatur - pikeun ngatur prosés produksi sorangan tanpa ngalibetkeun sumberdaya administrasi.

Kami tiasa museurkeun sumber daya manajemén urang persis dimana anu diperyogikeun dina waktos éta - dina koordinasi sareng bisnis: Naon anu penting pikeun klien kami ayeuna, fungsionalitas naon anu kedah dilaksanakeun heula, naon anu kedah dilakukeun pikeun ningkatkeun kamampuan throughput kami. pikeun nganteurkeun sarta prosés pesenan. Sadaya ieu sareng panutan anu jelas ngamungkinkeun salami periode ieu pikeun ngamuat aliran nilai produksi urang kalayan naon anu penting sareng diperyogikeun. 

Éta écés yén kalayan kerja jauh sareng parobihan anu luhur, nalika indikator bisnis gumantung kana partisipasi sadayana, anjeun moal tiasa ngan ukur ngandelkeun parasaan internal tina séri "Naha sadayana lancar sareng kami? Sumuhun, sigana alus." metrics obyektif tina prosés produksi diperlukeun. Kami ngagaduhan ieu, aranjeunna sayogi pikeun saha waé anu resep kana métrik tim produk. Anu mimiti, tim sorangan, bisnis, subkontraktor sareng manajemén.

Sakali unggal dua minggu, status dilaksanakeun kalawan unggal tim, dimana metrics dianalisis pikeun 10 menit, bottlenecks dina prosés produksi dicirikeun, sarta solusi gabungan dikembangkeun: naon anu bisa dipigawé pikeun ngaleungitkeun bottlenecks ieu. Di dieu anjeun tiasa langsung nyuhunkeun bantosan ti manajemén upami aya masalah anu diidentifikasi di luar zona pangaruh tim, atanapi kaahlian kolega anu parantos ngalaman masalah anu sami.

Nanging, urang ngartos yén pikeun ngagancangkeun sababaraha kali (sareng ieu mangrupikeun tujuan anu urang atur pikeun diri urang sorangan), urang masih kedah seueur diajar sareng ngalaksanakeunana dina padamelan sapopoé. Ayeuna kami neraskeun skala pendekatan produk urang ka tim sanés sareng produk énggal. Pikeun ngalakukeun ieu, urang kedah ngawasaan format énggal pikeun urang - sakola metodologi online.

Metodologi, jalma anu ngabantosan tim ngawangun prosés, ngadegkeun komunikasi, sareng ningkatkeun efisiensi kerja, dasarna mangrupikeun agén parobihan. Ayeuna, lulusan cohort munggaran urang damel sareng tim sareng ngabantosan aranjeunna janten suksés. 

Kuring nyangka yén kaayaan ayeuna muka kasempetan sareng prospek pikeun urang anu sigana urang sorangan henteu acan sadar. Tapi pangalaman sareng prakték anu urang kéngingkeun ayeuna negeskeun yén kami parantos milih jalan anu leres pikeun pangwangunan, kami moal sono kasempetan anyar ieu di hareup sareng bakal tiasa ngaréspon sacara efektif kana tantangan anu bakal disanghareupan ku Sportmaster.

papanggihan

Salami waktos anu sesah ieu, kami parantos ngarumuskeun prinsip-prinsip utama anu aya dina pamekaran parangkat lunak, anu, kuring pikir, bakal relevan pikeun unggal perusahaan anu ngurus ieu.

jelema. Ieu naon sagalana rests on. Karyawan kedah mikaresep padamelan sareng ngartos tujuan perusahaan sareng tujuan produk anu aranjeunna damel. Sareng, tangtosna, aranjeunna tiasa ngembangkeun sacara profésional. 

teknologi. Perusahaan kedah nyandak pendekatan anu dewasa pikeun damel sareng tumpukan téknologi sareng ngawangun kompeténsi dimana éta leres-leres diperyogikeun. Ieu hurung pisan basajan tur atra. Sarta mindeng pisan dipaliré.

Proses dina prosés. Penting pikeun leres ngatur karya tim produk sareng pusat kompeténsi, pikeun ngadegkeun interaksi sareng bisnis pikeun damel sareng éta salaku pasangan.

Sacara umum, éta lumayan seueur kumaha urang salamet. Tesis utama waktos urang dikonfirmasi sakali deui, ku klik resounding dina dahi

Sanaos anjeun bisnis offline anu ageung sareng seueur toko sareng sakumpulan kota dimana anjeun beroperasi, ngamekarkeun bisnis online anjeun. Ieu sanés ngan ukur saluran penjualan tambahan atanapi aplikasi anu saé dimana anjeun ogé tiasa mésér barang (sareng ogé kusabab pesaing ogé gaduh anu saé). Ieu sanés ban serep anu ngan ukur tiasa ngabantosan anjeun dina badai.

Ieu kabutuhan mutlak. Pikeun anu henteu ngan ukur kamampuan téknis sareng infrastruktur anjeun kedah disiapkeun, tapi ogé jalma sareng prosés anjeun. Barina ogé, anjeun tiasa gancang mésér mémori tambahan, spasi, nyebarkeun instansi anyar, jsb dina sababaraha jam. Tapi jalma sareng prosés kedah disiapkeun sateuacanna.

sumber: www.habr.com

Tambahkeun komentar