2012. december 17., hétfő

2012-es évértékelő

Lassan vége az évnek, így most eljött az idő egy kis visszatekintésre és összegzésre majd írnék pár gondolatot a jövővel kapcsolatban is.

A 2012-es év nagyon hasznos és eredményes volt a számomra! A blogom olvasói már tudják, hogy részt vettem a Raiffeisen Bank stabilizációs projektében ahol is sikeresen elértük a kitűzött célokat! A stabilizációs projekt egyben a Compuware dynaTrace APM legelső hazai bevetését is jelentette, így a bank lett a magyarországi referencia implementáció. A projekt keretében nemcsak megismertem a banki IT architektúrát és a mindennapi problémákat, hanem néhány eszközt (dynaTrace, Splunk, Eclipse Memory Analyzer, VisualVM, IBM PMAT, IBM HA, IBM TDA) a valós életbeli problémákon keresztül is alkalmazhattam: performancia optimalizálás és stabilitási problémák megoldása, thread és heap dump analizálás valamint memória szivárgások beazonosítása.

Foglalkoztam még kliens oldali optimalizációval is a dynaTrace AJAX segítségével valamint kidolgoztam egy migrációs útvonalat ahhoz, hogy a jelenlegi banki standard Internet Explorer-ről fokozatosan (akár oldalanként) áttérhessenek a Google Chrome használatára. Erről azért még blogolok valamikor...

Mivel a konfigurációs jellegű problémák ellenőrzéséhez és beazonosításához a WebSphere admin konzol kevésnek bizonyult, ezért készítettem egy Jython szkriptet, ami a wsadmin-t felhasználva ki dump-olta egy HTML fájlba a szerver, jms, adatforrás és alkalmazás információkat mint például a heap beállítások, gc policy beállítások, jvm argumentumok, pool beállítások, telepített alkalmazások verziószáma és webservice binding információi, stb... . A szkriptet CRON-al ütemezve és naponta lefuttatva mindig aktuális és gyorsan kereshető információkat szolgáltatott a számunkra.

Miután megismertem a környezetet és a felmerült problémákat, néhány javaslatot is tettem annak érdekében, hogy ne csak foltozgassuk ezeket hanem akadályozzuk meg azt is hogy a jövőben ismételten bekerülhessenek a rendszerbe! A javaslatom a Jenkins és a Sonar banki bevezetését jelentette a forráskódok statikus ellenőrzéséhez! A kódellenőrzéshez kapcsolódóan néhány felmerült problémára PMD alapú kódellenőrző kiegészítőket fejlesztettem valamint segítséget nyújtottam a belsős kollégák számára a projektek bekötéséhez és a további kódellenőrző plugin-ok implementálásához.

A Jenkins és a Sonar banki környezethez való illesztéséhez további ötleteim is megvalósításra kerültek. A Sonar keretrendszerhez fejlesztettem egy JRuby On Rails alapú Sonar plugin-t ami a webes felületén keresztül megvalósította a banki LDAP csoportok leszinkronizálását valamint ajánlásokat adott a projektek és csoportok összerendeléséhez.


A másik ötletem azt a célt szolgálta, hogy a Jenkins alá bekötött és sikeresen build-elhető projekteket egyenként vagy batch módban a homokozó környezetből egy gombnyomásra át lehessen emelni az éles környezetbe. Ehhez a Jenkins platform kiterjesztési pontjait és az Apache Jelly technológiát alkalmaztam egy unix szkripttel kiegészítve.


A stabilizációs projekt az év végére befejeződött, én pedig kaptam egy új munkalehetőséget a Telvice kft-nél, ahol is a dynaTrace magyarországi supportálása ill. ehhez kapcsolódóan szakértői feladataim lesznek. A jövőt tekintve kifejezetten érdekes feladatok várnak rám, ugyanis megismerhetem több nagy hazai cég IT rendszerét és problémáit valamint segíthetek ezek megoldásában. A Java-s fejlesztői és üzemeltetési vonalon maradva pedig tervezem néhány gyártói és Oracle Java-s vizsga letételét is. A blogolást is folytatom, a munkámból adódóan számíthattok még egy-két dynaTrace-es bejegyzésre is de lesz más is bőven.

Ezúton is kellemes ünnepeket kívánok mindenkinek!

4 megjegyzés:

  1. +1

    Bar en a deploymentelos cuccokat kulon jobbal oldom meg, melyek kezi triggerelesre vannak beallitva. Amikor deployolni kell, nyomok egy play gombot a megfelelo jobon, es szepen lezongorazodik a deploy processz. Nem feltetlen elegans megoldas, viszont a vegletekig testreszabhato.

    VálaszTörlés
    Válaszok
    1. Ha jól értem te kicsit másra gondolsz.
      Ennek a Jenkins plugin-nak a DEV->PROD irányú "job másolás" volt a célja, nem pedig a build termékek appszerverre való telepítése. Szóval kialakítottunk egy identikus DEV és egy PROD Jenkins/Sonar környezetet, ahol is a DEV-es környezet próbálgatási célokat szolgál, a PROD pedig már minőség biztosítási szereppel is bír.

      Törlés