Fejlesztési és CI/CD folyamatok gyorsítása Daggerrel
Az AWS, illetve szakmai partnerei, a Devertix és az Ingram Micro által szervezett webinár-sorozatban ezúttal a Daggerről beszélt Sági-Kazár Márk, Cloud Native Ambassador. Az alábbiakban az előadás legfontosabb témáiról olvashattok, a cikk végén pedig meg is nézhetitek a webinárt.
Miért kell a Dagger?
A Dagger egy új megközelítést kínál a CI/CD és DevOps területén. A projekt célja, hogy áthidalja a fejlesztői környezet és CI pipeline-ok közötti szakadékot, miközben jobb fejlesztői élményt biztosít. De először nézzük meg, mi hívta életre a Daggert!
A jelenlegi CI/CD környezet kihívásai
Pipeline komplexitás növekedése:
- az egyszerű kezdeti buildek idővel egyre összetettebbé válnak,
- új ellenőrzések, linterek, biztonsági scannerek kerülnek be,
- a növekvő komplexitás nehezíti a karbantarthatóságot.
A fejlesztői környezet és CI platform szétválása:
- A CI környezet és a lokális fejlesztői környezet eltérően működik.
- Verzióeltérések alakulnak ki.
- Nehéz biztosítani az azonos verziókat mindkét környezetben.
"Push and Pray" jelenség
- A fejlesztők nem tudják lokálisan futtatni az összes ellenőrzést.
- Hosszú visszajelzési ciklus alakul ki.
- A változtatások tesztelése időigényes és kockázatos.
A dokumentáció és a tudásátadás problémái
- A komplexitás miatt nehéz dokumentálni a rendszert.
- "Tribal knowledge" alakul ki.
- Az új fejlesztők nehezen tudnak csatlakozni.
A Dagger megoldása
Natív nyelvi SDK-k
- Támogatott nyelvek: Go, TypeScript, Python (Rust és C# fejlesztés alatt).
- A CI pipeline-ok írása a fejlesztők által preferált programozási nyelven.
- Teljes értékű programozási nyelv előnyeinek kihasználása (elágazások, függvények).
Újrafelhasználható modulok
- Pipeline részek megosztása projektek között.
- Cross-language támogatás (GraphQL alapú kommunikáció).
- Központi modul registry (Dagger words).
- Különböző csapatok különböző nyelveken írhatnak és használhatnak modulokat.
Hordozhatóság
- Ugyanaz a pipeline futtatható lokálisan és CI környezetben.
- Docker/Buildkit alapú működés.
- Egyszerű CLI eszköz a pipeline-ok futtatásához.
- Konténerizáció biztosítja az izolációt és hordozhatóságot.
Előadása végén Márk röviden be is mutatta, hogy mindez mit jelent a gyakorlatban.
Nézd meg az egész előadást itt: