Wat huet eis gehollef séier un den Online Handel an den neie Konditiounen unzepassen

Hallo!

Mäin Numm ass Mikhail, ech sinn den Adjoint Direkter vun IT bei der Sportmaster Firma. Ech wëll d'Geschicht deelen wéi mir mat den Erausfuerderunge gehandelt hunn, déi während der Pandemie entstane sinn.

An den éischten Deeg vun den neie Realitéiten ass de gewéinleche Offline-Handelsformat vum Sportmaster gefruer, an d'Laascht op eisem Online-Kanal, virun allem wat d'Liwwerung un d'Adress vum Client ugeet, ass 10 Mol eropgaang. An nëmmen e puer Wochen hu mir e giganteschen Offline-Geschäft an en Online transforméiert an de Service un d'Bedierfnesser vun eise Clienten ugepasst.

Am Fong, wat am Wesentlechen eis Säit Operatioun war, gouf eise Kärgeschäft. D'Wichtegkeet vun all Online Bestellung ass extrem eropgaang. Et war néideg fir all Rubel ze retten, deen de Client an d'Firma bruecht huet. 

Wat huet eis gehollef séier un den Online Handel an den neie Konditiounen unzepassen

Fir séier op Ufroe vun de Clienten ze reagéieren, hu mir en zousätzleche Kontaktzentrum am Haaptbüro vun der Firma opgemaach a kënnen elo ongeféier 285 Tausend Uriff pro Woch kréien. Zur selwechter Zäit hu mir 270 Geschäfter an en neit kontaktlost a séchert Betribsformat geplënnert, wat d'Clienten erlaabt Bestellungen a Mataarbechter ze kréien fir hir Aarbecht z'erhalen.

Wärend dem Transformatiounsprozess hu mir zwee Haaptproblemer begéint. Als éischt ass d'Laascht op eis Online Ressourcen wesentlech eropgaang (Sergey wäert Iech soen wéi mir dëst behandelt hunn). Zweetens ass de Flux vu seltenen (Pre-COVID) Operatiounen vill Mol eropgaang, wat am Tour eng grouss Quantitéit u séier Automatiséierung erfuerdert. Fir dëse Problem ze léisen, hu mir séier Ressourcen aus Gebidder ze transferéieren, déi virdrun d'Haaptgrënn waren. D'Elena wäert Iech soen wéi mir dëst behandelt hunn.

Operatioun vun online Servicer

Kolesnikov Sergey, responsabel fir de Fonctionnement vun der online Buttek an microservices

Vun deem Moment un, datt eis Geschäftsgeschäfter ugefaang hunn de Besucher zouzemaachen, hu mir ugefaang eng Erhéijung vun de Metriken opzehuelen wéi d'Zuel vun de Benotzer, d'Zuel vun de Bestellungen an eiser Applikatioun an d'Zuel vun den Ufroen un Uwendungen. 

Wat huet eis gehollef séier un den Online Handel an den neie Konditiounen unzepassenZuel vun de Bestellungen vum 18. Mäerz bis den 31. MäerzWat huet eis gehollef séier un den Online Handel an den neie Konditiounen unzepassenZuel vun Demanden un online bezuelt microservicesWat huet eis gehollef séier un den Online Handel an den neie Konditiounen unzepassenZuel vun Bestellungen op der Websäit gemaach

An der éischter Grafik gesi mir datt d'Erhéijung ongeféier 14 Mol war, an der zweeter - 4 Mol. Mir betruechten d'Äntwertzäit Metrik vun eisen Uwendungen als déi indikativst. 

Wat huet eis gehollef séier un den Online Handel an den neie Konditiounen unzepassen

An dëser Grafik gesi mir d'Äntwert vu Fronten an Uwendungen, a fir eis selwer hu mir festgestallt datt mir kee Wuesstum als solch gemierkt hunn.

Dat läit virun allem dorunner, datt mir Enn 2019 mat de Virbereedungsaarbechten ugefaangen hunn. Elo sinn eis Servicer reservéiert, Feeler Toleranz ass gesuergt um Niveau vu kierperleche Serveren, Virtualiséierungssystemer, Dockers a Servicer an hinnen. Zur selwechter Zäit erlaabt d'Kapazitéit vun eise Serverressourcen eis verschidde Lasten ze widderstoen.

