Mir iwwerwaachen Sportmaster - wéi a mat wat

Mir hu geduecht iwwer d'Schafe vun engem Iwwerwaachungssystem an der Etapp vun der Form vun Produktteams. Et gouf kloer datt eist Geschäft - Ausbeutung - net an dës Teams falen. Firwat?

De Fakt ass datt all eis Teams ronderëm individuell Informatiounssystemer, Mikroservicer a Fronten opgebaut sinn, sou datt d'Teams d'allgemeng Gesondheet vum ganze System als Ganzt net gesinn. Zum Beispill wëssen se vläicht net wéi e klengen Deel am déiwe Backend de Frontend beaflosst. Hiren Ëmfang vun Interesse ass limitéiert op d'Systemer mat deenen hire System integréiert ass. Wann eng Equipe a säi Service A bal keng Verbindung mam Service B hunn, dann ass esou en Service bal onsichtbar fir d'Equipe.

Mir iwwerwaachen Sportmaster - wéi a mat wat

Eist Team schafft ofwiesselnd mat Systemer déi ganz staark matenee integréiert sinn: et gi vill Verbindungen tëscht hinnen, dëst ass eng ganz grouss Infrastruktur. An d'Operatioun vum Online Store hänkt vun all dëse Systemer of (vun deenen mir iwwregens eng grouss Zuel hunn).

Also et stellt sech eraus datt eis Departement net zu enger Equipe gehéiert, mee e bëssen op der Säit läit. An dëser ganzer Geschicht ass eis Aufgab et ëmfaassend ze verstoen wéi Informatiounssystemer funktionnéieren, hir Funktionalitéit, Integratiounen, Software, Netzwierk, Hardware, a wéi dat alles matenee verbonnen ass.

D'Plattform op där eis Online Geschäfter funktionnéieren gesäit esou aus:

  • virun
  • Mëtt Büro
  • zréck Büro

Egal wéi vill mir gären hätten, et geschitt net datt all Systemer glat a flawless funktionnéieren. De Punkt, erëm, ass d'Zuel vun de Systemer an Integratiounen - mat eppes wéi eis sinn e puer Tëschefäll inévitabel, trotz der Qualitéit vum Test. Ausserdeem, souwuel an engem separaten System wéi och wat hir Integratioun ugeet. An Dir musst den Zoustand vun der ganzer Plattform iwwergräifend iwwerwaachen, an net nëmmen all eenzelnen Deel dovun.

Idealerweis sollt d'Plattform-breet Gesondheetsmonitoréierung automatiséiert ginn. A mir sinn op d'Iwwerwaachung komm als en inévitabelen Deel vun dësem Prozess. Am Ufank gouf et nëmme fir de Frontline-Deel gebaut, während Netzwierkspezialisten, Software- an Hardwareadministratoren hir eege Layer-by-Layer Iwwerwachungssystemer haten an nach ëmmer hunn. All dës Leit hunn d'Iwwerwaachung nëmmen op hirem eegenen Niveau gefollegt, och keen huet e verständlecht Verständnis.

Zum Beispill, wann eng virtuell Maschinn Crash, an de meeschte Fäll nëmmen den Administrateur verantwortlech fir d'Hardware an déi virtuell Maschinn weess doriwwer. An esou Fäll huet d'Frontline Team de ganz Fakt vum Applikatioun Crash gesinn, awer et huet keng Daten iwwer de Crash vun der virtueller Maschinn. An den Administrateur kann wësse wien de Client ass an eng graff Iddi hunn wat de Moment op dëser virtueller Maschinn leeft, virausgesat datt et eng Aart vu grousse Projet ass. Hie weess héchstwahrscheinlech net iwwer déi Kleng. Op alle Fall muss den Administrateur bei de Besëtzer goen a froen wat op dëser Maschinn war, wat muss restauréiert ginn a wat muss geännert ginn. A wann eppes wierklech eescht ausgebrach ass, hu si ugefaang a Kreeser ronderëm ze lafen - well keen de System als Ganzt gesinn huet.

Schlussendlech beaflossen esou ënnerschiddlech Geschichten de ganze Frontend, d'Benotzer an eis Kärgeschäft Funktioun - Online Verkaf. Well mir net Deel vun engem Team sinn, mee am Betrib vun all Ecommerce Uwendungen als Deel vun engem Online Buttek engagéiert sinn, hu mir d'Aufgab vun engem ëmfaassend Iwwerwachung System fir Ecommerce Plattform ze schafen.

