3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

A folyamatos telepítés (Continuous Deployment) egy különleges megközelítés a szoftverfejlesztésben, amelyet a különféle funkciók gyors, biztonságos és hatékony bevezetésére alkalmaznak a szoftverben.

A fő elképzelés egy megbízható automatizált folyamat létrehozása, amely lehetővé teszi a fejlesztő számára, hogy gyorsan nyújtson kész terméket a felhasználónak. Ehhez folyamatos változtatások történnek a termelési környezetben — ezt folyamatos szállítási csatornának (CD Pipeline) nevezik.

A Skillbox ajánlja: Gyakorlati kurzus «Mobilfejlesztő PRO».

Emlékeztetjük: minden «Habr» olvasónak 10 000 rubeles kedvezmény jár bármely Skillbox kurzus jelentkezésekor a «Habr» promóciós kód felhasználásával.

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

A folyamat kezelésére széles eszköztár áll rendelkezésre, beleértve a fizetős és teljesen ingyenes megoldásokat is. Ebben a cikkben három legnépszerűbb megoldást mutatunk be, amelyek hasznosak lehetnek minden programozó számára.

Jenkins

Teljesen autonóm automatizálási szerver nyílt forráskódú. Ezt érdemes használni a szoftverek építésével, tesztelésével, terjesztésével vagy telepítésével kapcsolatos feladatok automatizálására.

Minimális gépigény:

  • 256 MB RAM, 1 GB tárolókapacitás.

Optimális:

  • 1 GB RAM, 50 GB merevlemezen.

A működéshez szükség van egy Java Runtime Environment (JRE) 8 verzióra is.

Az architektúra (el­osztott számítás) a következőképpen néz ki:
3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

A Jenkins Server — az a telepítés, amely a GUI-t hosztolja, valamint megszervezi és végrehajtja az egész építési folyamatot.

A Jenkins Node/Slave/Build Server — olyan eszközök, amelyeket a Master (fő nod) nevében lehet beállítani a munka elvégzésére.

Linux telepítése

Először is hozzá kell adni 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 binary/' | sudo tee -a /etc/apt/sources.list.d/jen

Frissítse a csomagok tárolóját:

sudo apt update

Jenkins telepítése:

sudo apt install jenkins

Ezt követően a Jenkins elérhető lesz a rendszerben az alapértelmezett 8080-as porton.

A működés ellenőrzéséhez meg kell nyitni a böngészőben a címet localhost:8080. Ekkor a rendszer megkérdezi a root jogokkal rendelkező 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 a munkára, elkezdhetjük a CI/CD folyamatok létrehozását. A munkaállomás grafikus felhasználói felülete a következőképpen néz ki:

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

A Jenkins erősségei:

  • skálázhatóság, amelyet a Master/Slave architektúra biztosít;
  • REST XML/JSON API elérhetősége.
  • a bővítmények révén sok kiegészítő csatlakoztatásának lehetősége;
  • aktív és folyamatosan fejlődő közösség.

Hátrányok:

  • nincs elemző blokk;
  • nem túl kényelmes felhasználói felület.

TeamCity

A JetBrains kereskedelmi fejlesztése. A szerver jó, egyszerű beállítással és kiváló felhasználói felülettel rendelkezik. Az alapértelmezett konfigurációban számos funkció érhető el, és folyamatosan nő a rendelkezésre álló bővítmények száma.

A működéshez Java Runtime Environment (JRE) 8-as verzióra van szükség.

A szerver hardverkövetelményei nem kritikusak:

  • RAM – 3,2 GB;
  • processzor – kétnúmenes, 3,2 GHz;
  • kapcsolati sávszélesség 1 Gb/s.

A szerver lehetővé teszi a magas teljesítmény elérését a munkában:

  • 60 projekt 300 build konfigurációval;
  • 2 MB dedikált a build naplóhoz;
  • 50 build ügynök;
  • 50 felhasználó webes verzióban és 30 felhasználó IDE-ben;
  • 100 külső VCS csatlakozás, általában Perforce és Subversion. Az átlagos változtatási idő 120 másodperc;
  • több mint 150 módosítás naponta;
  • adatbázisok kezelése egy serveren;
  • JVM szerverfolyamat beállításai: -Xmx1100m -XX:MaxPermSize=120m.

