Archívum - Jan 30, 2016
Managing Programmers by Douglas Crockford at Silicon Valley Code Camp
Hogyan menedzseljünk hatékonyan egy fejlesztőcsapatot
■ Docker-el hogy megy a build & deploy?
Érdekelne, hogy mi a best practice, ha docker container-ben szeretném futtatni az alkalmazásom. Több kérdésem is van.
- Érdemes ugyanabba a container-be tenni az adatbázist szervert, mint az alkalmazást? Abból indulok ki, hogy a docker-nek az a lényege, hogyha elszáll egy container-rel egy alkalmazás, az nem zavarja a többit, és ugyanúgy futnak tovább. Ebből gondoltam, hogy nem jó, ha közös adatbázis szerver van, mert ha az elszáll, akkor magával rántja az összes alkalmazást. Arra gondoltam helyette, hogy minden alkalmazás kapjon dedikált szervert. Ebből meg már következett, hogy talán jó, ha minden alkalmazás kap egy container-t, aztán abba megy minden ilyen infrastruktúrális dolog is. Jól gondolom?
- Hogyan megy a tesztelés? Addig eljutottam, hogy a sebesség érdekében a fejlesztői gépen érdemes a unit meg integrációs tesztek egy részét lefuttatni, mielőtt az éles környezetre hasonlító container-ben tesztelném. Arra gondoltam, hogy minden commit előtt érdemes egy ilyen container-ben történő, valamivel lassabb teszt. Nem teljesen világos, hogy hogyan rakjam össze az image-t, ami az ilyen teszteket végzi majd.
- Az sem teljesen világos, hogy a tesztelés után hogyan kerül majd az éles környezetre a jól működő build-elt kód anélkül, hogy az éles környezetben lévő adatok elvesznének. Tippre le kell állítani az éles rendszer előző verzióját, megtartani a volume-t, ami az adatokat tárolja, backup-olni a volume-t, aztán elindítani az új verzió image-ét, és csekkolni, hogy minden okés e. Ez elég időigényes. Nekem mondjuk nem gond saját célra készülő alkalmazásoknál, de azért érdekel, hogy olyan környezetben mindez hogy zajlik, amiben nem lehet hosszabb megállás.
Jó lenne néhány támpont ezzel kapcsolatban. Egyelőre nagyon kezdő vagyok docker-ezésben. Ezek az elméleti kérdések érdekelnek, a gyakorlatban meg tudom valósítani a dokumentáció végignyálazásával.
■ - Érdemes ugyanabba a container-be tenni az adatbázist szervert, mint az alkalmazást? Abból indulok ki, hogy a docker-nek az a lényege, hogyha elszáll egy container-rel egy alkalmazás, az nem zavarja a többit, és ugyanúgy futnak tovább. Ebből gondoltam, hogy nem jó, ha közös adatbázis szerver van, mert ha az elszáll, akkor magával rántja az összes alkalmazást. Arra gondoltam helyette, hogy minden alkalmazás kapjon dedikált szervert. Ebből meg már következett, hogy talán jó, ha minden alkalmazás kap egy container-t, aztán abba megy minden ilyen infrastruktúrális dolog is. Jól gondolom?
- Hogyan megy a tesztelés? Addig eljutottam, hogy a sebesség érdekében a fejlesztői gépen érdemes a unit meg integrációs tesztek egy részét lefuttatni, mielőtt az éles környezetre hasonlító container-ben tesztelném. Arra gondoltam, hogy minden commit előtt érdemes egy ilyen container-ben történő, valamivel lassabb teszt. Nem teljesen világos, hogy hogyan rakjam össze az image-t, ami az ilyen teszteket végzi majd.
- Az sem teljesen világos, hogy a tesztelés után hogyan kerül majd az éles környezetre a jól működő build-elt kód anélkül, hogy az éles környezetben lévő adatok elvesznének. Tippre le kell állítani az éles rendszer előző verzióját, megtartani a volume-t, ami az adatokat tárolja, backup-olni a volume-t, aztán elindítani az új verzió image-ét, és csekkolni, hogy minden okés e. Ez elég időigényes. Nekem mondjuk nem gond saját célra készülő alkalmazásoknál, de azért érdekel, hogy olyan környezetben mindez hogy zajlik, amiben nem lehet hosszabb megállás.
Jó lenne néhány támpont ezzel kapcsolatban. Egyelőre nagyon kezdő vagyok docker-ezésben. Ezek az elméleti kérdések érdekelnek, a gyakorlatban meg tudom valósítani a dokumentáció végignyálazásával.