System Struktur a Stack

Mir hunn ugefaang e puer Iwwerwaachungsschichten fir eis Systemer z'identifizéieren, an deenen mir Metriken musse sammelen. An dat alles huet misse kombinéiert ginn, wat mir an der éischter Etapp gemaach hunn. Elo op dëser Etapp finaliséieren mir déi héchst Qualitéit Sammlung vu Metriken iwwer all eis Schichten fir eng Korrelatioun ze bauen an ze verstoen wéi Systemer sech beaflossen.

De Mangel u ëmfaassend Iwwerwaachung an den initialen Etappe vum Start vun der Applikatioun (zënter mir ugefaang hunn et ze bauen wann déi meescht vun de Systemer an der Produktioun waren) huet zu der Tatsaach gefouert datt mir eng bedeitend technesch Schold haten fir d'Iwwerwaachung vun der ganzer Plattform opzestellen. Mir konnten eis net leeschte fir d'Iwwerwaachung fir een IS opzestellen an d'Iwwerwaachung dofir am Detail auszeschaffen, well de Rescht vun de Systemer fir eng Zäit ouni Iwwerwaachung gelooss ginn. Fir dëse Problem ze léisen, hu mir eng Lëscht vun den néidegste Metriken identifizéiert fir den Zoustand vum Informatiounssystem per Schicht ze bewäerten an hunn ugefaang et ëmzesetzen.

Dofir hu si decidéiert den Elefant an Deeler z'iessen.

Eise System besteet aus:

  • Hardware;
  • Betribssystem;
  • Software;
  • UI Deeler an der Iwwerwaachungsapplikatioun;
  • Business Metriken;
  • Integratioun Uwendungen;
  • Informatiounssécherheet;
  • Netzwierker;
  • Verkéier balancer.

Mir iwwerwaachen Sportmaster - wéi a mat wat

Am Zentrum vun dësem System ass d'Iwwerwaachung selwer. Fir allgemeng den Zoustand vum ganze System ze verstoen, musst Dir wësse wat mat Uwendungen op all dëse Schichten an iwwer de ganze Set vun Uwendungen geschitt.

Also, iwwer de Stack.

Mir iwwerwaachen Sportmaster - wéi a mat wat

Mir benotzen Open Source Software. Am Zentrum hu mir Zabbix, dee mir virun allem als Alarmsystem benotzen. Jidderee weess datt et ideal ass fir Infrastruktur Iwwerwaachung. Wat heescht dat? Genau déi niddereg-Niveau Metriken, datt all Firma, déi hiren eegene Rechenzentrum ënnerhält, huet (a Sportmaster huet seng eege Donnéeën Zentren) - Server Temperatur, Erënnerung Status, Razzia, Reseau Apparat Metriken.

Mir hunn Zabbix integréiert mam Telegram Messenger a Microsoft Teams, déi aktiv an Teams benotzt ginn. Zabbix deckt d'Schicht vum aktuellen Netzwierk, Hardware an e puer Software, awer et ass keng Panacea. Mir beräicheren dës Donnéeën vun e puer anere Servicer. Zum Beispill, um Hardwareniveau verbannen mir direkt iwwer API mat eisem Virtualiséierungssystem a sammelen Daten.

Wat soss. Zousätzlech zu Zabbix benotze mir Prometheus, wat eis erlaabt Metriken an enger dynamescher Ëmfeldapplikatioun ze iwwerwaachen. Dat ass, mir kënnen Applikatiounsmetriken iwwer en HTTP-Endpunkt kréien a keng Suergen iwwer wéi eng Metriken an et lueden a wéi eng net. Baséierend op dës Donnéeën kënnen analytesch Ufroe entwéckelt ginn.

Datequellen fir aner Schichten, zum Beispill Geschäftsmetriken, ginn an dräi Komponenten opgedeelt.

Als éischt sinn dës extern Geschäftssystemer, Google Analytics, mir sammelen Metriken aus Logbicher. Vun hinnen kréie mir Daten iwwer aktive Benotzer, Konversiounen an alles anescht am Zesummenhang mat dem Geschäft. Zweetens ass dëst en UI Iwwerwaachungssystem. Et soll méi am Detail beschriwwe ginn.

