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).
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“.
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:
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).
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:
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.
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.
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:
Fázy/pracovné miesta/úlohy:
Inštalácia pre Linux
ozvena "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
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:
schopnosť zobraziť krok za krokom cestu nasadenia GoCD v jednom zobrazení:
vynikajúce zobrazenie štruktúry potrubia:
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.