Den Haaptinstrument dat eis an dëser ganzer Geschicht gehollef huet war eisen Iwwerwaachungssystem. Richteg, bis viru kuerzem hu mir keen eenzege System deen eis erlaabt Metriken op all Schichten ze sammelen, vum Niveau vun der kierperlecher Ausrüstung an der Hardware bis zum Niveau vun de Business Metriken. 

Formell gouf et Iwwerwaachung an der Firma, awer als Regel ass et verspreet a war am Beräich vun der Verantwortung vu spezifesche Departementer. Tatsächlech, wann en Tëschefall geschitt ass, hu mir bal ni e gemeinsame Verständnis vun deem wat genee geschitt ass, et gouf keng Kommunikatioun, an dacks huet dat dozou gefouert datt et a Kreeser gelaf ass fir de Problem ze fannen an ze isoléieren sou datt et konnt fixéiert ginn.

Irgendwann hu mir geduecht an décidéiert datt mir genuch haten dëst auszehalen - mir brauche en vereenegt System fir dat ganzt Bild voll ze gesinn. D'Haapttechnologien déi an eisem Stack abegraff sinn Zabbix als Alarm- a Metrik-Späicherzenter, Prometheus fir Applikatiounsmetriken ze sammelen an ze späicheren, Stack ELK fir Daten aus dem ganzen Iwwerwaachungssystem ze protokolléieren an ze späicheren, souwéi Grafana fir Visualiséierung, Swagger, Docker an aner nëtzlech a Saachen déi Iech vertraut sinn.

Zur selwechter Zäit benotze mir net nëmmen Technologien déi um Maart verfügbar sinn, mee entwéckelen och e puer vun eisen eegenen. Zum Beispill maache mir Servicer fir Systemer mateneen z'integréieren, dat heescht eng Aart API fir Metriken ze sammelen. Plus mir schaffen un eisen eegene Iwwerwaachungssystemer - um Niveau vun de Geschäftsmetriken benotze mir UI Tester. An och e Bot am Telegram fir Teams z'informéieren.

Mir probéieren och d'Iwwerwaachungssystem fir Teams zougänglech ze maachen, sou datt se onofhängeg mat hire Metriken späicheren a schaffen, och d'Alarme fir e puer schmuel Metriken opzestellen, déi net wäit benotzt ginn. 

Am ganze System striewe mir fir Proaktivitéit a Lokalisatioun vun Tëschefäll esou séier wéi méiglech. Zousätzlech ass d'Zuel vun eise Mikroservicer a Systemer zënter kuerzem wesentlech gewuess, an d'Zuel vun den Integratiounen ass deementspriechend gewuess. An als Deel vun der Optimisatioun vum Prozess vun der Diagnostik vun Tëschefäll um Integratiounsniveau, entwéckelen mir e System, deen Iech erlaabt Cross-System Kontrollen ze maachen an d'Resultat ze weisen, wat Iech erlaabt d'Haaptprobleemer ze fannen, déi mat Importer an Interaktioun vu Systemer verbonne sinn. jiddereen. 

Natierlech hu mir nach Plaz fir ze wuessen an ze entwéckelen a punkto Betribssystemer, a mir schaffen aktiv un dësem. Dir kënnt méi iwwer eise Iwwerwaachungssystem liesen hei

Technesch Tester 

Orlov Sergey, Chef vum Kompetenzzenter fir Web a mobil Entwécklung

Zënter de kierperleche Buttekschließungen ugefaang hunn, hu mir verschidden Erausfuerderunge konfrontéiert aus enger Entwécklungsperspektiv. Éischtens, d'Laaschtschlag als solch. Et ass kloer datt wann net adequat Moossnamen geholl ginn, wann eng héich Laascht op de System applizéiert gëtt, kann et zu engem Kürbis mat engem traureg Knall ginn, oder d'Leeschtung komplett ofbauen, oder souguer seng Funktionalitéit verléieren.

