3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

Kontinuální nasazení je zvláštní přístup k vývoji softwaru, který se používá k rychlému, bezpečnému a efektivnímu zavádění různých funkcí do softwaru.

Hlavní myšlenkou je vytvoření spolehlivého automatizovaného procesu, který umožňuje vývojáři rychle poskytovat uživateli hotový produkt. Při tom se neustále provádějí změny v produkci, což se nazývá kanál kontinuální dodávky (CD Pipeline).

Skillbox doporučuje: Praktický kurz "Mobilní vývojář PRO".

Připomínáme: pro všechny čtenáře "Habra" – sleva 10 000 korun při registraci na jakýkoli kurz Skillbox s promokódem "Habr".

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

Pro řízení toku lze využít širokou škálu nástrojů, mezi kterými jsou jak placené, tak zcela zdarma. Tento článek popisuje tři nejoblíbenější řešení mezi vývojáři, která mohou být užitečná pro každého programátora.

Jenkins

Úplně autonomní server automatizace s otevřeným zdrojovým kódem. Jeho práce se hodí pro automatizaci všech typů úloh souvisejících s kompilací, testováním, dodáváním nebo nasazováním softwaru.

Minimální požadavky na PC:

  • 256 MB RAM, 1 GB úložiště.

Optimálně:

  • 1 GB RAM, 50 GB na pevném disku.

Pro práci bude potřeba také další software — Java Runtime Environment (JRE) verze 8.

Architektura (distribuované výpočty) vypadá následovně:
3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

Jenkins Server — instalace, která odpovídá za hosting GUI, stejně jako organizaci a provádění celé kompilace.

Jenkins Node/Slave/Build Server — zařízení, která lze nastavit pro provádění práce na kompilaci jménem Master.

Instalace pro Linux

Nejprve je potřeba přidat repozitář Jenkins do systému:

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/je

Aktualizujte repozitář balíčků:

sudo apt update

Nainstalujte Jenkins:

sudo apt install jenkins

Po tomto bude Jenkins dostupný v systému na výchozím portu 8080.

Pro ověření funkčnosti je třeba otevřít v prohlížeči adresu localhost:8080. Poté systém nabídne zadání počátečního uživatelského hesla s právy root. Toto heslo se nachází v souboru /var/lib/jenkins/secrets/initialAdminPassword.

Nyní je vše připraveno k práci, můžete přistoupit k vytváření CI/CD toků. Grafické uživatelské rozhraní pracovního prostředí vypadá následovně:

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

Silné stránky Jenkins:

  • škálovatelnost, kterou zajišťuje architektura Master/Slave;
  • přítomnost REST XML/JSON API;
  • možnost připojení velkého počtu rozšíření díky pluginům;
  • aktivní a neustále se vyvíjející komunita.

Nevýhody:

  • chybí analytický blok;
  • není příliš pohodlné rozhraní.

TeamCity

Komerční vývoj od společnosti JetBrains. Server je dobrý díky jednoduché konfiguraci a vynikajícímu rozhraní. V základní konfiguraci je k dispozici velké množství funkcí, které se neustále rozšiřují dostupnými pluginy.

Pro práci je vyžadováno Java Runtime Environment (JRE) verze 8.

Požadavky serveru na hardware nejsou kritické:

  • RAM — 3,2 GB;
  • procesor — dvoujádrový, 3,2 GHz;
  • komunikační kanál s přenosovou kapacitou 1 Gb/s.

Server umožňuje dosáhnout vysokého výkonu v práci:

  • 60 projektů s 300 konfiguracemi sestavení;
  • vydělení 2 MB na protokol sestavení;
  • 50 agentů sestavení;
  • možnost práce 50 uživatelů ve webové verzi a 30 uživatelů v IDE;
  • 100 připojení k externí SCM, obvykle Perforce a Subversion. Průměrná doba změn — 120 sekund;
  • více než 150 modifikací denně;
  • práce s databázemi na jednom serveru;
  • nastavení serverového procesu JVM: -Xmx1100m -XX:MaxPermSize=120m.

