Build cluster docker alapokon

Fórumok

Sziasztok,

Van pár különböző termékünk, természetesen saját build-del. Vannak projektek java, c# , c++ alapokon. Mindegyik projektnek saját CI/CD-je.

Arra gondoltam hogy (első lépésben)a build-et lehetne egy pool-ból csinálni. A terv az , hogy minden csapat build-jét konténerizálom (ez már részben sikerült)
és egy közös poolon fogom futtatni őket.

Most azon töprengek kell-e , és ha igen melyik container orchestrator platform.

- Talán hagyni az egészet container orchestration nélkül és mindegyik CI-ba bekötni a hostokat?
- Esetleg Docker Swarm amit elvileg tök egyszerű belőni de olyat hallottam hogy a Docker is inkább Kubernetes irányba menne
- Kubernetes? - Nem érzem hogy erre a célra Kubernetes lenne a legjobb. Az nekem inkább microservice alapú szolgáltatás update/HA megoldására jó-
- DC/OS.Itt meg aztán annyi rész van , hogy nem győzöm kapkodni a fejem. Mesos, Marathon...

Valakinél valami tapasztalat hasonló céllal?

Hozzászólások

Viszonylag kevés tapasztalat a teljes területen, de nálunk: Openshift keretek közt mennek buildek.
Bizonyos dolgokat a gitlab buildel, bizonyos dolgokat az Openshift/Jenkins. Leginkább azokat, ahol az elvárt végeredmény egy docker image, amit aztán a többi Openshiftben futtatunk.
Vannak nyűgök az Openshittel néha, de azt is meg kell hagyni a másik oldalról, hogy sok terhet levesz az ember válláról!

Sajnos (lehet az én gondom) de nem derült ki számomra egyértelműen, mi lenne a végső célod a docker cluster-el? Nagyobb terhelés elsoztása, kiszolgálása? Kizárólag CI/CD build? Konténer orchestration - itt említetted a Kubernetes-t, Swarm-ot. A K8s nem kizárólag microservice-re jó, igazából mindegy is neki mi fut a konténereken belül, a legnagyobb előnye hogy nem neked kell scriptelni, managelni, erőforrásokat elosztani a konténereket futtató host gépek között, leveszi a válladról a súlyt - és még sokmindent megold - nem mellesleg kiforrottab mint a Swarm. A CI/CD, Jenkins, Bamboo is csak script kérdése hogy mit buildel és ezt párhuzamosan teszi, vagy egymásután, elosztva vagy local, akár Docker image-ket, vagy artifactokat, szóval nem teljesen egyértemű mi lenne a célod: a docker-el (miért is kell?), a CI/CD-vel és az orchestration-el.

Első körben a célom egy jobb hw kihasználtság lenne.
Most kb minden projekt ül a vm-ek fölött amik a saját projektjükre vannak konfigurálva és szerintem jobban ki lehetne használni őket (Pl a mi gépeinken buildelhetnének az USA-ban egy másik projekttel ameddig mi alszunk és fordítva)
Szeretném az összes hw-t amit most buildekre használnak egy nagy poolba betenni.

Docker arra kell, hogy kompakt build környezeteket csináljak és elkerüljem a build hostok szofisztikált beállításait.

A másik cél az lenne még, hogyha esetleg nem elég a HW akkor pl fel lehessen skálázni az Azure-ba ezért arra gondoltam hogyha a build envek dockerben vannak akkor egyszerűbb dinamikusan elkészíteni a szükséges konténereket docker alapon.

nézd meg a GitLab saját CI-jét, nagyon jó és támogatja a docker-el való buildelést. Ezzel meg tudod oldani, hogy teljesen külöböző dependeciájú cuccok tudnak lefordulni ugyanazon a fizikai worker-en, konténerben.

A leirasok alapjan, de, neked egy kubernetes kell.
Fut mindenhol AWS(self-managed), Google(cloud-managed), Azure(nemtom meg, de majd ez is meglesz :D )

Megcsinalod a Pod-jaidat (per build env?) es szepen autoscale-li magat ahogy kell, ha kell.

Millio kis csilligany(copyright by hajasblezer) UI van hozza, ha mutogatni akarod a felsovezetesnek.