auditing of user activity through nosql database
TRANSCRIPT
Sadržaj
što smo imali, što smo htjeli dobiti i što smo dobili
kako sve to funkcionira
pogled izbliza
NoSQL baza
MongoDB prednosti i nedostaci
što dalje
linkovi
2
Što smo imali i kako je sve počelo
web logovi
aplikacijski logovi, system logovi
zapisi u relacijskim bazama
CA APM
alati za nadzor aplikacijskih servera
digitalni potpis transakcija
helpdesk
kako sve to povezati?
3
Što smo htjeli dobiti
nadzor korisničkih aktivnosti u aplikaciji, tko je radio, kada, u ime koga i što je točno radio
omogućiti ponovljivost transakcije, korak po korak ponoviti cjelokupan proces zadavanja, potpisivanja i izvršavanja naloga
pomoć u otkrivanju pogrešaka u aplikaciji kada se greška dogodila, za kojeg korisnika i klijenta se dogodila, sa kojim podacima se greška dogodila, te na koji način je to povezano sa ostalim sustavima za nadzor
4
Što smo dobili
sve sa prethodnog slajda
dobilo smo jedinstven zapis koji nam omogućuje da na jednom mjestu objedinimo i analiziramo sve podatke
mogućnosti mjerenja performansi prezentacijskog i servisnog sloja unutar aplikacije
pomoć pri otkrivanju i istraživanju potencijalnih prijevara te pokušaja prijevara
statističke informacije o korisnicima i načinu na koji korisnici koriste aplikaciju
5
Kako to sve funkcionira
Java dio sustava unutar web aplikacije skuplja, filtrira i obrađuje podatke te ih priprema za zapis u bazu podataka
podaci se skupljaju na razini HTTP request/response ciklusa, svaki request predstavlja jednu akciju korisnika u aplikaciji te jedan zapis u bazi podataka
podaci se spremaju u NoSql bazu kao niz međusobno povezanih dokumenata na razini jednog korisnika koji radi u ime jednog klijenta
jedan click (jedna akcija), jedan zapis, jedan NoSql dokument
6
Java servlet filter
početna i završna točka request/response ciklusa
prikupljanje podataka na razini request-a
zapisivanje podataka na kraju ciklusa u NoSql bazu
7
ThreadLocal varijable
variable na razini pojedinog thread-a u aplikaciji
sadrže podatke za vrijeme trajanja request-a
podaci se nadopunjuju za vrijeme request-a
varijable su dostupne iz bilo kojeg dijela web aplikacije
inicijalizacija prilikom ulaska u filter
clean up prilikom izlaska iz filtera
thread safe
weak reference na vrijednosti
8
Interceptori
mapiranje metoda servisnog i dao sloja
zapisivanje podataka o ulaznim parametrima
zapisivanje rezultata izvršavanja mapirane metode
zapisivanje exception na razini metode
9
Asinhroni zapis
WS work manager
thread pool aplikacijskog servera dostupan web aplikaciji
podaci se zapisuju u thread-u neovisnom o servlet container thread-u
10
NoSql baze podataka
nerelacijske baze podataka
drugačiji format podataka u bazi
motivirano različitim potrebama modernih aplikacija (horizontalno skaliranje, jednostavniji dizajn, brži dohvat podataka)
zapis i dohvat podataka su prilagođeni formatu podataka u bazi
dijele se prema modelu podataka na key/value (Riak,Redis), dokument (MongoDB), graf (Neo4J) baze itd.
11
Zašto NoSql
trebali smo jednostavan i fleksibilan način zapisa
zbog modela podataka nismo trebali relacije između podataka i transakcije prilikom zapisa podataka u bazu
htjeli smo rasteretiti Oracle instancu te svu raspoloživu procesorsku snagu ostaviti za poslovne potrebe
postigli smo veću brzinu zapisa
bilo nam je zanimljivo
12
MongoDB
dokument model podataka
kolekcije/dokumenti – tablice/retci
JavaScript query language
JSON/BSON format podataka
nema unaprijed definirane sheme podataka
horizontalna skalabilnost
Map/Reduce
Replikacija, Sharding
fire and forget
13
MongoDB prednosti i nedostaci
prednosti: – jednostavan za administriranje– dobra dokumentacija– pouzdan– JavaScript kao query jezik– indeksiranje
nedostaci– database administratori ne postoje– korisnici moraju učiti novi query jezik– potrebno je promijeniti mentalni model na nerelacijski, nije
pogodno za svaki poslovni slučaj
14
Što dalje
podaci: – 35000 korisnika– 400000 dokumenata dnevno, 20Kb dokument – 3TB podataka godišnje
podaci se mogu dodano skupljati prema potrebi
analiza podataka da bi se iz njih izvukle vrijedne informacije o korisnicima i njihovim navikama te načinu na koji koriste aplikaciju
17
LINKOVI
MongoDB - https://www.mongodb.org/
MongoVUE - http://www.mongovue.com/downloads/
ThreadLocal - https://plumbr.eu/blog/how-is-threadlocal-implemented
logstash - http://logstash.net/
splunk - http://www.splunk.com
19