2013. október 31., csütörtök

dynaTrace - Nemcsak tűzoltásra!

A dynaTrace egy hasznos eszköz az éles környezetben felmerült teljesítménybeli és stabilitási problémák beazonosításához, de lássuk be ez nem más mint tűzoltás! Én azt javaslom, hogy ne csak akkor kezdjünk el foglalkozni a problémákkal ha már ég a ház, mert ilyenkor biztos sokkal nagyobb lesz a kárunk és a javítási költség is!


A problémákat jóval korábban, már a fejlesztés-tesztelés fázisban ki kellene mutatni, így azok gyorsan orvosolhatók! Felmerülhet a kérdés, hogy miért használjunk dynaTrace-t amikor ott vannak a már jól bevált teszteszközök? A dynaTrace-t nem a teszteszközök helyett, hanem azokkal integrálva érdemes használni! Az alapvető probléma a teszt eszközökkel, hogy azok csupán rámutatnak a sokáig tartó kérésekre ill. hibákra, de nem tudják felfedni a problémák valódi okát, mivel nem látnak bele az alkalmazásba!

A dynaTrace integrálható a legtöbb kereskedelmi és nyílt teszteszközzel, legyen az terheléses (JMeter, LoadRunner), felületi (Selenium) vagy éppen egység teszt (JUnit, TestNG). A leghatékonyabb eredményt akkor érhetjük el, amikor ezt a folyamatos integrációs környezetünkbe is beillesztjük.

A gyakorlatban ez úgy néz ki, hogy egy CI eszköz (gombnyomásra vagy ütemezve) meghajtja az alábbi lépéseket:
  1. Forráskód letöltése az SCM-ből
  2. A build eszköz lefordítja a kódot, létrejönnek a build termékek
  3. Lefuttat egy SonarQube kód analizálást
  4. Átszól egy REST-es interface-n a dynaTrace-nek, hogy kezdheti a session mentést
  5. Lefuttatja a dynaTrace-szel integrált unit teszteket
  6. Telepíti a web-alkalmazást a tesztkörnyezetbe
  7. Lefuttatja a dynaTrace-szel integrált felületi és terheléses teszteket
  8. Átszól egy REST-es interface-en a dynaTrace-nek, hogy zárja le a session mentést
Nézzük is meg, hogy mit nyertünk vele:
  • Minden egyes release-hez automatikusan létrejön egy dynaTrace session, ami tartalmazza a PurePath-okat és minden mérési eredményt a dinamikus jellemzőkről (lekérdezések ideje, kivételek száma, válaszidők, stb...)
  • Minden egyes release-hez megkapjuk a kód statikus jellemzőit (System.out.println()-ek száma, stb...)
  • Mivel a trendekből kiolvashatjuk a dinamikus (dynaTrace) és statikus (SonarQube) jellemzőket, a negatív elváltozásokat azonnal felismerhetjük
  • Tetszőleges 2 release jellemzőit is összehasonlíthatjuk

Persze a dynaTrace a fejlesztőknek is tartogat hasznos funkciókat. Az Eclipse ill. az MS Visual stúdióval történő integrációt követően, a dynaTrace-ben megjelenő metódusokra kattintva átugorhatunk a fejlesztőkörnyezetünkben lévő projekt megfelelő metódusára!

Legközelebb pedig egy teljesen új témával jelentkezem, ez pedig az An...

http://www.compuware.com/en_us/application-performance-management.html