Hogyan dolgozom? 1. rész
Célul tűztem ki, hogy megtalálom az ultimate webfejlesztői workflow-t, ami idő- és erőforráskímélő, ami kényelmes és kiszámítható, amivel a legkevesebb felesleges köröket futom, egyszóval: a leghatékonyabbat. Ebben a sorozatban pedig bemutatom, hogy mire jutottam - 1 rész.
Amikor nekiálltam weboldalakat készíteni, nagyon sokáig a következő munkafolyamatot követtem:
- 1. CMS letöltése, kitömörítése egy helyi mappába
- 2. A hely mappa tartalma feltöltése Filezillával a szerverre
- 3. CMS beállítása a (távoli) szerveren, a szükséges kiegészítők telepítése, sablon telepítése és kiválasztása
- 4. Tartalomfeltöltés, etc.
- 5.0. Szükséges változtatás a sablonban --> itt kezdődött a projekten belüli időrabló loop, ugyanis:
- 5.1. fájl kikeresése és megnyitása: ekkor a Filezilla letöltötte, és megnyitotta szerkesztésre
- 5.2. változtatás megtörtént, mentés (CTRL-S)
- 5.3. ALT-Tab a Filezillára, változtatás feltöltése
- 5.4. ALT-Tab a böngészőre, változtatás ellenőrzése
- 5.5. ugrás az 5.0 pontra
Később elmozdultam abba az irányba, hogy a gépemre telepítettem VirtualBoxot, azon belül pedig egy másik Ubuntut, majd ezen belül webszervert. Ez a felosztás segített tisztán és hatékonyan tartani az alaprendszert, függetlenedtem a tárhelyszolgáltató által biztosított tárhelytől, és nem futottak akkor a folyamatok, amikor nem volt rájuk szükség. Megoldotta az FTP-s feltöltés kérdését - minden adat a gazdagépen volt, a virtuális gép megosztott mappával látta a fájlokat. Ez egy elég jó megoldásnak tűnt, elég jól is működött, de egy idő után kezdett macerás lenni, hogy minden új projektnél beállítások garmadáját kell végrehajtani (valójában nem volt garmada, csak hát kerestem egy kényelmesebb megoldást ;))
Ezt követően találtam meg a Dockert. Hááát, ez valami nagyon jó cucc! A koncepció az, hogy olyan előrecsomagolt konténerekkel dolgozunk, amik önmagukban elfutnak, de csak annyi a tartalmuk, amennyi az adott feladat ellátáshoz szükséges, miközben mindezt úgy éri el, hogy a virtualizált környezet "közvetlen" hozzáférést kap a gazdagép hardverelemeihez. Látható, hogy ebben az esetben teljesen kiküszöböltük a virtualizált hardverhez szükséges plusz erőforrás-felhasználást, ami a VirtualBoxos megoldásnál jelentős overheadet jelentett.
További előnye, hogy előre elkészített receptekkel nagyon bonyolult infrastruktúrák is felépíthetők egy darab (!) szöveges fájl segítségével. Jelenleg ahhoz, hogy például egy Wordpress projektnek neki tudjak állni, összesen annyi a dolgom, hogy a projekt üres mappájába másolom a receptfájlt, és ezt követően terminálban kiadom a
parancsot, majd... Nem, nincs majd, ennyi. Mindent beállít, letölt, és máris ugorhatok a WP "5 perces telepítőjére" (és ott is csak nyelvet kell választani, az adatbázis-adatokat automatikusan kitölti).
Az eredetileg felvázolt folyamat tehát most a következőképpen néz ki:
- 1. Helyi mappa létrehozása, receptfájl bemásolása
- 2. docker-compose up -d
CMS beállítása a (távoli) szerveren, a szükséges kiegészítők telepítése, sablon telepítése és kiválasztása- 3. Tartalomfeltöltés, etc.
- 4.0. Szükséges változtatás a sablonban --> itt kezdődött a projekten belüli időrabló loop, ugyanis:
- 4.1. fájl kikeresése és megnyitása: ekkor a Filezilla letöltötte, és megnyitotta szerkesztésre
- 4.2. változtatás megtörtént, mentés (ctrl-s)
- 4.3. alt-tab a filezillára, változtatás feltöltése
- 4.4. alt-tab a böngészőre, változtatás ellenőrzése
- 4.5. ugrás az 4.0 pontra
Ahogy a felsorolásból látható, az eddig leírtak az 1-3. pontokra adtak - eddig számomra roppant megnyugtató és kielégítő - megoldást. A következő részben a 4. pont és alpontjai egyszerűsítésére mutatok egy nagyon jó megoldást.