Mi az a tároló?
Az alkalmazások szabványosított, hordozható csomagolása.
A tárolók ismertetése
Ahogy a szállítási iparágak fizikai tárolókkal különítik el a különböző szállítmányokat egymástól – például a hajókon és vonatokon –, a szoftverfejlesztési technológiák is egyre szélesebb körben alkalmazzák a konténerizációnak nevezett megközelítést.
Egy standard szoftvercsomag – más néven tároló – egy alkalmazás kódját egyesíti a kapcsolódó konfigurációs fájlokkal, kódtárakkal és az app futtatásához szükséges függőségekkel. Így a fejlesztők és az informatikai szakemberek gördülékenyen helyezhetnek üzembe alkalmazásokat különböző környezetekben.
A tárolók fontossága
Az a probléma, hogy egy alkalmazás nem működik, ha egyik környezetből egy másikba helyezik, egyidős magával a szoftverfejlesztéssel. Az ilyen problémák általában a rendszerek kódtárkövetelményeinek és egyéb függőségeinek különböző konfigurációi miatt jelentkeznek.
A tárolók ezt a problémát úgy kezelik, hogy egyszerű, nem módosítható infrastruktúrát biztosítanak az alkalmazások csomagolásához és üzembe helyezéséhez. Egy alkalmazás vagy szolgáltatás, annak függőségei és a hozzá tartozó konfiguráció egybe van csomagolva egyetlen tárolóképként. A tárolóba csomagolt alkalmazás egyetlen egységként tesztelhető, és tárolólemezkép-példányként helyezhető üzembe a gazdagép operációs rendszerén.
Így a tárolók lehetővé teszik a fejlesztők és az informatikai szakemberek számára, hogy kevés vagy akár nulla módosítással helyezzenek üzembe alkalmazásokat különböző környezetekben.
További információ a tárolók fejlesztéséről és szépségeiről.
A tárolók és a virtuális gépek összevetése
Amikor az emberek a virtualizációra gondolnak, erről gyakran a virtuális gépek jutnak az eszükbe. Valójában azonban a virtualizáció többféle formát is ölthet, és a tárolók ezek egyike. Mi a különbség a virtuális gépek és a tárolók között?
A virtuális gépek lényegében a gépek alapjául szolgáló hardvereket virtualizálják, hogy az operációs rendszerek több példánya is futtatható legyen az adott hardveren. Minden virtuális gép egy operációs rendszert futtat, és a hardvert jelképező virtualizált erőforrásokhoz fér hozzá.
A virtuális gépek számos előnnyel rendelkeznek. Ezek közé tartozik a különböző operációs rendszerek ugyanazon kiszolgálón való futtatásának, a fizikai erőforrások hatékonyabb és gazdaságosabb kihasználásának, valamint a kiszolgálók gyorsabb üzembe helyezésének a lehetősége. Emellett azonban minden virtuális gép tartalmazza az operációs rendszerek rendszerképét, könyvtárait, alkalmazásait és egyebeket, így meglehetősen nagy méretűek lehetnek.
A tároló virtualizálja az alapul szolgáló operációs rendszert, így a konténerizált app úgy észleli, hogy az operációs rendszer – beleértve a CPU-t, a memóriát, a fájltárolót és a hálózati kapcsolatokat – mind a rendelkezésére áll. Mivel az alapul szolgáló operációs rendszer és az infrastruktúra eltérései el vannak különítve, amíg az alaprendszerkép változatlan, a tároló bárhol üzembe helyezhető és futtatható. A fejlesztők számára ez hihetetlenül vonzó.
Mivel a tárolók közösen használják a gazdagép operációs rendszerét, nem szükséges rendszerindítást végezniük vagy kódtárakat betölteniük. Ez lehetővé teszi, hogy a tárolók sokkal hatékonyabbak legyenek alacsony erőforrásigény mellett. A konténerizált alkalmazások másodpercek alatt elindíthatók, és az alkalmazás sokkal több példánya futtatható ugyanazon a gépen a virtuális gépes megoldáshoz képest. A megosztott operációs rendszer előnye, hogy a karbantartás – például a javítások és a frissítések – alacsonyabb erőforrásigényt jelent.
Bár a tárolók hordozhatók, csak a meghatározott operációs rendszeren futtathatók. A Linux-tárolók például nem futtathatók Windows rendszeren, és fordítva.
Miért érdemes a tárolókat választani?
Rugalmasság
Amikor a fejlesztők az alkalmazásaikat létrehozzák és tárolóba csomagolják, majd átadják azokat az informatikai csapatnak, hogy szabványosított platformon futtassák, ezzel csökkentik az alkalmazások üzembe helyezésének munkaigényét, valamint leegyszerűsítik a teljes fejlesztési és tesztelési ciklust. Ez a fejlesztési és üzemeltetési csapatok közötti együttműködést és hatékonyságot is növeli, így az appok gyorsabban kiadhatók.
Hordozhatóság
A tárolók szabványos formátumot biztosítanak a kívánt alkalmazás futtatásához szükséges összes összetevő becsomagolásához és tárolásához. Ez megoldja a „de az én gépemen működik” gyakran visszatérő problémáját, és lehetővé teszi az operációs rendszerek és a felhők közötti hordozhatóságot. Amikor valahol üzembe helyeznek egy tárolót, az egy konzisztens környezetben fog futni, amely változatlan lesz az egyes üzembe helyezésekben. Ezáltal a fejlesztőktől kezdve az éles környezetig bezárólag azonos formátumot használhatnak.
Gyors méretezhetőség
Mivel a tárolók nem rendelkeznek a virtuális gépek szokásos erőforrásigényével, beleértve a különálló operációsrendszer-példányokat, így ugyanazon az infrastruktúrán több tároló is használható. A tárolók egyszerű jellege azt jelenti, hogy gyorsan elindíthatók és leállíthatók, így az aktuális igényeknek megfelelően akár felfelé, akár lefelé gyorsan skálázhatók.
Használati esetek
Natív felhős alkalmazások
A natív felhős alkalmazások a tárolók segítségével érnek el közös működési modellt a különböző – például a nyilvános, a privát és a hibrid – környezetekben. A tárolók alacsony erőforrásigénye és nagy sűrűsége lehetővé teszi, hogy ugyanazon a virtuális gépen többet is üzemeltethessenek, valamint ezeknek a tulajdonságoknak köszönhetően a tárolók ideálisak a natív felhős alkalmazások szolgáltatásához.
Átemelés
Egy szervezet számára jelentős előnyökkel járhat a felhőbe való migrálás, de előfordulhat, hogy nem szeretnék újraírni egy meglévő alkalmazásukat. Tárolók használatával a kód módosítása nélkül is migrálhatja az alkalmazásokat a felhőbe.
Batch
A parancsfájl végrehajtása olyan tevékenységeket jelöl, amelyeket emberi beavatkozás nélkül, vagy az elérhető erőforrásokat felhasználva lehet elvégezni. Ilyenek például a jelentéskészítés, a képek átméretezése, és a fájlkonvertálás egyik formátumból a másikba. A tárolók segítségével a kötegelt feladatok egyszerűen futtathatók anélkül, hogy a környezetet és a függőségeket kezelni kellene. Az olyan dinamikus számítási lehetőségekkel, mint például az Azure Container Instances (ACI), hatékonyan töltheti be és dolgozhatja fel a forrásadatokat, majd mentheti azokat egy tartós tárba, például Azure Blob Storage szolgáltatásba. A statikusan kiépített virtuális gépek helyett egy ilyen megoldás másodpercalapú számlázással történő ötvözésével jelentős mértékű költségmegtakarítást érhet el.
Gépi tanulás
A gépi tanulás algoritmusok segítségével elemzi az adatokat, és az adatokban található minták alapján előrejelzéseket készít. A tárolók a gépi tanulási alkalmazásokat önállóvá és bármilyen környezetben könnyen skálázhatóvá tehetik.
Több mint tárolás
Vezénylés
A tárolók ipari méretekben való futtatásához az elosztott, tárolóalapú alkalmazások vezénylése és kezelése szükséges egy olyan vezénylési platformon keresztül, mint például a Kubernetes.
Biztonság
A tárolók többrétegű megközelítést igényelnek a tárolólemezképtől a fürtelkülönítésig. Ezeket a védőkorlátokat a CI/CD-folyamatokkal a legmegfelelőbb konfigurálni.
Kiszolgáló nélküli tárolók
A tárolókkal szükség szerint tovább növelheti a rugalmasságot. A kiszolgáló nélküli tárolótechnológiák használatával könnyedén futtathat tárolókat a kiszolgálók, illetve a Kubernetes-fürtök adatlöketeinek kezelése nélkül, ha a forgalom időszakonként ugrásszerűen megnő.
DevOps
A tárolók lehetővé teszik a fejlesztők számára a szoftverek és a függőségek megosztását a különböző informatikai és működési környezetekben. Ezeket DevOps-eljárásokkal kombinálva hatékonyan gyorsíthat a kódkiadáson, és lerövidítheti a szoftverfejlesztési ciklusokat.