
A Continuous Deployment egy speciális megközelítés a szoftverfejlesztésben, amelyet a szoftver különböző funkcióinak gyors, biztonságos és hatékony megvalósítására használnak.
A fő ötlet egy megbízható automatizált folyamat létrehozása, amely lehetővé teszi a fejlesztő számára, hogy gyorsan eljuttassa a kész terméket a felhasználóhoz. Ezzel párhuzamosan a termelésben folyamatos változtatásokat hajtanak végre - ezt nevezik folyamatos szállítási csővezetéknek (CD Pipeline).
A Skillbox a következőket ajánlja: Gyakorlati tanfolyam .
Emlékeztetünk: a "Habr" minden olvasója számára - 10 000 rubel kedvezmény, ha a "Habr" promóciós kóddal bármely Skillbox tanfolyamra jelentkezik.

Az áramlás szabályozásához számos eszközt használhat, beleértve a fizetős és teljesen ingyenes eszközöket is. Ez a cikk a fejlesztők körében három legnépszerűbb megoldást ismerteti, amelyek minden programozó számára hasznosak lehetnek.
Jenkins
Teljesen önálló, nyílt forráskódú automatizálási szerver. Érdemes vele dolgozni, hogy automatizálhassunk mindenféle, a szoftver építésével, tesztelésével, szállításával vagy telepítésével kapcsolatos feladatot.
Minimális PC követelmények:
- 256 MB RAM, 1 GB fájlterület.
Optimális:
- 1 GB RAM, 50 GB merevlemez.
A munkához további szoftverekre is szükség lesz – a Java Runtime Environment (JRE) 8-as verziójára.
Az architektúra (elosztott számítástechnika) így néz ki:

A Jenkins Server egy olyan telepítés, amely a GUI-tárhelyért, valamint a teljes build megszervezéséért és végrehajtásáért felelős.
Jenkins Node/Slave/Build Server – eszközök, amelyek beállíthatók úgy, hogy a Master (fő csomópont) nevében építési munkát végezzenek.
Telepítés Linux
Először hozzá kell adnia a Jenkins tárolót a rendszerhez:
cd /tmp && wget -q -O — | sudo apt-key add - echo 'deb bináris/' | sudo tee -a /etc/apt/sources.list.d/je
Csomagtár frissítése:
sudo apt frissítés
A Jenkins telepítése:
sudo apt install jenkins
Ezt követően a Jenkins az alapértelmezett 8080-as porton keresztül elérhető lesz a rendszerben.
A működőképesség ellenőrzéséhez meg kell nyitnia a címet a böngészőben :8080. A rendszer ezután kérni fogja, hogy adja meg a root felhasználó kezdeti jelszavát. Ez a jelszó a /var/lib/jenkins/secrets/initialAdminPassword fájlban található.
Most már minden készen áll, megkezdheti a CI/CD folyamok létrehozását. A munkaasztal grafikus felülete így néz ki:


Jenkins erősségei:
- a Master/Slave architektúra által biztosított skálázhatóság;
- a REST XML/JSON API elérhetősége;
- nagyszámú bővítmény csatlakoztatásának lehetősége a bővítményeknek köszönhetően;
- aktív és folyamatosan fejlődő közösség.
Hátrányok:
- nincs analitikai blokk;
- nem túl felhasználóbarát felület.
TeamCity
Kereskedelmi fejlesztés a JetBrainstől. A szerver jó egyszerű beállítással és kiváló felülettel. Az alapértelmezett konfiguráció számos funkciót tartalmaz, és az elérhető bővítmények száma folyamatosan növekszik.
Java Runtime Environment (JRE) 8-as verziója szükséges.
A szerver hardverkövetelményei nem kritikusak:
- RAM - 3,2 GB;
- processzor - kétmagos, 3,2 GHz;
- 1 Gb/s kapacitású kommunikációs csatorna.
A szerver lehetővé teszi a nagy teljesítmény elérését:
- 60 projekt 300 build konfigurációval;
- 2 MB kiosztás az összeállítási naplóhoz;
- 50 build ügynök;
- képes dolgozni 50 felhasználóval a webes verzióban és 30 felhasználóval az IDE-ben;
- 100 külső VCS csatlakozás, általában Perforce és Subversion. Az átlagos váltási idő 120 másodperc;
- több mint 150 módosítás naponta;
- munka az adatbázissal egy szerveren;
- JVM szerver folyamatbeállítások: -Xmx1100m -XX:MaxPermSize=120m.
Az ügynökkövetelmények a futó összeállításokon alapulnak. A szerver fő feladata az összes csatlakoztatott ügynök figyelése, és a kompatibilitási követelmények alapján sorba állított szerelvények szétosztása ezeknek az ügynököknek, az eredmények jelentésével. Az ügynökök számos platformon és operációs rendszeren, valamint előre konfigurált környezetben érhetők el.
Az összeállítás eredményeivel kapcsolatos összes információ az adatbázisban tárolódik. Ez elsősorban az előzmények és más hasonló adatok, a VCS-módosítások, az ügynökök, az összeállítási sorok, a felhasználói fiókok és az engedélyek. Az adatbázis nem csak az összeállítási naplókat és műtermékeket tartalmazza.