Požadavky na agenta jsou dány pracovními sestaveními. Hlavním úkolem serveru je sledovat všechny připojené agenty a distribuovat sestavení z fronty těmto agentům na základě požadavků na kompatibilitu, s oznámením výsledků. Agenti mají různé platformy a operační systémy, plus předkonfigurované prostředí.

Veškeré informace o výsledcích sestavení se ukládají do databáze. Především se jedná o historii a podobná data, změny VCS, agenty, fronty sestavení, účty a oprávnění uživatelů. Do databáze nepatří pouze protokoly sestavení a artefakty.

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

Instalace pro Linux

Pro ruční instalaci TeamCity s kontejnerem servletu Tomcat by se měl použít archiv TeamCity: TeamCity .tar.gz. Stáhnout ho můžete odsud.

tar -xfz TeamCity.tar.gz

/bin /runAll. sh [start|stop]

Při prvním spuštění je třeba vybrat typ databáze, ve které budou uložena data o sestavení.

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

Konfigurace podle defaultu funguje na localhost:8111/ s jedním registrovaným agentem sestavení, spuštěným na stejném PC.

Silné stránky TeamCity:

  • jednoduchá konfigurace;
  • pohodlné rozhraní;
  • velké množství integrovaných funkcí;
  • zákaznická podpora;
  • existuje RESTful API;
  • přijatelná dokumentace;
  • dobré zabezpečení.

Nevýhody:

  • omezená integrace;
  • je to placený nástroj;
  • malé, ale rostoucí společenství.

GoCD

Projekt s otevřeným zdrojovým kódem, k jehož instalaci a provozu je potřebné Java Runtime Environment (JRE) verze 8.

Systémové požadavky:

  • RAM – alespoň 1 GB, lepší je více;
  • procesor – dvoujádrový, s pracovní frekvencí jádra 2 GHz;
  • pevný disk – alespoň 1 GB volného místa.

Agent:

  • RAM – minimálně 128 MB, lepší je více;
  • procesor – alespoň 2 GHz.

Server zajišťuje provoz agentů a poskytuje uživatelské rozhraní:

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

Stages/Jobs/Tasks:

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

Instalace pro Linux

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]

Výchozí nastavení GoCD funguje na localhost:8153.

Silné stránky GoCD:

  • otevřený zdrojový kód;
  • jednoduchá instalace a konfigurace;
  • dobrá dokumentace;

  • skvělé uživatelské rozhraní:

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

  • možnost krokového zobrazení cesty nasazení GoCD v jednom zobrazení:

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

  • vynikající zobrazení struktury potrubí:

3 populární nástroje pro organizaci nepřetržitého nasazení (Continuous Deployment)

  • GoCD optimalizuje pracovní proces CD v nejžádanějších cloudových prostředích, včetně Dockeru, AWS;
  • nástroj umožňuje odstraňovat problémy v potrubí, přičemž sleduje každou změnu od commitu po nasazení v reálném čase.

Nevýhody:

  • potřebujete alespoň jednoho agenta;
  • není k dispoziční konzole pro zobrazení všech provedených úloh;
  • pro provádění každého příkazu je třeba vytvořit jednu úlohu k konfiguraci potrubí;
  • pro instalaci pluginu je nutné přesunout soubor .jar do /plugins/external a zrestartovat server;
  • relativně malé společenství.

Na závěr

To jsou jen tři nástroje, ve skutečnosti jich je mnohem více. Výběr je obtížný, proto je třeba věnovat pozornost i dalším aspektům.

Otevřený zdrojový kód nástroje umožňuje pochopit, co přesně je, a navíc rychleji přidávat nové funkce. Ale pokud něco nefunguje, musíte se spolehnout pouze na sebe a pomoc komunity. Placené nástroje nabízejí podporu, která může být někdy kriticky důležitá.

Pokud je bezpečnost na prvním místě, je lepší používat lokální nástroj. Pokud ne, výběr SaaS řešení je dobrou volbou.

A nakonec: pro zajištění skutečně efektivního procesu kontinuálního nasazení je třeba stanovit kritéria, jejichž specifika umožní zúžit výběr dostupných nástrojů.

Skillbox doporučuje:

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster