Intelligens rendszerfelgyelet Application Release and Deployment Alkalmazs kiads

  • Slides: 37
Download presentation
Intelligens rendszerfelügyelet Application Release and Deployment (Alkalmazás kiadás és telepítés) Kövi András, Micskei Zoltán

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

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

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

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 § § §

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

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

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

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 §…

Á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ó

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

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 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

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 §

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

Á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

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

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

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

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?

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

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

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

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 §

További információ § ITIL Release Management Quick Reference § MSDN: Windows Installer Deployment § GLU: Deployment Automation Platform 40