3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

Continuous Deployment je špeciálny prístup vo vývoji softvéru, ktorý sa používa na rýchlu, bezpečnú a efektívnu implementáciu rôznych funkcií v softvéri.

Hlavnou myšlienkou je vytvorenie spoľahlivého automatizovaného procesu, ktorý umožní vývojárovi rýchlo dodať hotový produkt užívateľovi. Zároveň sa vo výrobe vykonávajú neustále zmeny – nazýva sa to kontinuálne doručovacie potrubie (CD Pipeline).

Skillbox odporúča: Praktický kurz "Mobile Developer PRO".

Pripomíname vám: pre všetkých čitateľov „Habr“ - zľava 10 000 rubľov pri registrácii do akéhokoľvek kurzu Skillbox pomocou propagačného kódu „Habr“.

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

Na kontrolu toku môžete použiť širokú škálu nástrojov vrátane platených a úplne bezplatných. Tento článok popisuje tri z najpopulárnejších riešení medzi vývojármi, ktoré môžu byť užitočné pre každého programátora.

Jenkins

Plne samostatný open source automatizačný server. Stojí za to pracovať s automatizáciou všetkých druhov úloh súvisiacich s vytváraním, testovaním, odosielaním alebo nasadzovaním softvéru.

Minimálne požiadavky na počítač:

  • 256 MB RAM, 1 GB priestoru pre súbory.

Optimálne:

  • 1 GB RAM, 50 GB pevný disk.

Na prácu budete potrebovať aj ďalší softvér – Java Runtime Environment (JRE) verzie 8.

Architektúra (distribuované výpočty) vyzerá takto:
3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

Jenkins Server je inštalácia, ktorá je zodpovedná za hosťovanie GUI, ako aj za organizáciu a spustenie celej zostavy.

Jenkins Node/Slave/Build Server – zariadenia, ktoré možno nakonfigurovať tak, aby vykonávali zostavovaciu prácu v mene hlavného uzla (hlavného uzla).

Inštalácia pre Linux

Najprv musíte do systému pridať úložisko Jenkins:

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árne/' | sudo tee -a /etc/apt/sources.list.d/je

Aktualizácia úložiska balíkov:

sudo apt update

Nainštalujte Jenkins:

sudo apt nainštalovať jenkins

Potom bude Jenkins dostupný v systéme cez predvolený port 8080.

Ak chcete skontrolovať funkčnosť, musíte otvoriť adresu v prehliadači localhost:8080. Systém vás potom vyzve na zadanie počiatočného hesla pre používateľa root. Toto heslo sa nachádza v súbore /var/lib/jenkins/secrets/initialAdminPassword.

Teraz je všetko pripravené, môžete začať vytvárať toky CI/CD. Grafické rozhranie pracovného stola vyzerá takto:

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

Silné stránky Jenkinsa:

  • škálovateľnosť poskytovaná architektúrou Master/Slave;
  • dostupnosť REST XML/JSON API;
  • možnosť pripojiť veľké množstvo rozšírení vďaka zásuvným modulom;
  • aktívna a neustále sa rozvíjajúca komunita.

Nevýhody:

  • neexistuje žiadny analytický blok;
  • nie príliš užívateľsky prívetivé rozhranie.

TeamCity

Komerčný vývoj od JetBrains. Server je dobrý s jednoduchým nastavením a vynikajúcim rozhraním. Predvolená konfigurácia má veľké množstvo funkcií a počet dostupných pluginov sa neustále zvyšuje.

Vyžaduje Java Runtime Environment (JRE) verzie 8.

Hardvérové ​​požiadavky servera nie sú kritické:

  • RAM - 3,2 GB;
  • procesor - dvojjadrový, 3,2 GHz;
  • komunikačný kanál s kapacitou 1 Gb/s.

Server vám umožňuje dosiahnuť vysoký výkon:

  • 60 projektov s 300 konfiguráciami zostavenia;
  • alokácia 2 MB pre denník zostavenia;
  • 50 stavebných agentov;
  • možnosť pracovať s 50 používateľmi vo webovej verzii a 30 používateľmi v IDE;
  • 100 pripojení externého VCS, zvyčajne Perforce a Subversion. Priemerný čas zmeny je 120 sekúnd;
  • viac ako 150 úprav za deň;
  • práca s databázou na jednom serveri;
  • Nastavenia procesu servera JVM: -Xmx1100m -XX:MaxPermSize=120m.

Požiadavky na agenta sú založené na spustených zostavách. Hlavnou úlohou servera je monitorovať všetkých pripojených agentov a distribuovať týmto agentom zostavy vo fronte na základe požiadaviek na kompatibilitu a podávať správy o výsledkoch. Agenti prichádzajú na rôznych platformách a operačných systémoch, plus vopred nakonfigurované prostredie.

Všetky informácie o výsledkoch zostavenia sú uložené v databáze. V prvom rade ide o históriu a iné podobné údaje, zmeny VCS, agentov, zostavovacie fronty, používateľské účty a povolenia. Databáza neobsahuje iba protokoly zostáv a artefakty.

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

Inštalácia pre Linux

Ak chcete manuálne nainštalovať TeamCity pomocou kontajnera servletu Tomcat, mali by ste použiť archív TeamCity: TeamCity .tar.gz. Stiahnuť ▼ môžete to získať odtiaľto.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [štart|stop]

Pri prvom spustení je potrebné vybrať typ databázy, v ktorej budú uložené údaje zostavy.

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

Predvolená konfigurácia beží localhost:8111/ s jedným registrovaným zostavovacím agentom spusteným na tom istom PC.

Silné stránky TeamCity:

  • jednoduché nastavenie;
  • užívateľsky príjemné rozhranie;
  • veľké množstvo vstavaných funkcií;
  • Podporná služba;
  • existuje RESTful API;
  • dobrá dokumentácia;
  • dobré zabezpečenie.

Nevýhody:

  • obmedzená integrácia;
  • Toto je platený nástroj;
  • malá komunita (ktorá sa však rozrastá).

GoCD

Projekt s otvoreným zdrojovým kódom, ktorý na inštaláciu a prevádzku vyžaduje prostredie Java Runtime Environment (JRE) verzie 8.

Požiadavky na systém:

  • RAM - minimálne 1 GB, čím viac, tým lepšie;
  • procesor - dvojjadrový, s frekvenciou jadra 2 GHz;
  • pevný disk - najmenej 1 GB voľného miesta.

Agent:

  • RAM - najmenej 128 MB, najlepšie viac;
  • procesor - najmenej 2 GHz.

Server zabezpečuje prevádzku agentov a poskytuje pohodlné rozhranie pre používateľa:

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

Fázy/pracovné miesta/úlohy:

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

Inštalácia pre Linux

ozvena "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 nainštalovať go-agent

/etc/init.d/go-server [štart|stop|stav|reštart]

/etc/init.d/go-agent [štart|stop|stav|reštart]

V predvolenom nastavení GoCd beží localhost: 8153.

Silné stránky GoCd:

  • otvorený zdroj;
  • jednoduchá inštalácia a konfigurácia;
  • dobrá dokumentácia;

  • Skvelé používateľské rozhranie:

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

  • schopnosť zobraziť krok za krokom cestu nasadenia GoCD v jednom zobrazení:

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

  • vynikajúce zobrazenie štruktúry potrubia:

3 obľúbené nástroje na organizáciu nepretržitého nasadenia (Continuous Deployment)

  • GoCD optimalizuje pracovný tok CD v najpopulárnejších cloudových prostrediach vrátane Docker, AWS;
  • nástroj umožňuje opraviť problémy v potrubí, pre ktoré existuje sledovanie každej zmeny od odovzdania až po nasadenie v reálnom čase.

Nevýhody:

  • je potrebný aspoň jeden prostriedok;
  • neexistuje konzola na zobrazenie všetkých dokončených úloh;
  • na vykonanie každého príkazu je potrebné vytvoriť jednu úlohu pre konfiguráciu potrubia;
  • Ak chcete nainštalovať doplnok, musíte presunúť súbor .jar do /plugins/external a reštartujte server;
  • relatívne malá komunita.

Ako záver

Toto sú len tri nástroje, v skutočnosti ich je oveľa viac. Je ťažké si vybrať, takže určite musíte venovať pozornosť ďalším aspektom.

Otvorený zdrojový kód nástroja umožňuje pochopiť, čo to je, a navyše rýchlejšie pridávať nové funkcie. Ale ak niečo nefunguje, musíte sa spoľahnúť iba na seba a pomoc komunity. Platené nástroje poskytujú podporu, ktorá môže byť niekedy kritická.

Ak je bezpečnosť vašou najvyššou prioritou, oplatí sa pracovať s lokálnym nástrojom. Ak nie, potom je výber riešenia SaaS dobrou voľbou.

A napokon, aby ste zabezpečili skutočne efektívny proces nepretržitého nasadenia, musíte sformulovať kritériá, ktorých špecifiká vám umožnia zúžiť rozsah dostupných nástrojov.

Skillbox odporúča:

Zdroj: hab.com

Pridať komentár