Eemol hu mir mat manuellen Testen ugefaang an et ass an automatesch Tester vu Funktionalitéit an Integratiounen gewuess. Vun dësem hu mir d'Iwwerwaachung gemaach, nëmmen d'Haaptfunktionalitéit hannerlooss an op Markéierer vertraut, déi sou stabil wéi méiglech sinn an net dacks mat der Zäit änneren.

Déi nei Teamstruktur bedeit datt all Applikatiounsaktivitéite limitéiert sinn op Produktteams, sou datt mir opgehalen hunn pure Testen ze maachen. Amplaz hu mir UI Iwwerwaachung vun den Tester gemaach, geschriwwen op Java, Selenium a Jenkins (benotzt als System fir Berichter ze starten an ze generéieren).

Mir haten vill Tester, awer um Enn hu mir decidéiert op d'Haaptstrooss ze goen, den Top-Level Metrik. A wa mir vill spezifesch Tester hunn, wäert et schwéier sinn d'Donnéeën um neiste Stand ze halen. All spéider Verëffentlechung wäert de ganze System wesentlech briechen, an alles wat mir maachen ass et ze fixéieren. Dofir hu mir eis op ganz fundamental Saachen konzentréiert, déi seelen änneren, a mir iwwerwaachen se nëmmen.

Schlussendlech, drëttens, ass d'Datequell e zentraliséierte Logsystem. Mir benotzen Elastic Stack fir Logbicher, an da kënne mir dës Donnéeën an eise Iwwerwaachungssystem fir Geschäftsmetriken zéien. Zousätzlech zu all deem hu mir eisen eegene Monitoring API Service, geschriwwen am Python, deen all Servicer iwwer API ufroen an Daten vun hinnen an Zabbix sammelt.

En aneren onverzichtbaren Attribut vun der Iwwerwaachung ass Visualiséierung. Eis baséiert op Grafana. Et ënnerscheet sech ënner anere Visualiséierungssystemer an datt et Iech erlaabt Metriken aus verschiddenen Datequellen um Dashboard ze visualiséieren. Mir kënnen Top-Level Metriken fir en Online Store sammelen, zum Beispill d'Zuel vun den Bestellungen déi an der leschter Stonn vum DBMS gemaach goufen, Performance Metriken fir den OS op deem dësen Online Store vun Zabbix leeft, a Metriken fir Fäll vun dëser Applikatioun vum Prometheus. An dat alles wäert op engem Dashboard sinn. Kloer an zougänglech.

Loosst mech iwwer Sécherheet notéieren - mir finaliséieren am Moment de System, dee mir spéider mam globalen Iwwerwaachungssystem integréieren. Menger Meenung no sinn d'Haaptproblemer, déi den E-Commerce am Beräich vun der Informatiounssécherheet konfrontéiert huet, mat Bots, Parser a Brute Force verbonnen. Mir mussen dat am Aa behalen, well dat alles kann e kriteschen Afloss op d'Operatioun vun eisen Applikatiounen an eise Ruff aus enger geschäftlecher Siicht. A mam gewielte Stack decken mir dës Aufgaben erfollegräich.

En anere wichtege Punkt ass datt d'Applikatiounsschicht vum Prometheus zesummegesat gëtt. Hie selwer ass och mat Zabbix integréiert. A mir hunn och Sitespeed, e Service deen eis erlaabt Parameteren ze gesinn wéi d'Laaschtgeschwindegkeet vun eiser Säit, Flaschenhals, Säit Rendering, Luede Scripten, etc., et ass och API integréiert. Also eis Metriken ginn am Zabbix gesammelt, an deementspriechend alarméiere mir och vun do aus. All Alarmer ginn am Moment un d'Haaptschéckmethoden geschéckt (fir elo ass et E-Mail an Telegramm, MS Teams ass och viru kuerzem ugeschloss). Et gi Pläng fir d'Alarm op esou e Staat ze upgraden datt Smart Bots als Service funktionnéieren an Iwwerwaachungsinformatioun un all interesséiert Produktteams ubidden.