Den zweeten Aspekt, e bësse manner offensichtlech, ass datt de System ënner héijer Belaaschtung ganz séier muss geännert ginn, sech un d'Verännerunge vun de Geschäftsprozesser upassen. Heiansdo e puer Mol am Dag. Vill Firmen hunn eng Regel datt wann et vill Marketingaktivitéit ass, et net néideg ass fir Ännerunge vum System ze maachen. Iwwerhaapt kee, loosst et funktionnéieren soulaang et funktionnéiert.

A mir haten am Fong en endlosen Black Friday, während deem et néideg war de System z'änneren. An all Feeler, Problem oder Feeler am System wier ganz deier fir d'Geschäft.

Wann Dir no vir kuckt, wäert ech soen datt mir et fäerdeg bruecht hunn dës Tester ze bewältegen, all Systemer hunn d'Laascht widderstoen, liicht skaléiert, a mir hu keng global technesch Feeler erlieft.

Et gi véier Piliere, op deenen d'Fäegkeet vum System fir héich Iwwerschwemmungslasten ze widderstoen. Déi éischt vun hinnen ass Iwwerwaachung, iwwer déi Dir just uewen gelies hutt. Ouni en agebaute Iwwerwaachungssystem ass et bal onméiglech System Flaschenhals ze fannen. E gudde Iwwerwaachungssystem ass wéi doheem Kleeder et soll bequem an op Iech ugepasst sinn.

Den zweeten Aspekt ass Testen. Mir huelen dëse Punkt ganz eescht: mir schreiwen klassesch Unitéiten, Integratioun Tester, Laascht Tester a vill anerer fir all System. Mir schreiwen och eng Teststrategie, a versichen gläichzäiteg den Testniveau ze erhéijen bis datt mir keng manuell Kontrolle méi brauchen.

Déi drëtt Pilier ass CI / CD Pipeline. D'Prozesser fir eng Applikatioun ze bauen, ze testen an z'installéieren solle sou vill wéi méiglech automatiséiert ginn, et sollt keng manuell Interventioun sinn. D'Thema CI/CD Pipeline ass zimlech déif, an ech wäert et nëmme kuerz beréieren. Et ass nëmme wäert ze ernimmen datt mir eng CI / CD Pipeline Checklëscht hunn, déi all Produktteam mat der Hëllef vu Kompetenzzentren duerchgeet.

Wat huet eis gehollef séier un den Online Handel an den neie Konditiounen unzepassenAn hei ass d'Checklëscht

Op dës Manéier gi vill Ziler erreecht. Dëst ass API Versionéierung a Feature Toggle fir de Verëffentlechungszuch ze vermeiden, an d'Ofdeckung vu verschiddenen Tester op esou engem Niveau z'erreechen datt d'Test voll automatiséiert ass, d'Deployementer nahtlos sinn, asw.

Déi véiert Pilier sinn architektonesch Prinzipien an technesch Léisungen. Mir kënne laang iwwer d'Architektur schwätzen, awer ech wëll e puer Prinzipien ënnersträichen, op déi ech gären konzentréieren.

Als éischt musst Dir spezialiséiert Tools fir spezifesch Aufgaben wielen. Jo, et kléngt selbstverständlech, an et ass kloer datt d'Nägel mat engem Hammer angedréckt ginn, an d'Handgelenk mat spezielle Schrauendreiwer ofgebaut ginn. Awer an eisem Alter streiden vill Tools fir d'Universaliséierung fir de maximale Segment vun de Benotzer ze decken: Datenbanken, Cache, Kaderen an de Rescht. Zum Beispill, wann Dir d'MongoDB Datebank hëlt, funktionnéiert se mat Multi-Dokument Transaktiounen, an d'Oracle Datebank funktionnéiert mat json. An et géif schéngen datt alles fir alles benotzt ka ginn. Awer wa mir fir Produktivitéit stinn, da musse mir d'Stäerkten a Schwächten vun all Tool kloer verstoen an déi benotze fir eis Klass vun Aufgaben. 

