APM pod mikroskopem

Správa výkonu aplikací (Application Performance Management) přibližuje na dosah ruky nejrůznější metriky užitečné ...


Správa výkonu aplikací (Application Performance Management) přibližuje na dosah
ruky nejrůznější metriky užitečné pro plánování IT rozpočtu nebo pro zajištění
prevence a případně řešení problémů ve firemní infrastruktuře avšak úspěšné
sledování výkonu aplikací začíná už v samotném operačním systému.
Správa výkonu aplikací (APM) se velmi podobá pravidelnému cvičení: Každý ví, že
ji potřebuje, avšak pouze málokteří ji provádějí důsledně a vytrvale zbytek se
odvolává na vysoké náklady a zdlouhavé nasazování. V dnešní době, kdy jsme si
(alespoň v oblasti IT) zvykli, že lze nezřídka dostat za málo peněz hodně
muziky, mohou nicméně ti, kdo budou věnovat APM bližší pozornost, dosáhnout
poměrně významných výhod. Díky podpoře různých čítačů (counters) jak
existujících čítačů metrik, tak uživatelských vytvořených vývojáři v dané firmě
monitorují APM řešení vše od využití CPU zdrojů a spotřeby paměti až po
propustnost sítě. Většina z nich zahrnuje i nějakou formu analytické komponenty
pro interpretaci dat pocházejících z čítače, upozornění na nesrovnalosti a
jejich zápis do logu, varování triggerů atd. Zanalyzovaná APM data pak mohou
být využita pro správu zdrojů a kapacity, odstraňování problémů, zajištění
potřebných výkonových úrovní nebo dokonce při plánování budoucího upgradu
infrastruktury.
V závislosti na výchozím bodě, který nabízí váš operační systém, možná budete
schopni dát dohromady fungující řešení, ačkoliv nebudete potřebovat v podstatě
nic víc, než co už ve vaší IT laboratoři máte. Množství nástrojů je totiž
zabudováno přímo do operačního systému.
V tomto článku si přiblížíme současný stav vývoje APM ve vztahu ke třem předním
platformám operačních systémů: k Windows Serveru společnosti Microsoft, k
Solarisu firmy Sun Microsystems a k Linuxu.

Windows Server
Microsoft má již dlouhou tradici v bundlování dodatečné funkcionality vždy
spolu s uvolněním nové verze operačního systému a APM v tomto směru není žádnou
výjimkou. Platforma Windows Server "přetéká" množstvím metrik. Svoji metriku
zde má prakticky vše od jádra NT Executive až k nejméně známým subsystémům
run-time prostředí (například "cache read pin hints %").
Snad ještě důležitější než počet čítačů je ale způsob, jakým je Microsoft dává
k dispozici vývojářům. Pro starší Windows aplikace, jež byly vytvořeny a
nasazeny ještě před příchodem frameworku .Net, je zde knihovna PDH (Performance
Data Helper), jediný referenční bod pro přístup k čítačům metrik v rámci celého
operačního systému. Je zde reprezentován prakticky každý důležitý subsystém a
vývojáři ve Windows mohou prostřednictvím PDH rozhraní snadno rozšířit své
vlastní aplikace o uživatelsky definované metriky.
PDH je mimochodem používáno i grafickou aplikací PerfMon (Performance Monitor,
jež je součástí jádra Windows) pro grafické znázornění dat metrik a jejich
zápis do logů. Proto má aplikace napsaná tak, že může spolupracovat s PDH,
výhodu spočívající v dostupnosti uživatelsky definovaných metrik pro aplikaci
PerfMon.
S nástupem .Net frameworku rozšířil Microsoft svůj model všudypřítomných metrik
až do oblasti webového aplikačního serveru. Všechny aspekty operací frameworku
od JIT (Just in Time) překladače pro virtuální stroj CLR (Common Language
Runtime) až po knihovny webových služeb v ASP .Net jsou plně kontrolovány a pro
vývojáře prezentovány jak prostřednictvím starší knihovny PDH, tak pomocí
novějších rozhraní WMI (Windows Management Instrumentation).
V případě Microsoftu jde o určitý druh podpory obousměrného APM s těsnou
integrací mezi staršími operačními systémy a současnou generací serverových
zdrojů pro webové aplikace. Tak rozsáhlou funkcionalitu vestavěnou do
základního operačního systému (vše, co zde bylo uvedeno, je dostupné na CD s
Windows nebo volně ke stažení) mohou využít mnohá vývojářská oddělení a vyhnout
se přitom investicím do nákladných APM frameworků třetích stran.

