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

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

Continuous Deployment je speciální přístup ve vývoji softwaru, který se používá k rychlé, bezpečné a efektivní implementaci různých funkcí v softwaru.

Hlavní myšlenkou je vytvořit spolehlivý automatizovaný proces, který umožní vývojáři rychle dodat hotový produkt uživateli. Ve výrobě jsou přitom prováděny neustálé změny – tomu se říká kontinuální doručovací potrubí (CD Pipeline).

Skillbox doporučuje: Praktický kurz "Mobile Developer PRO".

Připomínáme: pro všechny čtenáře "Habr" - sleva 10 000 rublů při zápisu do jakéhokoli kurzu Skillbox pomocí propagačního kódu "Habr".

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

Pro kontrolu toku můžete využít širokou škálu nástrojů, včetně placených i zcela bezplatných. 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ě samostatný open source automatizační server. Stojí za to pracovat s automatizací všech druhů úkolů souvisejících s vytvářením, testováním, expedicí nebo nasazením softwaru.

Minimální požadavky na PC:

  • 256 MB RAM, 1 GB místa pro soubory.

Optimální:

  • 1 GB RAM, 50 GB pevný disk.

K práci budete také potřebovat další software – Java Runtime Environment (JRE) verze 8.

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

Jenkins Server je instalace, která je zodpovědná za hostování GUI a také za organizaci a spouštění celého sestavení.

Jenkins Node/Slave/Build Server – zařízení, která lze nakonfigurovat tak, aby prováděla sestavení jménem hlavního uzlu (hlavního uzlu).

Instalace pro Linux

Nejprve musíte do systému přidat úložiště 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ární/' | sudo tee -a /etc/apt/sources.list.d/je

Aktualizace úložiště balíčků:

sudo apt update

Nainstalujte Jenkins:

sudo apt nainstalovat jenkins

Poté bude Jenkins dostupný v systému přes výchozí port 8080.

Chcete-li zkontrolovat funkčnost, musíte adresu otevřít v prohlížeči localhost:8080. Systém vás poté vyzve k zadání počátečního hesla pro uživatele root. Toto heslo se nachází v souboru /var/lib/jenkins/secrets/initialAdminPassword.

Nyní je vše připraveno, můžete začít vytvářet toky CI/CD. Grafické rozhraní pracovního stolu vypadá takto:

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

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

Jenkinsovy přednosti:

  • škálovatelnost poskytovaná architekturou Master/Slave;
  • dostupnost REST XML/JSON API;
  • možnost připojení velkého množství rozšíření díky pluginům;
  • aktivní a neustále se vyvíjející komunita.

nevýhody:

  • neexistuje žádný analytický blok;
  • nepříliš uživatelsky přívětivé rozhraní.

TeamCity

Komerční vývoj od JetBrains. Server je dobrý s jednoduchým nastavením a vynikajícím rozhraním. Výchozí konfigurace má velké množství funkcí a počet dostupných pluginů se neustále zvyšuje.

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

Hardwarové požadavky serveru nejsou kritické:

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

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

  • 60 projektů s 300 konfiguracemi sestavení;
  • 2 MB alokace pro protokol sestavení;
  • 50 stavebních agentů;
  • možnost pracovat s 50 uživateli ve webové verzi a 30 uživateli v IDE;
  • 100 připojení externího VCS, obvykle Perforce a Subversion. Průměrná doba změny je 120 sekund;
  • více než 150 úprav za den;
  • práce s databází na jednom serveru;
  • Nastavení procesu serveru JVM: -Xmx1100m -XX:MaxPermSize=120m.

Požadavky na agenta jsou založeny na spuštěných sestavách. Hlavním úkolem serveru je monitorovat všechny připojené agenty a distribuovat sestavy ve frontě těmto agentům na základě požadavků na kompatibilitu a reportovat výsledky. Agenti přicházejí na různých platformách a operačních systémech a navíc v předem nakonfigurovaném prostředí.

Všechny informace o výsledcích sestavení jsou uloženy v databázi. Primárně se jedná o historii a další podobná data, změny VCS, agenty, fronty sestavení, uživatelské účty a oprávnění. Databáze neobsahuje pouze protokoly sestavení a artefakty.

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

Instalace pro Linux

Chcete-li ručně nainstalovat TeamCity pomocí kontejneru servletu Tomcat, měli byste použít archiv TeamCity: TeamCity .tar.gz. Stažení můžete to získat odtud.

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 data sestavy uložena.

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

Výchozí konfigurace běží na localhost:8111/ s jedním registrovaným sestavovacím agentem běžícím na stejném PC.

Silné stránky TeamCity:

  • snadné nastavení;
  • uživatelsky přívětivé rozhraní;
  • velké množství vestavěných funkcí;
  • Podpěra, podpora;
  • existuje RESTful API;
  • dobrá dokumentace;
  • dobré zabezpečení.

nevýhody:

  • omezená integrace;
  • Toto je placený nástroj;
  • malá komunita (která se však rozrůstá).

GoCD

Projekt s otevřeným zdrojovým kódem, který k instalaci a provozu vyžaduje prostředí Java Runtime Environment (JRE) verze 8.

Systémové požadavky:

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

Agent:

  • RAM - alespoň 128 MB, více je lepší;
  • procesor - alespoň 2 GHz.

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

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

Fáze/Zaměstnání/Úkoly:

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

Instalace pro Linux

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

kadeř 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|stav|restart]

/etc/init.d/go-agent [start|stop|stav|restart]

Ve výchozím nastavení GoCd běží localhost: 8153.

Přednosti GoCd:

  • open source;
  • jednoduchá instalace a konfigurace;
  • dobrá dokumentace;

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

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

  • schopnost zobrazit krok za krokem cestu nasazení GoCD v jednom pohledu:

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

  • vynikající zobrazení struktury potrubí:

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

  • GoCD optimalizuje pracovní postup CD v nejoblíbenějších cloudových prostředích včetně Docker, AWS;
  • nástroj umožňuje opravit problémy v potrubí, u kterých je v reálném čase sledována každá změna od odevzdání až po nasazení.

nevýhody:

  • je zapotřebí alespoň jeden prostředek;
  • neexistuje žádná konzole pro zobrazení všech dokončených úkolů;
  • pro provedení každého příkazu je třeba vytvořit jednu úlohu pro konfiguraci potrubí;
  • Chcete-li nainstalovat plugin, musíte přesunout soubor .jar do /plugins/external a restartujte server;
  • relativně malá komunita.

Jako závěr

To jsou jen tři nástroje, ve skutečnosti je jich mnohem více. Je těžké si vybrat, takže rozhodně musíte věnovat pozornost dalším aspektům.

Otevřený zdrojový kód nástroje umožňuje pochopit, co to 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 poskytují podporu, která může být někdy kritická.

Pokud je vaší nejvyšší prioritou zabezpečení, vyplatí se pracovat s místním nástrojem. Pokud ne, pak je volba řešení SaaS dobrou volbou.

A konečně, abyste zajistili skutečně efektivní proces nepřetržitého nasazení, musíte formulovat kritéria, jejichž specifika vám umožní zúžit škálu dostupných nástrojů.

Skillbox doporučuje:

Zdroj: www.habr.com

Přidat komentář