Zweetens, wann Dir Systemer designt, muss all Erhéijung vun der Komplexitéit gerechtfäerdegt ginn. Mir mussen dat stänneg am Kapp halen, de Prinzip vun der niddereger Kupplung ass jidderee bekannt. Ech mengen, et soll um Niveau vun engem spezifesche Service, an um Niveau vum ganze System, an um Niveau vun der architektonescher Landschaft applizéiert ginn. D'Fäegkeet fir all Systemkomponent laanscht de Laaschtwee horizontal ze skaléieren ass och wichteg. Wann Dir dës Fäegkeet hutt, wäert d'Skaléierung net schwéier sinn.

Apropos technesch Léisungen, hu mir Produktteams gefrot fir e frësche Set vu Empfehlungen, Iddien a Léisungen virzebereeden, déi se als Virbereedung op déi nächst Welle vun der Aarbechtslaascht ëmgesat hunn.

Keshi

Et ass noutwendeg fir bewosst d'Wiel vu lokalen a verdeelte Caches unzegoen. Heiansdo mécht et Sënn fir béid am selwechte System ze benotzen Zum Beispill hu mir Systemer an deenen e puer vun den Daten am Wesentlechen e Vitrine-Cache sinn, dat heescht, d'Quell vun den Updates ass hannert dem System selwer, an d'Systemer änneren net. dës Donnéeën. Fir dës Approche benotze mir lokal Kaffi Cache. 

An et gëtt Daten déi de System aktiv während der Operatioun ännert, an hei benotze mir schonn e verdeelt Cache mat Hazelcast. Dës Approche erlaabt eis d'Virdeeler vun engem verdeelt Cache ze benotzen wou se wierklech gebraucht ginn, an d'Servicekäschte vun zirkuléierend Hazelcast Clusterdaten minimiséieren wou mir ouni et kënne maachen. Mir hu vill iwwer Cache geschriwwen. hei и hei.

Zousätzlech huet d'Ännerung vum Serializer op Kryo am Hazelcast eis e gudde Boost ginn. An den Iwwergank vu ReplicatedMap op IMap + Near Cache am Hazelcast erlaabt eis d'Bewegung vun Daten iwwer de Cluster ze minimiséieren. 

E klenge Rot: am Fall vun der Mass-Cache-Invalidatioun ass d'Taktik fir den zweeten Cache opzewiermen an dann dorop ze wiesselen heiansdo applicabel. Et géif schéngen datt mir mat dëser Approche duebel Erënnerung Konsum kréien soll, mä an der Praxis, an deene Systemer wou dëst praktizéiert gouf, Erënnerung Konsum ofgeholl.

Reaktiv Stack

Mir benotzen de reaktive Stack an zimlech enger grousser Zuel vu Systemer. An eisem Fall ass dëst Webflux oder Kotlin mat Coroutinen. De reaktive Stack ass besonnesch gutt wou mir lues Input-Output Operatiounen erwaarden. Zum Beispill rifft op lues Servicer, schafft mam Dateiesystem oder Späichersystemer.

De wichtegste Prinzip ass d'Blockéierung vun Uriff ze vermeiden. Reaktiv Kaderen hunn eng kleng Unzuel vu Live Service thread ënner der Hood. Wa mir eis suergfälteg erlaben en direkten Blockéierungsopruff ze maachen, sou wéi e JDBC Chauffer Uruff, wäert de System einfach ophalen. 

Probéiert Feeler an Är eege Runtime Ausnam ze maachen. Den eigentleche Floss vun der Ausféierung vum Programm verännert sech op reaktiv Kaderen, an d'Ausféierung vum Code gëtt net-linear. Als Resultat ass et ganz schwéier Problemer mat Stackspuren ze diagnostizéieren. An d'Léisung hei wier kloer, objektiv Runtime Ausnahmen fir all Feeler ze kreéieren.

Elastikerzuch

Wann Dir Elasticsearch benotzt, wielt net onbenotzt Daten. Dëst ass am Prinzip och ganz einfach Berodung, awer meeschtens ass dat wat vergiess gëtt. Wann Dir méi wéi 10 Tausend Opzeechnunge gläichzäiteg auswielen musst, musst Dir Scroll benotzen. Fir eng Analogie ze benotzen, ass et e bësse wéi e Cursor an enger relationaler Datebank. 

Benotzt kee Postfilter ausser wann et néideg ass. Mat grousser Daten an der Haaptprobe lued dës Operatioun d'Datebank staark. 

