DevOps és modern szolgáltatásplatformok
DevOps és modern szolgáltatásplatformok
Manapság a felhő rendszereken alapuló alkalmazások (az úgynevezett cloud native applications) előretörésével megváltozik a szoftverfejlesztés üteme is. Míg korábban az alkalmazás fejlesztése és a későbbi üzemeltetése élesen különvált, külön csapatok és szakemberek végezték, ma egyre inkább összeforr ez a két terület. A fejlesztők elkezdtek automatizációs megoldásokat készíteni a fejlesztés során, amivel könnyen lehet tesztelni (continous integration) és virtualizált környezetbe telepíteni akár már a félkész rendszert (continous delivery). Az alkalmazásokat kis, egymástól függetlenül fejleszthető, elosztott részekre választották szét (microservice). Az alkalmazásokat konténerekbe csomagolták, amik a felhasználói terhelést követve automatikusan skálázhatók fel vagy fel. Az éles környezetben futó alkalmazást folyamatosan monitorozta a fejlesztőcsapat, és így valós, gyors visszajelzést tudtak kapni a felhasználóktól, amit utána visszacsatoltak az alkalmazás továbbfejlesztésébe. Így született meg a DevOps, a fejlesztés és üzemeltetés összfonódása.
A felhő-natív alkalmazások által (ki)használt platform-szolgáltatások és middleware-ek jellemzően különböznek a klasszikus IT rendszerekben megszokottaktól; pl. erősen elosztottak és erőforrásaik "felhő stílusban" dinamikusan skálázhatóak. Ezek közé tartoznak a modern publish-subscribe rendszerek, az elosztott in-memory adatbázisok, de egyre inkább a "permissioned" (több vállalat által együtt karbantartott, megosztott adatbázisként működő) blockchain-ek is.
Napjaink technológiai fejlődésének egyik meghatározó eleme, hogy a (klasszikus) ipartól a telekommunikációs szektoron keresztül a felhő szolgáltatókig közös céllá vált, hogy a felhőt és a felhő jellegű funkciókat ki tudjuk terjeszteni a "terep széléig" (pl. mobil bázisállomások mellé telepített "mini-felhőkkel"), illetve a "terepre" (pl. újrakonfigurálható/"bérelhető" szenzorokkal, mobil eszközökkel). Platformként, architekturálisan és a megoldásfejlesztésben a ma megjelenőben lévő edge computing és fog computing alapvetően a témalabor fókuszában álló, létező felhő-natív megoldásokat alkalmazza.
A feladatcsoporthoz kapcsolódó témalabor feladatok:
- Cloud native alkalmazások megismerése és fejlesztése
- DevOps módszerek és technikák kipróbálása
- Felhő szolgáltatás vagy saját infrastruktúra összerakása
- Mikroszolgáltatás / konténer menedzsment megoldások
- Automatizált tesztelő eszközök kipróbálása, fejlesztése
- Alkalmazások monitorozása és adatok elemzése, megjelenítése
- Infrastruktúra-automatizálási módszerek
- ...
A feladatcsoporthoz kapcsolódó tipikus korábbi TDK munkák, szakdolgozatok és diplomamunkák:
- A folytonos integráció lehetőségei .NET projektek esetén
- Dinamikusan skálázódó alkalmazások cloud környezetben
- Rendszertesztek jellemzőinek vizsgálata elosztott futási nyomok alapján
- Regressziós tesztelést segítő eszköz fejlesztése PHP-hez
- Automatikus skálázási megoldások felhő-alapú alkalmazásokhoz
- Felhő alapú tároló rendszerek
- konténer technológiák (Docker, Kubernetes), cloud technológiák (AWS, Azure)
- mikroszolgáltatás-fejlesztés (OpenAPI)
- build rendszerek, regressziós tesztelés, folytonos integráció (Travis, Jenkins, TFS)
- automatikus tesztek: unit, web, mobil (JUnit, Selenium, Robot Framework, Appium)
- Infrastruktúra (Prometheus) és alkalmazás-monitorozás (OpenTracing), teljesítménymérés
- Chaos Engineering alapjai (Chaos Monkey)
- konfigurációmenedzsment-automatizálás (Ansible, Helm)
- Modern szolgáltatáskörnyezetek jellemző middleware-jei (Kafka, Redis, ...)
- Jogosultságkezelt (elosztott adatbázist megvalósító) Blockchain-ek (Hyperledger Fabric/Sawtooth)
- Edge Computing megoldások (Istio, k3s, Redis Edge)
- ...