A szoftverfejlesztésben a CI/CD vagy a Continuous Integration/Continuous Delivery folyamatok segítenek a kód felépítésében és különböző környezetekben történő telepítésében egy automatizált folyamaton keresztül.
Ennek a folyamatnak a létrehozása és karbantartása azonban önmagában is kihívást jelenthet. Írja be a csővezetéket kódként – egy olyan megközelítés, amellyel a teljes CI/CD folyamatot kódformátumban hozza létre. Ahelyett, hogy a webes felhasználói felületekre és a fogd és vidd eszközökre hagyatkozna, konfigurációs fájlokat használ az alkalmazáskód felépítésének, tesztelésének és telepítésének meghatározására.
Mielőtt azonban rátérnénk a Pipeline as Code részleteire és arra, hogy hogyan építheti fel a sajátját, először értsük meg, mi is pontosan a folyamat.
Tartalomjegyzék
Mi az a Pipeline a szoftverfejlesztésben?
A szoftverfejlesztés folyamata automatizált lépések sorozata, amelyek elvégzik a legújabb kódmódosításokat, meghatározott folyamatokat futtatnak rajta, és telepítik azt a választott környezetben. Értsük meg ezt jobban egy példával.
Képzelje el, hogy három mikroszolgáltatása van, és az egyikhez új funkciókat adott hozzá. Most le szeretné futtatni a kódszintű egységteszteket. Amint áthaladnak, ellenőriznie kell a kód formázásával kapcsolatos problémákat is. Ezután meg szeretné építeni a kódot. Ezt követően két különböző környezetbe kívánja telepíteni, mindegyik környezetben több géppel. Végül érdemes integrációs teszteket futtatni, hogy megbizonyosodjon arról, hogy a változtatások szinkronban vannak a többi szolgáltatással.
Dönthet úgy, hogy a fenti lépéseket manuálisan hajtja végre. De ez sok időt vesz igénybe, és hajlamos lesz a hibákra. Szóval van mód ezek automatizálására? Igen! Létrehozhat egy folyamatot, és meghatározhatja az összes lépést. Ezt követően minden alkalommal, amikor módosítja a kódot, elindíthatja a folyamatot, és nem kell aggódnia a manuális lépések miatt.
A Pipeline mint kód előnyei
Ha olyan eszközöket használ, mint a fogd és vidd, akkor nehéz lesz követni a változásokat, fenntartani a szabványosítást vagy elősegíteni az együttműködést. A Pipeline as Code jobb módja a szoftverfejlesztési folyamat meghatározásának.
Segít megőrizni a dolgok következetességét. Az automatizálás elősegítésével megismételhetőséget érhet el, és ugyanazt a folyamatot használhatja más rendszerekhez is. Az alkalmazáskódhoz hasonlóan a folyamat meghatározásához használt kód is elősegíti az együttműködést.
#1. Következetesség
A szöveges formátumban való meghatározás biztosítja, hogy semmi sem történjen rendellenesen. Ha szabványos munkafolyamatot kényszerít ki az összes alkalmazás-felépítésre és telepítésre, akkor konzisztens lesz, és csökkenti a váratlan problémák kockázatát.
És a következetességgel megfelelőségi ellenőrzéseket és biztonságot is kap. A konzisztens folyamat biztosítása lehetővé teszi a biztonsági ellenőrzések és a sebezhetőségi ellenőrzések meghatározását úgy, hogy semmi sem kerülhet el.
#2. Ismételhetőség
Hozza létre a folyamatot, és állítsa be az automatizálást. A következetesség mellett az automatizált folyamat biztosítja, hogy minden alkalmazáskód ugyanazokon a szakaszokon és ellenőrzéseken megy keresztül.
A kód minden alkalommal ugyanazon a felépítési és telepítési folyamaton megy keresztül, amikor futtatja a folyamatot. Megőrizheti az ismételhetőséget az összes futás során.
#3. Együttműködés
Mivel a kód az a médium, amellyel létrehozza a folyamatot, elősegíti az együttműködést. A csapaton belül több ember is hozzájárulhat ugyanahhoz a kódhoz, akárcsak az alkalmazáskódhoz.
A Pipeline as Code azt is lehetővé teszi, hogy fenntartsa a verziókezelést, és engedélyezze a kód felülvizsgálatát. Ez biztosítja a legjobb gyakorlatok követését, és a lehetséges problémák korai felismerését.
Most nézzük meg, hogyan hozhat létre saját folyamatot a Pipeline as Code használatával.
Pipeline mint kód a Jenkinsben
Ha a folyamatos integrációs és folyamatos üzembe helyezési (CI/CD) rendszerekről van szó, Jenkins a vezető nyílt forráskódú automatizálási szerver. A Jenkins segítségével könnyedén integrálhatja kódmódosításait, automatizálhatja a tesztelést és az összeállítást, valamint telepíthet szoftvereket. Mindezt pedig megbízhatóan és hatékonyan megteheti.
Akár hobbi, aki többet szeretne megtudni az automatizálási csővezetékekről, akár összetett vállalati rendszereket épít, a Jenkins megfelel projektje minden egyedi követelményének. A rengeteg bővítmény és az egyre növekvő közösség segíthet abban, hogy a legtöbbet hozza ki automatizálásából.
A Jenkins-ben a Pipeline egy meghatározott sorrendben meghatározott különféle bővítmények halmaza, amely létrehozza a CI/CD rendszert. Legyen szó egyszerű vagy összetett használati esetekről, létrehozhatja a folyamatot a kóddal a Pipeline domain-specific language (DSL) szintaxis. A DSL ráépült Apache Groovy.
A Pipeline as Code alapja a Jenkinsben az Jenkinsfile – egy szöveges fájl, amely tartalmazza az összes különböző szakaszt és műveletet leíró kódot. Tanuljuk meg, hogyan hozhatja létre a folyamatot kódként a Jenkinsfile segítségével.
Hogyan hozhatjuk létre a Pipeline-t kódként?
A Jenkins telepítése és elindítása után navigáljon a webes felhasználói felületre a böngészőjében. Lehet, hogy be kell jelentkeznie. Ezután az irányítópult főoldalára kerül. Innen fogod kezdeni, és létrehozod a csővezetékedet.
Kezdjük egy egyszerű folyamattal, amelyet közvetlenül a felhasználói felületről konfigurálhat.
Hozzon létre Pipeline-t kódként közvetlenül a Jenkinsben
Miután a Pipeline szakaszban van, készen áll az első folyamat létrehozására kódként.
A Definíció legördülő menüből válassza a Pipeline script opciót. Alatta található egy Script terület, ahol kódolhatja a folyamatot. Jenkins fenntartja az itt létrehozott forgatókönyvet.
A Jenkins lehetővé teszi, hogy két kódolási stílus vagy szintaxis közül válasszon – deklaratív szintaxis és parancsfájl-szintaxis. Míg a Declarative könnyen használható, és ideális az egyszerű folyamatokhoz, a Scripted Syntax a hatékony felhasználóknak és az összetett folyamatok tervezésének való.
A deklaratív szintaxis használatával hozzon létre 3 egyszerű lépést – Build Code, Test Code és Deploy Code a következő kódrészlet segítségével:
pipeline { agent any stages { stage('Build Code') { steps { echo 'This is the step for build...' } } stage('Test Code') { steps { echo 'This is the step to test...' } } stage('Deploy Code') { steps { echo 'This step deploys the code...' } } } }
Használhatja a szkriptelt szintaxist is, az alábbiak szerint:
node { stage('Build Code') { echo 'This is the step for build...' } stage('Test Code') { echo 'This is the step to test...' } stage('Deploy Code') { echo 'This step deploys the code...' } }
Kattintson a Mentés gombra. Most kattintson a bal oldali panelen található Építés most gombra. Ez elindítja az imént létrehozott folyamatot.
Ha a folyamat befejeződött, ellenőrizheti azt az Összeállítási előzményekben. Ha ez az első futtatása, kattintson a jelenlévő #1 build-re. Ezután kattintson a bal oldali panelen található konzolkimenetre. Minden szakaszban megtalálja azt a 3 visszhang-utasítást, amely a folyamatkódban van.
Hozzon létre Pipeline-t kódként egy külső fájl segítségével
Kihívást jelent közvetlenül a Jenkinsben karbantartani a csővezetéket, amikor az kezd bonyolulttá válni. Ebben az esetben létre kell hoznia egy külső fájlt, és használnia kell.
A Jenkins-folyamat létrehozása előtt szüksége van egy külső tárolóra és egy verziókezelő rendszerre. Hozzon létre egy Git-tárat, és távolról üzemeltesse a GitHubon. Létrehozza a Jenkins-fájlt, és eltárolja itt.
pipeline { agent any stages { stage('Build Code') { steps { echo 'This is the step for build defined in custom file...' } } stage('Test Code') { steps { echo 'This is the step to test defined in custom file...' } } stage('Deploy Code') { steps { echo 'This step defined in custom file deploys the code...' } } } }
Létrehozott egy távoli adattárat a GitHubon, amely egy egyéni Jenkins-fájlt tartalmaz. Állítsuk be a Jenkinst ennek használatára.
Konfigurálja a Jenkinst a GitHubból származó Jenkinsfile használatára
Ezt követően futtassa a csővezetéket. A Jenkins először lekéri a kódot a távoli tárolóból. Ezután létrehoz egy folyamatot az egyéni Jenkinsfile segítségével, és futtatja az összes szakaszt.
Sikeresen létrehozta saját szoftverfejlesztési folyamatát a Pipeline as Code használatával. Ezenkívül engedélyezte a verzióvezérlést a folyamat-szkriptben. A folyamatkódban végrehajtott bármilyen módosítás nyomon követhető minden Git-commit során. Ezután ideje áttekinteni a legjobb gyakorlatokat.
A hatékony csővezeték kódként való írásának legjobb gyakorlatai
Nézzük meg azokat a bevált módszereket, amelyeket követnie kell a Pipeline kódként történő megírásakor.
- Tartsa tisztán a folyamatot, és ne írjon túl sok összetett feltételt.
- Ha túl sok parancsot ad meg a folyamatban, bontsa fel őket különböző lépésekre.
- Használjon külső fájlokat a Pipeline verzióvezérléssel kódszkriptként.
- Használja ki a kódolási nyelv szolgáltatásait, például a Groovy-t a különböző lépések integrálásához.
- Kerülje a Jenkins.getInstance vagy hozzáférőinek hívásait a biztonsági és teljesítményproblémák enyhítése érdekében.
- Ne írja felül az olyan beépített folyamatparancsokat, mint az sh és az időtúllépés.
- Hozzon létre külső eszközöket vagy szkripteket az összetett CPU-igényes feladatokhoz, és csatlakoztassa őket a folyamathoz.
- Használja ki a Jenkins számára elérhető bővítmények széles választékát, hogy megbirkózzon az Ön használati esetével.
- Győződjön meg róla, hogy beépítette a kivétel- és hibakezelést, mert a dolgok rosszul sülhetnek el.
- Ne tegye a Pipeline-t kódként szorosan összekapcsolva sok üzleti logikával.
- Használjon paraméterezett argumentumokat, ahol csak lehetséges, hogy a folyamat újrafelhasználható legyen.
Pipeline mint kód: egyszerű megközelítés összetett folyamatokhoz
Összefoglalva, a Pipeline as Code leegyszerűsíti a CI/CD folyamat automatizálását azáltal, hogy a teljes folyamatot kódként jeleníti meg. Míg a CI/CD folyamatok automatizálják a kódváltozások felépítését, tesztelését és telepítését, a Pipeline kódként való kihasználása egy lépéssel tovább visz. Lehetővé teszi a munkafolyamat szöveges meghatározását, ahelyett, hogy grafikus felületekre hagyatkozna.
A Pipeline as Code használatával biztosítja, hogy a munkafolyamat minden lépése a megfelelő sorrendben történjen. Csökkenti a nem kívánt problémák kockázatát. Ezenkívül számos előnnyel jár – beleértve a következetességet, az ismételhetőséget és az együttműködés elősegítését.
Az útmutató segítségével most már tudja, hogyan hozhat létre saját csővezetékeket a Jenkins, egy széles körben használt CI/CD eszköz segítségével. A Jenkins hatékony és rugalmas platformot kínál a Pipeline kódként való megvalósításához a Jenkins-fájlon keresztül. Kövesse a bevált gyakorlatokat, és hozzon létre munkafolyamatokat, amelyek kezelik a folyamat összes használati esetét.
Ha többet szeretne megtudni a Jenkinsről, nézze meg, hogyan hozhatja létre saját Jenkins-csővezetékét.