Aneb funguje to nebo ne? Jak můžeme (a asi bychom měli) monitorovat naše aplikace, abychom si byli jisti, že ta naše kočka žije. Nejenom o typech monitoringu, ale i některých best practices, které nám při provozu Jobs.cz (a dalších našich webových aplikacích) významně pomáhají.
2. Monitoring historicky
Provoz
Máme know-how (*)
Nemáme přímou zodpovědnost
Nemáme nástroje
Máme zodpovědnost za provoz
Tedy i za monitoring
Máme nástroje
Nemáme přímé know-how (*)
Vývoj
16. Soutěž
• Máte rádi dobrý čaj? Chcete vyzkoušet jak
dobré monitoring nástroje máte?
• Checkujte http://devel2016.myslivecek.net
• 3x dnes dojde k výpadku s HTTP 503
• Na chybové stránce je tlačítko
skrývající unikátní kód
• S kódem hurá do LMC
čajovny na podpultový čaj
Editor's Notes
Předpokládejme že uvnitř je skutečně kočka a kdysy byla určitě živá.
A co toto rozdělení pravomocí a zodpovědností způsobuje???
-> primárně monitoring infrastruktury (je v ní vše OK pro provoz koček?
-> aplikační monitoring = spíše jeho nástřel (je v krabici něco, co vypadá jako kočka?)
-> ale pozor. Stále jde o důležitou součást monitoringu jako celku
Často to bylo tak, že krabice je OK, aplikace již nikoli
Zásadní posun – 2 věci:
Co je vyloženě nutné?
Vývojáři ke svému know-how:
Cítí zodpovědnost za běh
Mají nástroje bez bariér
Čím víc checků -> tím větší ochota tolerovat pár červených světélek
!!!!! NE, NE a NE !!!! Nikdy na to nesmíte přistoupit !!!!
Má to I odborný název - Alert fatigue
V rámci DevOps logicky první řešená úroveň monitoringu (základy měli už lidi z provozu – je tam něco co vypadá aspoň trochu jako kočka?)
Proč je kočička rozmrzelá?
– uptime monitoring obvykle nedokáže zmonitorovat vše, ale málokdy přehlédne mrtvou kočičku
DOTCOM – managed by app admins on request (by ticket)
Při přechodu jsme zjistili, že je v DOTCOMu spousta checků, které vůbec necheckují co mají.
Pingdom přímo v rukách vývojářů:
aktuální checky,
reálně řešené alerty,
dlouhodobě nemáme jediný selhávající check
HTTP response code není vidět -> při vývoji si toho vývojáři nevšimnou (možná automat?)
Uděláme hezkou error stránku -> a zapomeneme nastavit správný HTTP response kód
Nemusí nutně poznat, že došlo uvnitř stránky (obvykle v nejdůležitější části) k nějaké exceptione
- JENŽE: Zvlášť zajímavé v dnešní době, kdy se stránka skládá z dat více aplikací a je dobře ošetřený failover (takže stránka může přijet s 200, ale může v ní chybět důležitý kus -> ideálně by měla stránka vrátit Partial content, ale víte co :-)
Je v krabici něco, co vypadá jako kočka a dýchá to?
Jenže jaký? Ono se nám to dynamicky mění…
Trik: ten řetězec nemusí být přeci vidět. Takže nějaká class nebo něco jiného, co je pouze v segmentu položky výpisu…
Je v krabici něco (kočka), co má přístup k jídlu (dokáže to podle všeho žrát)?
Prace.cz potřebuje několik služeb pro svůj správný chod
SOLR
GIS
Memcache
Platební bránu
…
Proč je výhodnější než monitorovat jen tu danou aplikaci? Díky tomuto přístupu víme, že Prace.cz na danou službu I vidí.
+ … můžete “testovat” aplikaci kdykoli, kdy je dostupná uživatelům (a traffic tam být nemusí)
- … “testujete” pouze to, co vás napadne
* … typycky se netestují věci, které generují data (nebo třeba platby)
=> Aplikace vypadá, že je v pořádku, ale něco zásadnějšího v ní nefunguje.
V případě zájmu => napište mi
V případě většího zájmu, rád uspořádám follow-up na (nejen) tato témata
V případě zájmu => napište mi
V případě většího zájmu, rád uspořádám follow-up na (nejen) tato témata