Ugrás a tartalomhoz

Felhőalapú fejlesztés a FLORA Környezetben

Nyomtatható verzió

Elkészült a közbeszerzések kiírását segítő tájékoztató anyag, amely segítséget nyújt a döntéshozóknak abban, hogy milyen technikai keretekbe kell beleférnie egy-egy felhőalapú fejlesztésnek.

Fejlesztéstámogató képességek

A FLORA – Alkalmazás-fejlesztési Környezet fejlesztői eszközöket, eredménytermékeket előállító automatizmusokat, az eredménytermékek minőségét mérő eszközöket és funkcionális tesztkörnyezetet, valamint kontrollált, központi környezetet és folyamatot biztosít az előálló eredménytermékek publikálására.

Fejlesztőeszközök

Fejlesztés

// Központi kódtár

// Központi terméktár

// Távoli asztali kapcsolat

// Integrált fejlesztői környezet

// Automatikus kapcsolat a központi kódtárral

Projektmenedzsment

// Dokumentációs sablonok

// Projektportál

// Hibajegykezelő

Termékelőállítás

// Központi build folyamat

// Terméktesztelési környezet

Eredménytermékeket előállító automatizmusok

A központi kódtárba bekerülő kódok egy automatizmusokkal vezérelt építési futószalagon (build pipeline) mennek keresztül, amely során megtörténik a kód fordítása (buildelése), unit tesztek futtatása, kód minőség ellenőrzése, kód statikus biztonsági ellenőrzése, az alkalmazással és a dokumentációval szemben elvárt minőségi és mennyiségi szempontok automatikus ellenőrzése, valamint az eredmények automatizált, tételes mérése és riportolása. A feldolgozási folyamat végén előáll a futtatható eredménytermék.

Funkcionális tesztkörnyezet

Az építési folyamat eredményeképpen előálló alkalmazáskód funkcionális tesztelésre beüzemelhető az FLORA – Alkalmazás-fejlesztési Környezetben. A FLORA Környezet csak anonimizált adatokon végrehajtott funkcionális tesztelést támogat (nem célja pl. végfelhasználói vagy terheléses tesztelés támogatása). A funkcionális tesztkörnyezet a FLORA Környezet futtatókörnyezetét biztosító OpenShift konténerklaszterben jön létre. A funkcionális tesztkörnyezet infrastruktúrájának definíciója deklaratívan kerül megadásra, ennek alapján jönnek létre az alkalmazást futtató konténerek és a külső függőségek.

Fejlesztési ajánlások

A FLORA Környezet nem tesz megkötést a benne fejlesztett alkalmazások architektúrájára vonatkozóan. Monolit, komplex állapottal bíró, nehezen skálázható backendektől, microservice architekturájú, állapotmentes, elasztikusan skálázódó, felhőalapú alkalmazásokig sokféle rendszer fejleszthető benne. A fent definiált fejlesztéstámogató képességek azonban eltérő módon vehetők igénybe az alkalmazott technológiáktól és architektúrától függően. Az értékelési szempontrendszer természetesen előnyben részesíti a modern felépítésű, jól üzemeltethető, fejleszthető és skálázható alkalmazásokat.

A FLORA Környezetben biztosított konténer alapon felépülő futtatókörnyezet, funkcionális tesztkörnyezet létrehozását teszi lehetővé. Ez a konténerklaszter-alapú futtatókörnyezet a modern, felhőalapú technológiákra épül, és ebből fakadóan megkövetel bizonyos iparági legjobb gyakorlatok szerinti működést (pl. deklaratív infrastruktúra-definíció létrehozását kényszeríti ki), másrészről viszont a konténerizált és SDN (Software Defined Network) alapú környezetből fakadóan megkötéseket támaszt a felhasználható technológiák tekintetében. Az alkalmazáskonténerek között például nem használható tetszőleges kommunikációs protokoll, minimum TCP alapú protokoll használata az elvárás, de preferált a HTTP alapú kommunikáció. Hasonló sajátosság a konténerek elillanó (ephemeral) felhasználása, az alkalmazás nem számíthat az alkalmazáskonténer állapotmegőrzésére.

A fenti példákhoz hasonlóan egyéb specifikumai is vannak a felhőalapú futtatókörnyezetnek, amelyeket figyelembe kell venni az alkalmazás tervezése, fejlesztése során. Az ezekhez kapcsolódó tervezési és fejlesztési ajánlások megfogalmazásra kerülnek a fejlesztőcégek számára készített módszertani dokumentumokban.