Systém Linux
Jestliže Windows Server představuje vrchol z hlediska integrace APM možností
jediným dodavatelem, Linux ve svých různých obměnách a distribucích
reprezentuje opačný pól: občas chaotické virtuální hřiště pro ty, kdo
upřednostňují přístup "udělej si sám".
Samozřejmě i zde můžete najít vertikální APM řešení, pokud jej budete požadovat
PerfMan for Linux firmy ISM a součásti sady Tivoli společnosti IBM. Nicméně i
nástroje dodavatelů známých jmen nezřídka stavějí na těžko pochopitelných či
málo známých utilitách, které byly zvěčněny jako část linuxového panteonu.
Tak třeba PerfMan, výkonné komerční řešení pro sledování metrik a jejich
analýzu, je nabalen okolo sysstat, což je z příkazové řádky ovládaný open
source front-end pro pseudosouborový systém /proc. Podobně mnohé iniciativy IBM
týkající se výkonu aplikací pod Linuxem se točí kolem OProfile, open source
utility integrované v jádru, která zajišťuje profilování při nízké režii.
Na rozdíl od kategorií typu aplikačních serverů a databází, které jsou
bezezbytku doplněny o tradiční řešení přímo od dodavatelů softwaru pro první
vrstvu (jinými slovy nabízejí k nim i dobrou podporu za odpovídající cenu),
oblast APM se stále ještě ve velké míře opírá o open source komunitu. To
oceníte, chcete-li si například přizpůsobit Linux pro své vlastní účely nebo
snížit přímé náklady na software výše zmíněné nástroje spadají pod GNU General
Public License. Nebude to však tak žhavé v případě, že upřednostňujete
soudržnost architektury v rámci celého vícevrstvého prostředí.
Tím se dostáváme k problematice obsluhy aplikací pod Linuxem. Až na několik
výjimek vyžaduje většina vysoce škálovatelných linuxových projektů použití
jedné nebo více platforem webových aplikačních serverů. To proto, že Linux
nedisponuje žádnými skutečně nativními možnostmi aplikačního serveru, pokud
nepočítáme webové skriptovací jazyky, jako je PHP.
Ačkoliv tedy dodavatelé mohou poskytovat bohaté APM nástroje pro svá vlastní
prostředí, tyto nástroje pořád ještě vědí dosti málo o tom, co se děje ve
vrstvě pod nimi, na úrovni operačního systému. Ze stejného důvodu APM nástroje
pracující na úrovni operačního systému (například sysstat) naopak nevědí nic o
webovém aplikačním serveru mimo to, že je to proces, který může být sledován
pomocí (pseudo)souborového systému /proc.
Jde právě o oddělenost či nedostatečnou provázanost v kombinaci s uvedenými
dalšími faktory, které se negativně promítnou do celkové rovnice, na jejíž
druhé straně stojí nákladové výhody linuxových systémů. To může i konzervativní
zastánce open source přimět k přechodu na proprietární APM framework.

Sun Solaris
V předchozích odstavcích jsme si popsali dva extrémy dostupných APM modelů:
ten, který se opírá o jediného dodavatele a vertikální integraci (Windows), a
jeho protějšek spoléhající na více prodejců/autorů a horizontální integraci
(Linux). Solaris Operating Environment Version 9 společnosti Sun spadá někam
mezi ně.
Na jedné straně stojí Sun coby obhájce open source: jako držitel klíčů k Javě,
zastánce heterogenních webových standardů a v poslední době také "fanda"
Linuxu. Na straně druhé však lze vidět Sun jako klasického hráče na poli
velkého železa: tedy s nabídkou široké funkcionality, ovšem s tím, že klíčové
části jsou svázány s proprietárními hardwarovými platformami.
Sun například představil nové APM řešení Sun Solaris 9 Resource Manager jako
doplněk posledního vydání svého operačního systému. Resource Manager je přitom
snem každého IT plánovače: poskytuje detailní zpětnou vazbu vůči využívání
zdrojů aplikacemi, přičemž umožňuje administrátorům kontrolu chování run-time
prostředí pro analýzu stavu systému atd. V kombinaci s vývojovým prostředím Sun
One Studio 7 nabízí systém semknutý end-to-end APM balík, který nativně pokrývá
samotný Solaris i aplikace založené na J2EE.
Oba produkty byly původně dostupné pouze na proprietární procesorové platformě
Sparc. Posléze však byl Resource Manager s verzí 9 portován i na Solaris určený
pro platformu x86. Výsledný dojem tak může být poněkud smíšený Sun sice věnuje
pozornost open source, avšak svá nejlepší APM řešení poskytuje (převážně) v
těsném spojení se svým proprietárním hardwarovým zázemím.
Pokud by chtěl Sun skutečně demonstrovat otevřenost, musel by portovat většinu
APM produktů na Linux (což předběžně slíbil) nebo alespoň důsledněji zajistit
jejich dostupnost pro Solaris na platformě x86. S verzí 9 ale začalo docházet
ke zlepšování. Zatím však firmy musejí do svých úvah o APM strategii Sunu
zahrnout i potenciální aspekty navazující na proprietární povahu jeho řešení.