Telepítés Linux
A TeamCity Tomcat szervlet-tárolóval történő kézi telepítéséhez a TeamCity archívumot kell használnia: TeamCity .tar.gz. Letöltés .
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [start|stop]
Az első indításkor ki kell választania az adatbázis típusát, amelyben az összeállítási adatok tárolásra kerülnek.

Az alapértelmezett konfiguráció fut tovább :8111/ egy regisztrált build agent fut ugyanazon a PC-n.
A TeamCity erősségei:
- egyszerű beállítás;
- felhasználóbarát felület;
- nagyszámú beépített funkció;
- támogatás;
- van egy RESTful API;
- jó dokumentáció;
- jó biztonság.
Hátrányok:
- korlátozott integráció;
- Ez egy fizetett eszköz;
- egy kis közösség (amely azonban növekszik).
GoCD
Nyílt forráskódú projekt, amelynek telepítéséhez és működéséhez a Java Runtime Environment (JRE) 8-as verziója szükséges.
Rendszer követelmények:
- RAM - minimum 1 GB, több jobb;
- processzor - kétmagos, 2 GHz-es magfrekvenciával;
- merevlemez - legalább 1 GB szabad hely.
Ügynök:
- RAM - legalább 128 MB, több jobb;
- processzor - legalább 2 GHz.
A szerver biztosítja az ügynökök működését és kényelmes felületet biztosít a felhasználó számára:

Szakaszok/Munkak/Feladatok:

Telepítés Linux
visszhang "deb /” | sudo tee /etc/apt/sources.list.d/gocd.list
becsavar | sudo apt-key add -
add-apt-repository ppa:openjdk-r/ppa
apt-get update
apt-get install -y openjdk-8-jre
apt-get install go-server
apt-get install go-agent
/etc/init.d/go-server [start|stop|status|restart]
/etc/init.d/go-agent [start|stop|status|restart]
Alapértelmezés szerint a GoCd fut : 8153.
A GoCd erősségei:
- nyílt forráskód;
- egyszerű telepítés és konfiguráció;
- jó dokumentáció;
- Nagyszerű felhasználói felület:

- a GoCD telepítési útvonalának lépésenkénti megjelenítése egy nézetben:

- a csővezeték szerkezetének kiváló megjelenítése:

- A GoCD optimalizálja a CD munkafolyamatát a legnépszerűbb felhőkörnyezetekben, beleértve a Dockert, az AWS-t;
- az eszköz lehetővé teszi a folyamatban lévő problémák kijavítását, amelyeknél a véglegesítéstől a telepítésig minden változás valós időben követhető.
Hátrányok:
- legalább egy ügynök szükséges;
- nincs konzol az összes befejezett feladat megjelenítésére;
- az egyes parancsok végrehajtásához létre kell hozni egy feladatot a folyamat konfigurációjához;
- A bővítmény telepítéséhez át kell helyezni a .jar fájlt ide /plugins/external és indítsa újra a szervert;
- viszonylag kis közösség.
Következtetésként
Ez csak három eszköz, valójában sokkal több van. Nehéz választani, ezért mindenképpen figyelni kell további szempontokra.
Az eszköz nyílt forráskódja lehetővé teszi, hogy megértsük, miről van szó, és gyorsabban hozzáadhatunk új funkciókat. De ha valami nem működik, akkor csak önmagára és a közösség segítségére kell számítani. A fizetős eszközök olyan támogatást nyújtanak, amely néha kritikus lehet.
Ha a biztonság a legfontosabb, érdemes helyi eszközzel dolgozni. Ha nem, akkor a SaaS-megoldás választása jó megoldás.
Végül pedig a valóban hatékony folyamatos üzembe helyezési folyamat biztosítása érdekében olyan kritériumokat kell létrehozni, amelyek sajátosságai lehetővé teszik az elérhető eszközök körének szűkítését.
A Skillbox a következőket ajánlja:
- Két éves gyakorlati tanfolyam .
- Online tanfolyam .
- Gyakorlati évfolyam .
Forrás: will.com