Az FLORA Környezetben megvalósított alkalmazás-fejlesztési projektek kapcsán az alábbi eredménytermékek állnak elő:

Eredménytermékek

// Alkalmazást leíró, szabványos képfájl(ok)

// Dokumentációk (egységesített struktúrában és szempontrendszerben kialakított dokumentumok)

// Kiajánlott szolgáltatások szimulációját (mock) leíró, szabványos képfájlok (integrálódni kívánó alkalmazások számára)

// Minőségbiztosítási riportok (komplex minőségi szempontrendszernek való megfelelőséget ellenőrző jelentések)

Átadás-átvétel

A fejlesztési projektek során előálló eredménytermékek átadás-átvétele szabályozott folyamatok mentén történik. Ennek során a FLORA Környezetben megfogalmazott minőségi követelményeknek való megfelelés ellenőrzése történik meg.

Átadás-átvétel koncepcionális folyamata

A FLORA Környezet csak funkcionális tesztkörnyezetet biztosít, a végfelhasználói, terheléses tesztek valamint az élesüzemű működés már a platformon kívül történik. Az átadás-átvétel csak akkor zárul le, amikor a rendszer stabilan beüzemelésre került az élesüzemű környezetbe és a megrendelő leigazolta a sikeres szállítást. Ebből fakadóan az ÁAFK-ból eredménytermékek több iterációban kerülhetnek kiadásra, amelyek célja az alkalmazás tesztelésre és beüzemelésre való átadása. Ezen köztes eredménytermékekre vonatkozóan érkezhetnek hibabejelentések, amelyek javítását követően újabb eredménytermék kerül kiadásra. Akkor zárul az átadás-átvételi folyamat, amikor a megrendelő egy adott alkalmazás verziójára igazolja a megfelelő szállítói teljesítést.

Publikálás módja

Az előálló eredménytermékek fix verziói a FLORA Környezet központi eredménytermékek artifact tárolójába (központi terméktár) kerülnek feltöltésre. Az ide feltöltött release-ek azok, amelyek sikeresen végigmentek az ÁAFK minőségbiztosítási folyamatán, amelynek végén a FLORA Környezet az eredménytermékeket minősített, digitális aláírással látja el, melyek az alkalmazásfejlesztési folyamat hiteles eredménytermékei. Az alkalmazás élesüzemű beüzemelése csak ezen hivatalos, minősített eredménytermékekre alapulhat.

Telepítés módjai

A kész alkalmazások szabványos képfájlként – a központi terméktárból -, a megrendelő igényei szerint kitelepíthetők UAT/üzemeltetői teszt-, illetve éles környezetbe is.

A FLORA Környezet a telepítés három változatát támogatja. Ezek preferencia szerint csökkenő sorrendben:

1. NISZ Zrt. Kormányzati Adatközpont

A KAK központi futtatókörnyezetként integrálódik az FLORA Környezettel, és a FLORA Környezetben keletkező alkalmazások automatizált folyamatok mentén kerülnek a KAK-ban beüzemelésre, megrendelő infrastruktúrájától függetlenül.

2. Megrendelő OpenShift/OKD környezete

Amennyiben a megrendelő rendelkezik OpenShift, vagy az azzal funkcionálisan megegyező, ingyenes, de emiatt támogatást nem tartalmazó OKD futtatókörnyezettel, akkor az FLORA Környezetben előálló szabványos képfájlok és YAML környezet leírók egy az egyben felhasználhatók és átmozgathatók megrendelő környezetébe.

3. Megrendelő Kubernetes alapú futtatókörnyezete

Amennyiben a megrendelő rendelkezik Kubernetes-alapú konténer orkesztrációs rendszerrel, úgy a FLORA Környezetben előálló képfájlok és megfelelő körültekintéssel előállított YAML környezet leírók egy az egyben felhasználhatók és átmozgathatók megrendelő környezetébe. A megfelelő körültekintés azt jelenti, hogy az FLORA Környezet OpenShift rendszerében nem szabad OpenShift specifikus erőforrásokat használni.

4. Egyedi futtatókörnyezet

Egyedi futtatókörnyezet: minden egyéb egyedi üzemeltetési környezet esetében nem biztosított az automatikus beüzemelés. Megrendelő az ÁAFK-ból kiadásra kerülő szabványos képfájlokból a saját konténeralapú virtualizációs környezetében futtatható konténereket készít, majd a dokumentumok és a deklaratív infrastruktúra leírók alapján maga üzemeli be az alkalmazást.