Az ügynök követelményei a futó build-ektől függnek. A szerver fő feladata az összes csatlakoztatott ügynök nyomon követése és a build feladatok elosztása az ügynökök között a kompatibilitási követelmények alapján, az eredmények jelentésével. Az ügynökök különböző platformokon és operációs rendszereken működnek, és előre konfigurált környezettel rendelkeznek.

Az összes build eredmény információ egy adatbázisban tárolódik. Elsősorban a történelem és hasonló adatok, VCS változások, ügynökök, build sorok, felhasználói fiókok és jogosultságok tárolódnak. Az adatbázisba csak a build naplók és artefaktumok nem kerülnek be.

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

Linux telepítése

A TeamCity manuális telepítése a Tomcat servlet tárolóval a TeamCity archívumot igényli: TeamCity .tar.gz. Letölthető innen.

tar -xfz TeamCity.tar.gz

/bin /runAll. sh [start|stop]

Az első indításkor ki kell választani az adatbázis típusát, amelyben a build adatai tárolódnak.

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

Az alapértelmezett konfiguráció a következő címen működik: localhost:8111/egy regisztrált build ügynökkel, amely ugyanazon a gépen fut.

A TeamCity erősségei:

  • egyszerű beállítás;
  • kényelmes felhasználói felület;
  • számos beépített funkció;
  • ügyfélszolgálat;
  • van RESTful API;
  • elfogadható dokumentáció;
  • jó biztonság.

Hátrányok:

  • korlátozott integráció;
  • ez egy fizetős eszköz;
  • egy kis közösség (amely egyébként növekszik).

GoCD

Open source projekt, amely telepítéséhez és működéséhez Java Runtime Environment (JRE) 8-as verzió szükséges.

Rendszerkövetelmények:

  • RAM — minimum 1 GB, jobb ha több;
  • processzor — kétejderes, 2 GHz-es órajellel;
  • merevlemez — minimum 1 GB szabad hely.

Ügynök:

  • RAM — minimum 128 MB, jobb ha több;
  • processzor — minimum 2 GHz.

A szerver biztosítja az ügynökök működését és felhasználóbarát interfészt nyújt:

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

Stages/Jobs/Tasks:

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

Linux telepítése

echo “deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

curl 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 a következő címen működik: localhost:8153.

A GoCd erősségei:

  • nyílt forráskód;
  • egyszerű telepítés és konfigurálás;
  • jó dokumentáció;

  • kiváló felhasználói felület:

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

  • a GoCD telepítési útvonalának lépésről lépésre történő megjelenítése egy nézetben:

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

  • kiváló pipeline struktúra megjelenítése:

3 népszerű eszköz a folyamatos telepítés (Continuous Deployment) megvalósításához

  • A GoCD optimalizálja a CD munkafolyamatot a legkeresettebb felhőkörnyezetekben, beleértve a Dockert és az AWS-t;
  • az eszköz lehetőséget ad a pipeline hibáinak javítására, amelyhez minden változás követése valós időben történik a commit-tól a telepítésig.

Hátrányok:

  • legalább egy ügynök szükséges;
  • nincs konzol a végrehajtott feladatok megjelenítésére;
  • minden parancs végrehajtásához egy feladatot kell létrehozni a pipeline konfigurációhoz;
  • a plugin telepítéséhez a .jar fájlt a /plugins/external mappába kell másolni és újra kell indítani a szervert;
  • relatív kis közösség.

Következtetésként

Ez mindössze három eszköz, valójában sokkal több van. Nehéz választani, ezért mindenképpen figyelni kell a kiegészítő szempontokra.

Az eszköz nyílt forráskódja lehetővé teszi megérteni, hogy mit is takar, ráadásul gyorsabban lehet új funkciókat hozzáadni. De ha valami nem működik, csak saját magunkban és a közösség segítségében bízhatunk. A fizetős eszközök támogatást nyújtanak, ami sokszor kritikus fontosságú lehet.

Ha a biztonság a legfontosabb, érdemes helyi eszközzel dolgozni. Ha nem, akkor a SaaS megoldás választása jó lehetőség.

És a végén: ahhoz, hogy valóban hatékony folyamatos telepítési folyamatot biztosítsunk, ki kell alakítani azokat a kritériumokat, amelyek lehetővé teszik a rendelkezésre álló eszközök körének szűkítését.

A Skillbox ajánlja:

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster