Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Sustav dokumentacijske podrške u našoj banci se stalno razvija i skalira, a zahtjevi za brzinom i tolerancijom na greške samo rastu. U nekom je trenutku održavanje LMS-a bez učinkovitog centraliziranog nadzora postalo prerizično. Kako bismo osigurali poslovne procese u VTB-u i pojednostavili rad administratora, implementirali smo rješenje temeljeno na nizu otvorenih tehnologija. Uz njegovu pomoć možemo proaktivno reagirati na incidente, sprječavajući potencijalne probleme. Ispod presjeka je priča o našem iskustvu u korištenju besplatnog softvera za nadzor velikih poslovnih sustava.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Zašto nadzirati svoj sustav upravljanja dokumentima?

Od 2005. dokumentacijska podrška u VTB banci "upravlja" sustavom CompanyMedia. LMS zapošljava preko 60 tisuća korisnika koji mjesečno kreiraju više od milijun novih dokumenata. Naši poslužitelji moraju funkcionirati 24 sata dnevno: gotovo u svakom trenutku u sustavu je 2500–3000 ljudi koji su povezani u cijeloj zemlji, od Petropavlovsk-Kamchatskog do Kalinjingrada. Svaka sekunda rada LMS-a znači 10-15 promjena.

Kako bismo osigurali da sustav točno ispunjava svoje dodijeljene zadatke, postavili smo infrastrukturu otpornu na greške koristeći proxy poslužitelje, balansiranje zahtjeva, zaštitu informacija, pretraživanje cijelog teksta, integracijske rute i sigurnosno kopiranje. Za podršku i upravljanje projektom ove razmjere potrebni su golemi resursi. Administratori prate osnovne informacije o radu poslužitelja, opterećenju RAM-a, CPU vremenu, I/O podsustavu i tako dalje. Ali osim toga, potrebna je suptilnija analitika:

  • izračunavanje vremena utrošenog na izvođenje poslovnih scenarija;
  • praćenje dinamike performansi sustava i opterećenja na njemu;
  • traženje odstupanja u komponentama sustava od odobrenih nefunkcionalnih zahtjeva.

11 godina nakon uvođenja LMS-a, posebno se aktualiziralo pitanje proaktivnog odgovora na razne vrste grešaka. Uprava banke shvatila je da je rad bez monitora i konzole za život sustava igranje s vatrom: i najmanji kvar u poslovnom sustavu te razine mogao bi rezultirati milijunskim gubicima.

U 2016. godini započeli smo s uvođenjem alata za brzo prepoznavanje problema u radu LMS-a, uključujući praćenje parametara koji nas zanimaju u stvarnom vremenu. Prethodno je primijenjeni sustav nadzora implementiran i testiran u okviru infrastrukture tvrtke InterTrust.

Kako je sve počelo

Danas centralizirani sustav praćenja aplikacija VTB LMS-a, temeljen na softverskim proizvodima otvorenog koda, pomaže spriječiti većinu pogrešaka povezanih s protokom dokumenata, brzo i točno klasificirati probleme i brzo reagirati na sve incidente. Uključuje dva podsustava:

  • za praćenje informatičke infrastrukture servisa sustava;
  • pratiti pojavu grešaka u radu LMS-a.

Sve je počelo s jednom besplatnom aplikacijom za nadzor. Nakon što smo prošli nekoliko opcija, odlučili smo se za Zabbix - besplatni softver koji je izvorno napisan za bankarske usluge i opremu. Ovaj PHP web-bazirani sustav, koji može pohranjivati ​​podatke u MySQL, PostgreSQL, SQLite ili Oracle Database, savršeno je odgovarao našim potrebama.

Zabbix pokreće svoje agente na svakom poslužitelju i prikuplja informacije o metrikama od interesa u stvarnom vremenu u jednu bazu podataka. Pomoću aplikacije zgodno je prikupljati podatke o opterećenju procesora i RAM-a, korištenju mreže i ostalih komponenti, provjeravati dostupnost i odziv standardnih usluga (SMTP ili HTTP), pokretati vanjske programe te podržavati nadzor putem SNMP.

Nakon što smo postavili Zabbix, konfigurirali smo standardne hardverske metrike i isprva je to bilo dovoljno. Ali VTB SDO se stalno razvija i raste: u 2016. broj poslužitelja se značajno povećao, pojavili su se migracijski procesi, Moskovska banka, VTB Capital i VTB24 pridružili su se sustavu. Više nema dovoljno standardnih metrika, a Zabbix smo naučili da prati informacije o prisutnosti redova na svakom od volumena spojenih na poslužitelj (izvan okvira Zabbix odražava samo opći red čekanja na disku), kao i vrijeme koje je potrebno završiti određeni postupak.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Osim toga, opremili smo sustav s više triggera - uvjeta pod kojima se šalje obavijest administratoru (poruka u Telegramu, SMS na telefonski broj ili e-mail). Okidači se mogu konfigurirati za bilo koji skup parametara. Na primjer, možete odrediti određeni postotak slobodnog prostora na disku, a sustav će upozoriti administratora kada se dosegne navedeni prag ili će vas obavijestiti ako pozadinska procedura traje dulje nego obično.