Formování APM strategie
Na počátku bylo řečeno, že platforma s maximálně soudržným APM vybavením by
teoreticky měla být smysluplným řešením i z ekonomického hlediska. Na základě
takové argumentace může být nejlepší volbou platforma Microsoftu díky jeho
zálibě v bundlování extra funkcionality ke svým operačním systémům.
Nicméně základní funkčnost operačního systému je pouze jednou částí APM
rovnice. V mnoha případech nemusí být řešení jediného výrobce nejschůdnější
(realizovatelnou) volbou vzhledem k nainstalovanému základu ve firmě (model
Microsoftu orientovaný na Windows nebude smysluplný tam, kde je využíváno mimo
Windows i množství starších unixových serverů). Potom je k dispozici široká
nabídka APM nástrojů třetích stran (i takových, které jsou vybaveny pro vývoj
vlastních aplikací), s nimiž můžete za odpovídající cenu skoncovat s chaosem ve
firemní infrastruktuře.

Čítače, všude čítače
Srdcem každého APM řešení je čítač metrik. Tato zdánlivě nezajímavá entita
poskytuje kritická data o "nejtemnějších" oblastech ve spodní části run-time
prostředí. Čítače metrik, ať už jsou vetkány do jádra operačního systému nebo
do knihovny tříd virtuálního stroje, jsou tím, co umožňuje provádět APM napříč
celým systémem.
Čítače také prozradí mnohé o ideologii vývojářů operačního systému. Například
Solaris poskytuje záplavu čítačů pro prohlížení vnitřního fungování vlastního
hardwaru Sunu, zatímco Windows nabízejí široké pole systémových a aplikačních
čítačů prostřednictvím hlavní knihovny (Performance Data Helper DLL) a umožňují
jejich dostupnost i pro příležitostné vývojáře.
Přechod k aplikačním architekturám založeným na prohlížeči (tj. k takovým, k
nimž lze přistupovat pomocí standardního browseru) však do APM oblasti vnesl
zcela novou vrstvu: webový aplikační server. Se svým důrazem na přenositelnost
kódu a abstrakci platformy (prostřednictvím výše zmíněného modelu virtuálního
stroje) vyžadují webové aplikační servery své vlastní měřicí vybavení, které se
může nebo nemusí hodit k tomu, které nabízí hostitelský systém, což činí APM
komplikovanějším.
Jestliže se úroveň složitosti prudce zvyšuje a před IT vyvstane potřeba
provozovat a spravovat paralelní APM architektury, stává se klíčovým faktorem
schopnost APM řešení daného dodavatele integrovat různorodé zdroje bez toho,
aby byli uživatelé nuceni hledat pomoc mezi nástroji třetích stran

Levná správa výkonu aplikací
Jestliže je váš rozpočet omezený, není třeba zoufat, i tak můžete vytvořit
solidní APM řešení založené na volně dostupných systémech.

Windows Server: Nabízí množství důmyslných nástrojů, jako je aplikace PerfMon.
Pokud preferujete skriptování dotazů, můžete využít WMIC (Windows Management
Instrumentation Console) pro extrakci a analýzu dat metrik. A samozřejmě je k
dispozici bezpočet freewaru a sharewaru, který agreguje data z čítačů a
kombinuje je s Windows Event Logy do detailních záznamů o chování aplikací.

Linux: Zde je opět k dispozici mnoho volně dostupných řešení, z nichž
nejsilnější je zřejmě utilita sysstat, která opět poskytuje rozhraní pro
přístup k čítačům metrik v operačním systému. Mezi další open source APM řešení
patří moodss, grafická monitorovací konzole s architekturou rozšiřitelnou
pomocí různých plug-inů, či OProfile.

Solaris: Resource Manager, jakožto protějšek PerfMon, je už dostupný pro
platformy Sparc i x86 a poskytuje zpětnou vazbu na všech úrovních fungování
platformy. Možná ale oceníte i fakt, že Solaris (nebo i různé deriváty Unixu)
podporuje také množství open source nástrojů včetně uvedené konzole moodss.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.