3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

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 "Mobile Developer PRO".

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.

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

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:
3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

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 Linuxra

Először hozzá kell adnia a Jenkins tárolót a rendszerhez:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable 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 localhost: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:

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

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.

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

Telepítés Linuxra

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 innen szerezheted be.

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.

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

Az alapértelmezett konfiguráció fut tovább localhost: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:

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

Szakaszok/Munkak/Feladatok:

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

Telepítés Linuxra

visszhang "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

becsavar download.gocd.org/GOCD-GPG-KEY.asc | 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 localhost: 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:

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

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

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

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

3 népszerű eszköz a folyamatos telepítés megszervezéséhez (Continuous Deployment)

  • 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:

Forrás: will.com

Hozzászólás