Hol futtassam a konténereimet fejlesztés közben?

A cikk borítóképe. Fotó a pixabay.com-ról

Konténer vagy sem, a fejlesztett weblapoknak kell egy hely, ahol azok futhatnak. Erről általánosan már írtam korábban a Teszt weblap elhelyezése című cikkben, ám konténereknél egy kicsit másképp működik a dolog. Amennyire én tudom, a teljesen ingyenes szolgáltatásokat rögtön ki is húzhatjuk a lehetőségek listájáról. Leszámítva a próbaverziókat. De akkor mik az alternatívák?

Itt is minden attól függ, mire van keret és persze mi a cél. Amíg csak otthon, fejlesztéshez kell, egyszerűbb megoldások is vannak. De mi van, ha fel kell készülni arra, hogy egy nap nem csak saját gépen kell jól működnie a programnak? Mivel a konténerek, mikroszervizek esetén a program különböző részei más-más konténerben és akár gépen lehetnek, ennek van jelentősége. Tanulási fázisában persze még nem ez a cél. Mutatom, miket érdemes ismerni.

Ingyenes Docker Playground

Bár állandó jelleggel használható ingyenes megoldásról nem tudok, van egy időlimittel ellátott játszótér, ahol el lehet indítani tetszőleges konténereket, meg lehet nyitni portokat a külvilág felé és így akár nyilvánossá is lehet tenni azokat ideiglenesen egy generált doménen keresztül. Az időlimit lejárta után viszont minden el fog tűnni. De nem is arra való, hogy ide különböző fájlokat másoljunk fel és tároljunk, így nem a legideálisabb aktív fejlesztés közben dolgozni rajta. Viszont elkészült image-eket le lehet tölteni és ki lehet próbálni az éleshez közelítő állapotban. Aki szeret parancssorban dolgozni, vagy máshogy megoldja a fájlok feljuttatását, kísérletezhet vele. De sok értelmét nem látom. Ráadásul időnként előfordul, hogy megszakad a kapcsolat a terminállal és onnantól akár percek alatt buktad az addigi munkát. Szóval ez tényleg csak egy játszótér, de arra kiváló ingyenes volta miatt.

Felhő szolgáltatások

Ha rászánod a pénzt, akkor a felhőszolgáltatók is képbe kerülnek, amiknél jó eséllyel lesz lehetőség Docker konténerekkel dolgozni, és ehhez különböző támogatást, felületet is adnak. Személy szerint még nem volt alkalmam ilyent igénybe venni, bár sokat szemeztem a Google Cloud-dal és az Azure-rel, de egyéb szolgáltatókkal is, de ezek a hozzám hasonló kisembernek drágák és nem is annyira egyszerűek. Egy idő után persze valószínűleg ez lesz az irány sokak számára, de nem biztos, hogy fejlesztési célra, ha másképp is megoldható.

Saját szerver

Elég nyilvánvaló, hogy bár a szakma képviselői erősen hajlanak a felhőszolgáltatók felé, a saját szerver még továbbra is ott van a sorban. Ha nincs szükség komolyabb infrastruktúrára, egy virtuális szerver még mindig olcsóbban beszerezhető. De lehetnek az igények túl speciálisak vagy annak véltek, de akár egy intézmény félhet az adatait kiadni a kezei közül. Ilyenkor kérdés, a szerverre telepíthető-e megfelelő operációs rendszer. Ha a VPS szolgáltató például nem ad olyan operációs rendszert, ami optimálisabb a Docker számára, akkor kompromisszumot kell kötni és a kevésbé optimális verzió is megfelelő lehet. Ha saját üzemeltetésű hardveren telepíthetsz, akkor ilyen korlátok nincsenek, viszont meg kell küzdeni egy sor olyan problémával, ami egy felhőszolgáltatónál eleve adott. Fejlesztés közben ez talán kevésbé kritikus, ezért arra mindenképp járható útnak tartom. A kérdések és problémák többsége az éles környezetben merül fel.

Saját gép

Fejlesztés közben a legegyszerűbb, ha a minden a saját gépen van. Különös lehet, hogy ezt állítom, mert pár éve még a virtuális gépek mellett érveltem, de az ilyenkor legfontosabb előnyeivel a konténerizáció is rendelkezik. Fontos, hogy ez akkor igaz, ha Linuxon Linux konténert, Windowson pedig Windows konténert futtatsz. Egyébként lesz a konténerek alatt egy virtuális gép, még ha azt nem is manuálisan kellett létrehozni.

Mivel minden tesztelt program egy önálló konténerben lesz, amiket bármikor könnyedén le lehet törölni, a gép teleszemetelése is kevésbé valószínű. Azért van, ami ilyenkor is el tud szaporodni, de erről majd egy későbbi fejezetben lesz szó.

Virtuális gép

Egyszerűbb esetekben a saját gép tökéletes hely a Dockernek, de előfordulhat, hogy fontos, milyen operációs rendszeren és konkrétan milyen Docker verzióval fog működni a készülő program. Az is lehet, hogy egy többgépes rendszert kell tesztelni, vagy a saját gép operációs rendszere eltér a konténerben indítandó program igényétől. Egy Windowsos IIS szerver nem fog elindulni Linuxon, ahogy egy Linuxos Apache HTTPD sem fog menni Windows rendszeren. Ilyenkor szükség van virtuális gépre, de ezt képes az adott oprendszeren telepíthető Docker elrejteni a felhasználó elől. Persze, csak részben, mert bizonyos esetekben nem mindegy, hogy van VM vagy nincs.

Hibrid megoldás Docker Cloud-dal

A Docker Cloud egy admin felületet nyújt a konténerke kezelésére, de az alkalmazások helye választható. Lehet az egy felhőszolgáltatónál, vagy saját szerveren is. Ezek fizetős szolgáltatások, de egy darab saját szerver kezelése ingyenes. Ezért hívom ezt hibridnek, mert így van külső szolgáltatásként működő admin felület, de ettől még saját szerver is lehet a konténerek helye.

Kategóriák: 
Megosztás/Mentés