Automatizálás kiépítése
Az automatizálás kiépítése a szoftverkészítés és a hozzá kapcsolódó folyamatok automatizálásának folyamata, ideértve a számítógépes forráskód bináris kódba történő összeállítását, a bináris kód csomagolását és az automatikus tesztek futtatását.
Áttekintés
[szerkesztés]A történelem során az építkezés automatizálása makefilek segítségével valósult meg. Ma az eszközöknek két általános kategóriája van:
- Build-automatizálási segédprogram
- Ez magában foglalja a közművek, mint a Make,Rake, Cake, MSBuild, Ant, Maven vagy Gradle (Java) stb. Elsődleges céljuk, hogy build összetevőket hozzanak létre olyan tevékenységeken keresztül, mint a forráskód összeállítása és összekapcsolása.
- Build-automatizálási kiszolgálók
- Ezek olyan általános webalapú eszközök, amelyek ütemezett vagy aktivált alapon hajtják végre a build-automatizálási segédprogramokat; a folyamatos integrációs kiszolgáló egyfajta build-automatizálási kiszolgáló.
Az automatizálás szintjétől függően a következő besorolás lehetséges:
- Makefile - szint
- Make-alapú eszközök
- Nem Make alapú eszközök
- Build szkript (vagy Makefile) generációs eszközök
- Folyamatos integrációs eszközök
- Konfigurációkezelő eszközök
- Meta-build eszközök vagy csomagkezelők
- Egyéb
Az egyes szoftverek listája megtalálható a build automatizációs szoftver listájában.
Build-automation segédprogramok
[szerkesztés]A build automatizálási segédprogramok egyszerű, megismételhető feladatok automatizálását teszik lehetővé. Az eszköz használatakor kiszámítja, hogyan érheti el a célt a feladatok megfelelő, meghatározott sorrendben történő végrehajtásával és az egyes feladatok futtatásával. Az eszközök eltérő két módja a feladatorientált és a termékorientált. A feladatorientált eszközök a hálózatoknak egy adott meghatározott feladatban való függőségét írják le, a termékorientált eszközök pedig az általuk előállított termékeket.
Build-automatizálási kiszolgálók
[szerkesztés]Bár a build szerverek már jóval a folyamatos integrációs kiszolgálók előtt léteztek, általában a folyamatos integrációs kiszolgálók szinonimái, azonban a build szerver is eggyé válhat egy Application-Release Automation (ARA) eszközben, vagy Application Lifecycle Management (ALM) eszközben.
Szerver típusok
- Igény szerinti automatizálás, mint ahogy egy felhasználó futtat egy parancsfájlt a parancssorban.
- Ütemterv szerinti automatizálás, úgy mint, egy éjszaka alatt lefutó build, amit egy folyamatos integrációs (CI)[1] szerveren futtatunk.
- Esemény aktivált automatizálás, úgy mint egy folyamatos integrációs szerveren lefutó build, ami minden commit után egy verzió-ellenőrző rendszeren keresztül fut le.
Elosztott build-automatizálás
[szerkesztés]Az automatizálás a fordító farmolásával érhető el az elosztott összeállításhoz vagy a közüzemi lépés végrehajtásához. Az elosztott buildelő folyamatnak gépi intelligenciával kell rendelkeznie az elosztott build végrehajtásához szükséges forráskód-függőségek megértéséhez.
A folyamatos kézbesítés (CD)[2] és a folyamatos integráció (CI) kapcsolata
[szerkesztés]A build automatizálás az első lépés a folyamatos kézbesítés és a DevOps kultúrájának megvalósítása felé. Az automatizálás tanúsítása folyamatos integrációval, telepítéssel, alkalmazás-kiadás automatizálással és sok más folyamattal segíti a szervezet előre mozdítását a szoftverkézbesítésre vonatkozó bevált gyakorlatok létrehozásában.
Előnyök
[szerkesztés]A szoftverfejlesztési projektek build automatizálásának előnyei:
- A folyamatos integrációnak és a folyamatos tesztelésnek szükséges előfeltétele.
- A termék minőségének javítása.
- Felgyorsítja a fordítót és a kapcsolt feldolgozást.
- A felesleges feladatokat kiküszöböli.
- A legalacsonyabbra csökkenti a "rossz build-ek" számát.
- A kulcsfontosságú személyzettől való függőség megszüntetése.
- A buildek története, és a sorrendbeli kiadások gyorsítják a probléma elhárítást.
- Takarítson meg időt és pénzt, a fent felsorolt okok miatt.
Lásd még
[szerkesztés]- Alkalmazás-kiadás automatizálása (ARA)
- Alkalmazás életciklus menedzselés (ALM)
- Folyamatos konfigurációs automatizálás (CCA)
- Folyamatos integráció (CI)
- Folyamatos szállítás (CD)
- Folyamatos tesztelés
- Fejlesztői ops
- Buildautomatizálási szoftverek listája
- Termékcsalád-tervezés
- Kiadás tervezés (RE)
- Szoftverkonfiguráció kezelése (SCM)
- Egység vizsgálata
Jegyzetek
[szerkesztés]- ↑ In software engineering, continuous integration (CI) is the practice of merging all developers' working copies to a shared mainline several times a day.. (Hozzáférés: 2005. április 21.)
- ↑ Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually.. (Hozzáférés: 2011. december 4.)