Fir eis si Metriken net nëmme wichteg fir eenzel Informatiounssystemer, awer och allgemeng Metriken fir déi ganz Infrastruktur déi Uwendungen benotzen: Cluster vu kierperleche Serveren op deenen virtuelle Maschinnen lafen, Traffic Balancers, Network Load Balancers, d'Netz selwer, d'Benotzung vu Kommunikatiounskanäl. . Plus Metriken fir eis eegen Rechenzentren (mir hunn e puer vun hinnen an d'Infrastruktur ass zimlech grouss).

Mir iwwerwaachen Sportmaster - wéi a mat wat

D'Virdeeler vun eisem Iwwerwaachungssystem sinn datt mir mat senger Hëllef de Gesondheetszoustand vun alle Systemer gesinn an hiren Impakt openeen an op gemeinsame Ressourcen bewäerten. A schlussendlech erlaabt et eis an der Ressourceplanung ze engagéieren, wat och eis Verantwortung ass. Mir verwalten Serverressourcen - e Pool am E-Commerce, Kommissioun an Decommission nei Ausrüstung, kafen zousätzlech nei Ausrüstung, maachen en Audit vun der Ressourceverbrauch, etc. All Joer plangen Teams nei Projeten, entwéckelen hir Systemer, an et ass wichteg fir eis hinnen Ressourcen ze ginn.

A mat der Hëllef vu Metriken gesi mir den Trend am Ressourceverbrauch vun eisen Informatiounssystemer. A baséiert op hinnen kënne mir eppes plangen. Um Virtualiséierungsniveau sammele mir Daten a gesinn Informatioun iwwer d'verfügbare Betrag vu Ressourcen duerch Datenzenter. A schonn am Rechenzentrum kënnt Dir d'Recycling, d'tatsächlech Verdeelung an de Konsum vu Ressourcen gesinn. Ausserdeem, souwuel mat Standalone Serveren a virtuelle Maschinnen a Stärekéip vu kierperleche Serveren, op deenen all dës virtuell Maschinnen kräfteg spannen.

Perspektiven

Elo hu mer de Kär vum System als Ganzt prett, awer et sinn nach vill Saachen déi nach musse geschafft ginn. Op e Minimum ass dëst eng Informatiounssécherheetsschicht, awer et ass och wichteg d'Netz z'erreechen, Alarm z'entwéckelen an d'Fro vun der Korrelatioun ze léisen. Mir hu vill Schichten a Systemer, an op all Layer ginn et vill méi Metriken. Et stellt sech eraus als Matryoshka zum Grad vun enger Matryoshka.

Eis Aufgab ass schlussendlech déi richteg Alarmer ze maachen. Zum Beispill, wann et e Problem mat der Hardware, erëm, mat enger virtueller Maschinn, an et war eng wichteg Applikatioun, an de Service war net an all Manéier gedroe. Mir fannen eraus datt déi virtuell Maschinn gestuerwen ass. Da wäerten d'Geschäftsmetriken Iech alarméieren: d'Benotzer sinn iergendwou verschwonnen, et gëtt keng Konversioun, d'UI an der Interface ass net verfügbar, Software a Servicer sinn och gestuerwen.

An dëser Situatioun kréie mir Spam vun Alarmer, an dëst passt net méi an d'Format vun engem richtegen Iwwerwaachungssystem. D'Fro vun der Korrelatioun stellt sech. Dofir, am Idealfall, soll eise Iwwerwaachungssystem soen: "Jongen, Är kierperlech Maschinn ass gestuerwen, a mat dëser Applikatioun an dës Metriken," mat der Hëllef vun enger Alarm, anstatt eis rasend mat honnert Alarmer ze bombardéieren. Et sollt d'Haapt Saach berichten - d'Ursaach, déi hëlleft de Problem séier ze eliminéieren wéinst senger Lokalisatioun.

Eis Notifikatiounssystem an Alarmveraarbechtung ass ronderëm e 24-Stonnen Hotline Service opgebaut. All Alarmer, déi als Must-Have ugesi ginn an an der Checklëscht abegraff sinn, ginn dohinner geschéckt. All Alarm muss eng Beschreiwung hunn: wat geschitt ass, wat et eigentlech heescht, wat et beaflosst. An och e Link op den Dashboard an Instruktioune fir wat an dësem Fall ze maachen.

Dëst ass alles iwwer d'Ufuerderunge fir eng Alarm ze bauen. Da kann d'Situatioun sech an zwou Richtungen entwéckelen - entweder et gëtt e Problem a muss geléist ginn, oder et gouf e Feeler am Iwwerwaachungssystem. Awer op alle Fall musst Dir goen an et erausfannen.

Am Duerchschnëtt kréie mir elo ongeféier honnert Alarmer pro Dag, wann Dir berécksiichtegt datt d'Korrelatioun vun den Alarmer nach net richteg konfiguréiert ass. A wa mir technesch Aarbechte musse maachen, a mir zwéngen eppes auszeschalten, geet hir Zuel wesentlech erop.

Zousätzlech fir d'Systemer ze iwwerwaachen déi mir bedreiwen a Metriken sammelen déi op eiser Säit als wichteg ugesi ginn, erlaabt d'Iwwerwaachungssystem eis Daten fir Produktteams ze sammelen. Si kënnen d'Zesummesetzung vun de Metriken an den Informatiounssystemer beaflossen, déi mir iwwerwaachen.

Eise Kolleg ka kommen a froen e puer Metrik derbäi ze ginn, déi fir eis an d'Team nëtzlech sinn. Oder, zum Beispill, d'Team huet vläicht net genuch vun de Basis Metriken déi mir hunn; si mussen e puer spezifesch verfollegen. Zu Grafana kreéiere mir e Raum fir all Team a ginn Adminrechter. Och wann e Team Dashboards brauch, awer se selwer kënnen net / wëssen net wéi et ze maachen, mir hëllefen hinnen.

Well mir ausserhalb vum Floss vun der Wäertschafung vun der Équipe sinn, hir Verëffentlechungen a Planung, komme mir lues a lues zur Conclusioun datt Verëffentlechunge vun alle Systemer nahtlos sinn a kënnen all Dag ouni Koordinatioun mat eis ausgerullt ginn. An et ass wichteg fir eis dës Verëffentlechungen ze iwwerwaachen, well se potenziell d'Operatioun vun der Applikatioun beaflossen an eppes briechen, an dëst ass kritesch. Fir Verëffentlechungen ze managen, benotze mir Bamboo, vu wou mir Daten iwwer API kréien a kënne gesinn wéi eng Verëffentlechungen a wéi enge Informatiounssystemer an hire Status verëffentlecht goufen. An dat Wichtegst ass zu wéi enger Zäit. Mir iwwerlageren Verëffentlechungsmarker op den Haaptkriteschen Metriken, wat visuell ganz indikativ ass am Fall vu Probleemer.

Op dës Manéier kënne mir d'Korrelatioun tëscht neie Verëffentlechungen an opkomende Probleemer gesinn. D'Haaptidee ass ze verstoen wéi de System an all Schichten funktionnéiert, de Problem séier lokaliséieren an et grad esou séier fixéieren. No allem geschitt et dacks datt dat wat am meeschten Zäit brauch net de Problem ze léisen, mee no der Ursaach ze sichen.

An an deem Beräich wëlle mir an Zukunft op Proaktivitéit konzentréieren. Idealfall, ech wéilt gären am Viraus iwwer e Problem wëssen, an net no der Tatsaach, fir datt ech et éischter verhënneren wéi léisen. Heiansdo kommen falsch Alarmer vum Iwwerwaachungssystem op, souwuel duerch mënschleche Feeler wéi och duerch Ännerungen an der Applikatioun.A mir schaffen drun, debuggen et a probéieren d'Benotzer déi et bei eis benotzen iwwer dëst virun all Manipulatioun vum Iwwerwaachungssystem ze warnen. , oder maachen dës Aktivitéiten an der technescher Fënster.

Also, de System gouf lancéiert an huet zënter dem Ufank vum Fréijoer erfollegräich geschafft ... a weist ganz real Beneficer. Natierlech ass dëst net seng lescht Versioun; mir wäerte vill méi nëtzlech Funktiounen aféieren. Awer de Moment, mat sou villen Integratiounen an Uwendungen, ass d'Iwwerwaachungsautomatiséierung wierklech onvermeidlech.

Wann Dir och grouss Projete mat enger erheblecher Unzuel vun Integratiounen iwwerwaacht, schreift an de Kommentarer wéi eng Sëlwerkugel Dir fir dëst fonnt hutt.

Source: will.com

Setzt e Commentaire