az első lépés a mozgó monolit alkalmazások Kubernetes
a szoftvermérnöki karrierem során az egyik legértékesebb kérdés, amelyet megtanultam feltenni egy kollégának: “mit jelent neked valami$?”. Arra kényszeríti a másik mérnököt, hogy értékelje egy bizonyos szó használatának következményeit. Az első mozgó monolit alkalmazások nyomon követése a Kubernetes híváshoz, néhány percet akartam tölteni arról, hogy mi a monolit alkalmazás. Vagy legalábbis, mit jelent nekem.
ez egy érdekes hely, amely némi figyelmet igényel. Míg a hontalan mikroszolgáltatás működtetése a Kubernetes-en viszonylag egyszerű, egy nagy állapotú alkalmazás működtetése még hosszú utat kell megtennie. A monolitikus alkalmazás megértése lesz az első lépés a migrációs folyamat megkönnyítésében.
egy monolitikus alkalmazás meghatározásához először meg kell értenünk egy fontos alkalmazás összetevőit. A három összetevő, amely érdekel, a felhasználói felület, az adatelérési réteg és az adattár.
a felhasználói felület az alkalmazás belépési pontja, valamint a program azon pontja, amellyel a felhasználó kölcsönhatásba lép. Ez lehet egy fő () funkció, weboldal, webszolgáltatás vagy más belépési pont.
az adatelérési réteg a program azon rétege, amely egy adattárat betakar. Általában az adatelérési réteg kezeli az olyan aggályokat, mint az adattárolóval történő hitelesítés és az adatok fertőtlenítése, mielőtt azok megmaradnának az adattárban.
az adattárolás a rendszer legalapvetőbb része, felelős az önkényes információk (adatok) tárolásáért és visszakereséséért. Ez az összetevő általában csak egy adatbázis.
ez a három összetevő egy nagyon gyakori alkalmazástípust alkot, amelyet állapotos alkalmazásnak hívnak. Ami azt jelenti, hogy az alkalmazás tárolja és manipulálja az adatokat idővel. Ezért azt mondjuk, hogy az alkalmazás állam. Ennél is fontosabb, hogy az alkalmazás állapota idővel megváltozhat.
monolitikus alkalmazás esetén általában az alkalmazás több rétegét figyeljük meg szorosan összekapcsolva. Az alábbi példában láthatjuk, hogy a felhasználói felület és az adatelérési réteg csoportosítva van. Ez általában egy nagy kódtáron keresztül történik, és mindkét réteg valószínűleg attól függ, hogy a másik a helyén van-e a futtatáshoz. Ezenkívül a felhasználói felület és az adathozzáférési rétegek általában ugyanabba a folyamatba vannak csomagolva futásidőben. Ez azt jelenti, hogy ugyanazon a rendszeren kommunikálnak, a rendszer erőforrásait (memória és számítási ciklusok) használva, hogy kölcsönhatásba lépjenek a rendszer más részeivel.
éppen ellenkezőleg, egy mikroszolgáltatáson alapuló alkalmazás kis moduláris alkatrészekből állna, amelyek könnyen kikapcsolhatók. Ez egy komponálhatósági koncepciót kínál egy operátor számára, és azt jelzi, hogy mikroszolgáltatásokkal dolgozik egy monolitikus alkalmazás helyett. Az alábbi példa egy rugalmas és moduláris alkalmazást mutat be. Vegye figyelembe, hogy ebben a modellben a kisebb komponenseket egymástól függetlenül futtathatjuk, és hálózatot használhatunk a rendszerünk összekapcsolására. Ez a megközelítés sokkal skálázhatóbb.
Tehát mi a monolitikus alkalmazás? Ez egy egyszintű szoftveralkalmazás, amelyben a felhasználói felület és az adathozzáférési kód egyetlen programba egyesül egyetlen platformon. Ez egy olyan alkalmazás is, amely több összetevőt futtat ugyanabban a folyamatban, ugyanazon a rendszeren.
tovább haladva igyekszünk megérteni a monolitikus alkalmazások Kubernetes-re történő migrálásának árnyalatait, és reméljük, hogy ez értékes első lépés az utunkon. Mivel a folyamat viszonylag dokumentálatlan, azt tervezzük, hogy megosztjuk a levont tanulságokat, így mindenki profitálhat.