Java povezivost i vizualizacija podataka

Značajno smo proširili raspon analiziranih podataka, ali to ubrzo nije bilo dovoljno za učinkovito praćenje. Iskoristivši činjenicu da je LMS tvrtke CompanyMedia Java aplikacija, povezali smo se s Java Virtual Machine putem JMX sučelja i mogli izravno uzeti Java metriku. I to ne samo standardni parametri vitalne aktivnosti Jave, kao što je intenzitet rada GC-a ili Heap potrošnja, već i specifični testovi koji se odnose izravno na izvršni aplikacijski kod.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

U 2017. godini, otprilike godinu dana nakon implementacije sustava nadzora, postalo je jasno da za normalan rad s kolosalnom količinom podataka prikupljenih u Zabbixu, nema dovoljno vizualizacije - složenih ekrana. Najbolje rješenje za ovaj problem ponovno je bio besplatni softver - Grafana, zgodna nadzorna ploča za metriku koja vam omogućuje agregiranje svih podataka na jednom zaslonu.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Grafana sučelje je interaktivno, podsjeća na OLAP sustav. Podsustav prikazuje podatke primljene od strane Zabbixa na jednom ekranu, predstavljajući informacije u obliku grafikona i dijagrama koje je lako analizirati. Administrator može jednostavno prilagoditi dijelove koji su mu potrebni.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Praćenje i preventivno otklanjanje grešaka u LMS sustavu

ELK softverska platforma otvorenog koda pomaže vam filtrirati i analizirati informacije primljene tijekom praćenja. Ovaj opensource proizvod sastoji se od tri moćna alata za prikupljanje, pohranu i analizu podataka: Elasticsearch, Logstash i Kibana. Implementacija ovog podsustava omogućuje, posebice, da se u realnom vremenu vidi koliko se grešaka dogodilo u sustavu, na kojim poslužiteljima i da li se te greške ponavljaju.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Sada administrator može otkriti problem u ranoj fazi, čak i prije nego što korisnik naiđe na njega. Takav proaktivni nadzor omogućuje vam da spriječite kvarove u sustavu pravovremenim uklanjanjem grešaka. Osim toga, možemo razumjeti kako se ponašanje sustava promijenilo nakon ažuriranja, kao i otkriti nove probleme ako se pojave.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Praćenje poslovanja

Uz osnovne funkcije praćenja potrošnje resursa, sustav ima mogućnost analize i kontrole poslovanja.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Praćenje ukupnog vremena izvršenja poslovnih operacija omogućuje prepoznavanje novih faktora i razumijevanje njihovog utjecaja na rad sustava.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Praćenje vremena izvršenja zahtjeva za svaku poslovnu uslugu omogućuje otkrivanje operacija koje odstupaju od norme.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Gornji snimak zaslona je primjer praćenja pozadinskog zadatka u smislu njegovog odstupanja od norme.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Popis kontroliranih zadataka u smislu njihove aktivnosti na određenom poslužitelju omogućuje vam prepoznavanje pogrešaka - uključujući dupliciranje izvršenja zadataka - na svim poslužiteljima.

Softver otvorenog koda za LMS: kako besplatni softver pomaže u administraciji kritičnih poslovnih sustava u VTB-u

Također se prate trendovi u vremenu izvršenja pozadinskih procedura.

Sustav raste, razvija se i pomaže u suočavanju s problemima

Implementacijom opisanog sustava značajno je pojednostavljeno praćenje rada LMS poslužitelja. Unatoč tome, s vremena na vrijeme pojavljuju se razne vrste sukoba koji utječu na brzinu protoka dokumenata i uzrokuju pritužbe korisnika. Tako smo shvatili da je potrebno kontrolirati i ponašanje same aplikacije, a ne samo poslužitelja.

Kako bi se riješio ovaj problem, putem API-ja je na sustav nadzora spojen balanser koji radi s klasterom aplikacijskih poslužitelja. Zahvaljujući tome, administrator može vidjeti koliko je vremena potrebno poslužitelju da odgovori na svaki zahtjev korisnika.

Podaci o vremenu odziva poslužitelja postali su dostupni za analizu, što je omogućilo povezivanje usporavanja LMS-a s procesima koji se odvijaju na poslužitelju. Konkretno, pojavila se zanimljiva situacija: poslužitelj radi sporo, iako u ovom trenutku nije opterećen. Analizirajući anomaliju, otkrili smo odstupanja u radu Garbage Collector Jave. Na kraju se pokazalo da je do ove situacije doveo neispravan rad ovog servisa. Preuzimanjem kontrole nad Garbage Collector Javom u potpunosti smo eliminirali problem.

Ovo je način na koji besplatni softver pomaže razvoju i rastu sustava za upravljanje dokumentima u bankarskoj industriji. Dotakli smo se samo glavnih pitanja vezanih uz sustav praćenja VTB SDO. Ako vas zanimaju detalji, pitajte u komentarima, rado ćemo podijeliti svoje iskustvo s vama.

Izvor: www.habr.com

Dodajte komentar