Intelligens rendszerfelgyelet Application Release and Deployment Alkalmazs kiads





































- Slides: 37
 
	Intelligens rendszerfelügyelet Application Release and Deployment (Alkalmazás kiadás és telepítés) Kövi András, Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1
	DEMO Egyszerű alkalmazás telepítése § Telepítés kézzel o „Release unit” o Másolás utáni egyéb beállítások: pl. registry § Telepítő srcipt o Telepítés automatizálása o Általános és gép/felhasználó-specifikus beállítások szétválasztása § Felügyelet? ? o Hova, mikor, ki, miért telepítette o Most pontosan mi is van fent? 2
	Tartalom § Release and deployment – fogalmak, folyamat § Technológiák: o Nagyvállalati környezet példa • Windows: MSI készítés, AD szoftverterítés o Web, Cloud példa • Linux: Automatikus életciklus-kezelés, skálázás 3
	Release and Deployment mgmt § Release mgmt: elfogadott változások elkészítése és elfogadott kiadások készítése belőlük § Deployment mgmt: kiadások telepítése 4
	ITUP Release Management Tervezés Implementálás Tesztelés Telepítés Ellenőrzés, lezárás § Kiértékelés § § § 5
	ITIL / ITUP folyamatok Az eddigiekhez hasonlóan a céljuk: § Keret szolgáltatása § Felelősségek hozzárendelése o szerepek definiálása § Fogalmak definiálása 9
	ITIL Release mgmt fogalmak § Release: HW, SW, dokumentáció és folyamatok gyűjteménye, ami együtt egy RFC-t implementál § Release azonosító: név/szám konvenció § Release típusa: teljes / delta § Build környezet: eszközök, eljárások § Fejlesztői / teszt / UAT / éles rendszerek § Definitive Software Library (DSL): logikai tárhely az engedélyezett összes szoftverrel § Baseline: adott időpontban valaminek az állapota (as is / to be) § Back-out plan: ha a telepítés nem sikerül 10
	Példa: kiadások ütemezése 11
	Átlapolódó/rész/rokon területek § Szoftverfejlesztési folyamatok § Konfiguráció és változás kezelés § Patch kezelés §… 12
	DEMO Alkalmazásfejlesztési kitekintés § src/test/dist szétválasztása § dokumentáció a forráskód-kezelőben § Release elnevezési konvenció (automatikus build számozás? ) § Release unit: bináris, konfig, dll-ek § Konfigurációs fájlok: fejlesztői/éles verzió, debug/release verzió § Build szerver, Continous Integration 13
	Tartalom § Release and deployment – fogalmak, folyamat § Technológiák: o Nagyvállalati környezet példa • Windows: MSI készítés, AD szoftverterítés o Web, Cloud példa • Linux: Automatikus életciklus-kezelés, skálázás 14
	Egyszerű központosított telepítés folyamata Fejlesztés Telepítő létrehozása MSI testreszabása Házirend hozzárendelés Automatikus terítés 15
	Egyszerű központosított telepítés folyamata Fejlesztés Telepítő létrehozása MSI testreszabása Házirend hozzárendelés Automatikus terítés 16
	Alaptechnológia: Windows Installer § telepítési csomagok (MSI fájl) o relációs adattáblák és fájlok § verziózás, nyelvi verziók § Acquisition, Execution, Rollback § frissítés, javítás (windowsinstaller) § patch és transzformációs fájlok § előkövetelmények megadása 17
	Telepítő csomag létrehozás § Sokféle eszköz § Pl. : Visual Studio Deployment projekt 18
	Egyszerű központosított telepítés folyamata Fejlesztés Telepítő létrehozása MSI testreszabása Házirend hozzárendelés Automatikus terítés 19
	MSI testreszabása § Parancssori paraméterek § Transzformációs fájl (MST) létrehozása o Orca eszköz (Windows SDK) 20
	Egyszerű központosított telepítés folyamata Fejlesztés Telepítő létrehozása MSI testreszabása Házirend hozzárendelés Automatikus terítés 21
	AD csoportházirend § Szoftver telepítés o számítógép / felhasználó o Assigned / Published o Hálózati elérés megadása 22
	Egyszerű központosított telepítés folyamata Fejlesztés Telepítő létrehozása MSI testreszabása Házirend hozzárendelés Automatikus terítés 23
	Automatikus terítés § Számítógéphez rendelt telepítések o Gép elindulásakor o Felhasználó be se tud lépni a végéig § Felhasználóhoz rendelt telepítések o Belépéskor 24
	DEMO MSI készítés, telepítés § Visual Studio: o Deployment projekt o MSI tulajdonságok, registry beállítások, fájlok. . § Orca: o Testreszabás, MST fájl létrehozása § Active Directory csoportházirend o Szofver telepítés beállítása 25
	Tartalom § Release and deployment – fogalmak, folyamat § Technológiák: o Nagyvállalati környezet példa • Windows: MSI készítés, AD szoftverterítés o Web, Cloud példa • Linux: Automatikus életciklus-kezelés, skálázás 26
	Motiváció Adottságok § Dinamikusan változó terhelés Szükséges támogatás § Jól skálázható (scalable) o alkalmazások o infrastruktúra o időszakos o tervezett • Cloud § Konfigurációk telepítése/ karbantartása § Gép által vezérelt megvalósítás § Hibás viselkedés automatikus észlelése § Monitorozás 27
	A kofigurációs rendszer főbb feladatai Konfigurációs modell Gépvezérelt konfigurálás Beavatkozás Monitorozás 28
	Megközelítések § Állapotgép alapú megközelítés o Eszköz példa • GLU (az előadáson ezzel foglalkozunk) https: //github. com/linkedin/glu o Megvalósítás alapja • A szolgáltatások konfigurációjának állapotgépként való leírása o Mikor jó • Statikus és dinamikus konfigurációra is • Statikusnál jelentős lehet az overhead § Célkonfiguráció deklarálása és állapot fenntartása o Eszköz példa • Puppet http: //www. puppetlabs. com/ o Megvalósítás alapja • Erőforrásháló alapján o Mikor jó • Viszonylag statikus konfiguráció 29
	Célkonfiguráció alapú megoldás (röviden) § Erőforrás függőségi háló § Működés Web alkalmazás o Erőforrás definíciókat megpróbáljuk kielégíteni o Függőségek mentén haladunk § Monitorozás o Rendszeres időközönként végignézzük a hálót o Korrigálunk, ha kell Apache szerver Adatbázis szerver Apache konfiguráció Adatbázis séma conf fájl létezzen 30 felhasználó létezzen
	Állapotgép alapú megoldás – GLU § Deklaratív megközelítés o Azt mondjuk, mit szeretnénk, nem azt, hogyan § Konfigurációs állapotgép = egy véges állapotgép (Finite State Machine) Kezdőállapot (Kályha) Konfigurációs átmenet 31 Konfigurációs állapot
	Véges állapotgép § § 1 token van a rendszerben Nem keletkeznek és nem is tűnnek el tokenek A token jelöli ki az aktuális állapotot (Digitből ismerősnek kell lennie) Kezdőállapot (Kályha) 32
	Példa szolgáltatás FSM implementáció § Web alkalmazás statikus oldalakkal és JSP*-vel Download Jetty* jars to $JETTY_HOME Download web_application. war Create Jetty configurations java –cp $JETTY_HOME/. . . –jar web_application. war echo $! > application. pid * JSP = Java Server Pages Jetty = könnyűsúlyú web szerver és servlet container 33
	A GLU architektúrája § A futtató platform csomópontok (node, execution environment) § GLU ágens o Minden csomóponton o Ez interpretálja és futtatja a szolgáltatások állapotgépeit § Szolgáltatások állapotgépei o GLU scriptként implementálva o Groovy nyelven (vagy Java-ban) § Vezérlés o A GLU ágensnek kiadott parancsokkal 34
	Groovy gyorstalpaló § Szkript nyelv a Java Virtual Machine (JVM) felett o Értelmezett és lefordított formában is használható § Java + a Power. Shell nyelvéhez hasonló képességek o def amap = [„key”: ”value”, „irf”: ”good stuff”] o def alist = [1, 2, „hello”, null] § Klóz (closure) o Lambda típusú függvény • Név nélküli o Példa: Összeadás • { arg 1, arg 2 -> arg 1+arg 2 } • { arg 1, arg 2 -> return arg 1+arg 2 } o Segítségükkel változók is lehetnek függvények 35
	Klózok találós kérdés § def valtozo = { „hello” } § Mit ír ki? o println valtozo() 36
	A GLU szkript (csont)váza § Groovy nyelven o (Java is lehet) § Az állapotátmeneteket klózokban implementáljuk 37
	DEMO GLU § Hello World GLU script o GLU Command Line Interface (CLI) használata o Script állapot lekérdezése § Egyszerű Java servletes Web alkalmazás § GLU Web Console o Alkalmazások telepítése o Alkalmazások monitorozása o Tear down 38
	Miért jó ez az egész? § Automatikusan tudunk telepíteni 10, 1000… gépet § Ha ügyesen írjuk meg a szkripteket, akkor szinte autonóm rendszert kapunk § Hol használják? o GLU • linked-in (szakmai Facebook) • Outbrain (személyre szabott tartalom keresés/javaslás) o Puppet • look up the Web 39
	További információ § ITIL Release Management Quick Reference § MSDN: Windows Installer Deployment § GLU: Deployment Automation Platform 40