Benotzt Bulk Operatiounen wou zoutreffend.

API

Wann Dir eng API designt, enthält Ufuerderunge fir iwwerdroen Donnéeën ze minimiséieren. Dëst ass virun allem wouer am Zesummenhang mat der Front: et ass op dëser Kräizung datt mir iwwer d'Kanäl vun eise Datenzenteren erausgoen a scho schaffen um Kanal deen eis mam Client verbënnt. Wann et de geringste Problem huet, verursaacht ze vill Traffic eng negativ Benotzererfarung.

A schlussendlech, geheien net eng ganz Rëtsch vun Donnéeën eraus, ginn kloer iwwert de Kontrakt tëscht Konsumenten a Fournisseuren.

Organisatoresch Transformatioun

Eroshkina Elena, Adjoint Direkter fir IT

Am Moment wou d'Quarantän geschitt ass, an de Besoin entstanen ass den Tempo vun der Online Entwécklung staark ze erhéijen an Omnichannel Servicer aféieren, ware mir schonn am Prozess vun der organisatorescher Transformatioun. 

En Deel vun eiser Struktur gouf iwwerginn fir ze schaffen no de Prinzipien a Praktiken vun der Produkt Approche. Teams goufen geformt, déi elo verantwortlech sinn fir d'Operatioun an d'Entwécklung vun all Produkt. D'Employéeën an esou Teams sinn 100% involvéiert a strukturéieren hir Aarbecht mat Scrum oder Kanban, ofhängeg vun deem wat se léiwer ass, eng Deployment Pipeline opzestellen, technesch Praktiken ëmzesetzen, Qualitéitssécherungspraktiken a vill méi.

Mam Gléck waren de gréissten Deel vun eise Produktteams am Beräich vun Online an Omnichannel Servicer. Dëst erlaabt eis op de Fernaarbechtsmodus an der kuerzer Zäit ze wiesselen (eescht, wuertwiertlech an zwee Deeg) ouni Effizienzverloscht. De personaliséierte Prozess erlaabt eis séier un nei Aarbechtsbedingunge z'adaptéieren an e relativ héije Tempo vun der Liwwerung vun neier Funktionalitéit z'erhalen.

Zousätzlech hu mir e Besoin fir déi Teams ze stäerken déi op der Grenz vum Online-Geschäft sinn. Dee Moment gouf kloer, datt mir dat nëmme mat internen Ressourcen maache kënnen. A ronn 50 Leit hunn an zwou Wochen d'Gebitt geännert, wou se virdru geschafft hunn, an hu sech un engem Produit bedeelegt, dee fir si nei war. 

Dëst erfuerdert keng speziell Gestiounsefforten, well zesumme mat der Organisatioun vun eisem eegene Prozess, der technescher Verbesserung vum Produkt, a Qualitéitssécherungspraktiken, léiere mir eis Teams selwer ze organiséieren - hiren eegene Produktiounsprozess ze managen ouni administrativ Ressourcen involvéieren.

Mir konnten eis Gestiounsressourcen genau konzentréieren wou et dee Moment gebraucht gouf - op d'Koordinatioun mam Geschäft: Wat ass wichteg fir eise Client elo, wéi eng Funktionalitéit soll als éischt ëmgesat ginn, wat muss gemaach ginn fir eis Duerchgangsfäegkeet ze erhéijen Bestellungen ze liwweren an ze veraarbechten. All dëst an e klore Virbild hunn et an dëser Period méiglech gemaach fir eis Produktiounswäertstroum mat deem wat wierklech wichteg an néideg ass ze lueden. 

Et ass kloer datt mat Fernaarbecht an engem héijen Tempo vun der Verännerung, wann d'Geschäftsindikatoren op jidderengem seng Participatioun ofhänken, Dir net nëmmen op intern Gefiller aus der Serie vertrauen "Gitt alles gutt mat eis? Jo, et schéngt gutt." Objektiv Metriken vum Produktiounsprozess sinn néideg. Mir hunn dës, si si verfügbar fir jiddereen deen un de Metriken vun Produktteams interesséiert ass. Als éischt d'Team selwer, d'Geschäft, d'Ënnerkontrakter an d'Gestioun.

Eemol all zwou Woche gëtt mat all Team e Status ofgehalen, wou Metriken fir 10 Minutten analyséiert ginn, Flaschenhalsen am Produktiounsprozess identifizéiert ginn an eng gemeinsam Léisung entwéckelt gëtt: wat kann gemaach ginn fir dës Flaschenhals ze eliminéieren. Hei kënnt Dir direkt Hëllef vun der Gestioun froen, wann e identifizéierte Problem ausserhalb vun der Aflosszone vun den Teams ass, oder d'Expertise vu Kollegen, déi vläicht schonn en ähnleche Problem begéint hunn.

Wéi och ëmmer, mir verstinn, datt fir e puer Mol ze beschleunegen (an dat ass genau d'Zil, déi mir eis gesat hunn), mir mussen nach vill léieren an et an eiser alldeeglecher Aarbecht ëmsetzen. De Moment si mir weider fir eis Produkt Approche fir aner Teams an nei Produkter ze skaléieren. Fir dëst ze maachen, hu mir en neit Format fir eis misse beherrschen - eng Online Schoul vu Methodologen.

Methodologen, Leit déi Teams hëllefen e Prozess opzebauen, Kommunikatiounen z'etabléieren an d'Aarbechtseffizienz ze verbesseren, si wesentlech Agente vun der Verännerung. De Moment schaffen Graduéierter vun eiser éischter Kohort mat Teams an hëllefen hinnen erfollegräich ze ginn. 

Ech mengen, déi aktuell Situatioun mécht eis Chancen a Perspektiven op, vun deenen mir vläicht selwer nach net ganz bewosst sinn. Awer d'Erfahrung an d'Praxis, déi mir elo sammelen, bestätegt datt mir dee richtege Wee vun der Entwécklung gewielt hunn, mir wäerten dës nei Méiglechkeeten an Zukunft net verpassen a kënne grad esou effektiv op d'Erausfuerderunge reagéieren, déi de Sportmaster wäert stellen.

Conclusiounen

An dëser schwiereger Zäit hu mir d'Haaptprinzipien formuléiert, op deenen d'Softwareentwécklung baséiert, déi, mengen ech, relevant sinn fir all Firma, déi sech domat beschäftegt.

Leit. Dëst ass wat alles hänkt. D'Mataarbechter mussen hir Aarbecht genéissen an d'Ziler vun der Firma verstoen an d'Ziler vun de Produkter un deenen se schaffen. An natierlech kéinte si sech professionell entwéckelen. 

Technologie. Et ass néideg fir d'Firma eng reife Approche ze huelen fir mat sengem Technologiestack ze schaffen a Kompetenzen ze bauen wou et wierklech gebraucht gëtt. Et kléngt ganz einfach an offensichtlech. A ganz dacks ignoréiert.

D'Prozesser. Et ass wichteg d'Aarbecht vu Produktteams a Kompetenzzentren richteg z'organiséieren, Interaktioun mam Geschäft z'etabléieren fir domat als Partner ze schaffen.

Am Allgemengen, dat ass zimlech wéi mir iwwerlieft hunn. D'Haaptthes vun eiser Zäit gouf nach eng Kéier bestätegt, mat engem kléngen Klick op d'Stir

Och wann Dir e riesegt offline Geschäft sidd mat ville Geschäfter an enger Rëtsch Stied wou Dir operéiert, entwéckelt Ären Online Geschäft. Dëst ass net nëmmen en zousätzleche Verkafskanal oder eng schéi Applikatioun duerch déi Dir och eppes ka kafen (an och well d'Konkurrenten och schéin hunn). Dëst ass net e just am Fall Ersatzreifen fir Iech ze hëllefen de Stuerm ze widderstoen.

Dëst ass eng absolut Noutwennegkeet. Fir déi net nëmmen Är technesch Fäegkeeten an Infrastruktur musse virbereet ginn, awer och Är Leit a Prozesser. No all, kënnt Dir séier zousätzlech Erënnerung kafen, Plaz, nei Instanzen ofsetzen, etc. an e puer Stonnen. Mä d'Leit a Prozesser mussen am Viraus op dat virbereet ginn.

Source: will.com

Setzt e Commentaire