3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

L'implementazione cuntinuu hè un approcciu speciale in u sviluppu di software chì hè utilizatu per implementà rapidamente, in modu sicuru è efficiente diverse funzioni in u software.

L'idea principale hè di creà un prucessu automatizatu affidabile chì permette à u sviluppatore di furnisce rapidamente u pruduttu finitu à l'utilizatore. À u listessu tempu, i cambiamenti custanti sò fatti à a produzzione - questu hè chjamatu pipeline di spedizione cuntinuu (CD Pipeline).

Skillbox consiglia: Corso praticu "Sviluppatore Mobile PRO".

Ramintemu: per tutti i lettori di "Habr" - un scontu di 10 000 rubles quandu si iscrizzione in ogni cursu Skillbox cù u codice promozionale "Habr".

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

Per cuntrullà u flussu, pudete aduprà una larga gamma di strumenti, cumpresi sia pagati sia completamente gratuiti. Questu articulu descrive trè di e soluzioni più populari trà i sviluppatori chì ponu esse utili à ogni programatore.

Jenkins

Servitore d'automatizazione open source cumplettamente autonomu. Vale a pena di travaglià per automatizà ogni tipu di attività ligati à a custruzzione, a prova, a spedizione o l'implementazione di software.

Requisiti minimi di u PC:

  • 256 MB di RAM, 1 GB di spaziu di fugliale.

Ottimale:

  • 1 GB di RAM, 50 GB di discu duru.

Per travaglià, avete bisognu di un software supplementu - Java Runtime Environment (JRE) versione 8.

L'architettura (computing distribuitu) s'assumiglia cusì:
3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

Jenkins Server hè una installazione chì hè rispunsevule per l'hosting GUI, è ancu di urganizà è eseguisce a custruzzione sana.

Jenkins Node/Slave/Build Server - dispusitivi chì ponu esse cunfigurati per fà u travagliu di custruzzione in nome di u Maestru (node ​​maestru).

Installazione per Linux

Prima avete bisognu di aghjunghje u repository Jenkins à u sistema:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable binariu/' | sudo tee -a /etc/apt/sources.list.d/je

Aghjurnate u repositariu di u pacchettu:

sudo apt update

Installa Jenkins:

sudo apt install jenkins

Dopu questu, Jenkins serà dispunibule in u sistema via u portu predeterminatu 8080.

Per verificà a funziunalità, avete bisognu di apre l'indirizzu in u navigatore localhost: 8080. Allora u sistema vi invitarà à inserisce a password iniziale per l'utilizatore root. Questa password si trova in u schedariu /var/lib/jenkins/secrets/initialAdminPassword.

Avà tuttu hè prontu per andà, pudete cumincià à creà flussi CI / CD. L'interfaccia grafica di u workbench s'assumiglia cusì:

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

Punti di forza di Jenkins:

  • scalabilità furnita da l'architettura Master / Slave;
  • dispunibilità di REST XML/JSON API;
  • a capacità di cunnette un gran numaru di estensioni grazia à i plugins;
  • cumunità attiva è in constante evoluzione.

Cons:

  • ùn ci hè micca un bloccu analiticu;
  • interfaccia micca assai user-friendly.

TeamCity

Sviluppu cummerciale da JetBrains. U servitore hè bonu cù una cunfigurazione simplice è una interfaccia eccellente. A cunfigurazione predeterminata hà un gran numaru di funzioni, è u numeru di plugins dispunibili hè in constantemente crescente.

Richiede Java Runtime Environment (JRE) versione 8.

I requisiti hardware di u servitore ùn sò micca critichi:

  • RAM - 3,2 GB;
  • processore - dual-core, 3,2 GHz;
  • canale di cumunicazione cù una capacità di 1 Gb/s.

U servitore permette di ottene un altu rendimentu:

  • 60 prughjetti cù 300 cunfigurazioni di custruzzione;
  • allocate 2 MB per u logu di creazione;
  • 50 agenti di custruzzione;
  • a capacità di travaglià cù 50 utilizatori in a versione web è 30 utilizatori in l'IDE;
  • 100 cunnessione di VCS esterni, di solitu Perforce è Subversion. U tempu di cambiamentu mediu hè 120 seconde;
  • più di 150 mudificazioni per ghjornu;
  • travaglià cù a basa di dati in un servitore;
  • Paràmetri di prucessu di u servitore JVM: -Xmx1100m -XX:MaxPermSize=120m.

I requisiti di l'agenti sò basati nantu à l'assemblee in esecuzione. U compitu principalu di u servitore hè di monitorà tutti l'agenti cunnessi è distribuisce assemblee in fila à questi agenti basati nantu à i requisiti di cumpatibilità, rappurtandu i risultati. L'agenti venenu in una varietà di piattaforme è sistemi operativi, più un ambiente pre-configuratu.

Tutte l'infurmazioni nantu à i risultati di custruzzione sò guardati in a basa di dati. Principalmente questu hè a storia è altre dati simili, cambiamenti VCS, agenti, custruite file, cunti d'utilizatori è permessi. A basa di dati ùn include micca solu logs di custruzzione è artefatti.

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

Installazione per Linux

Per installà manualmente TeamCity cù un containeru di servlet Tomcat, avete aduprà l'archiviu TeamCity: TeamCity .tar.gz. Scaricate pudete piglià da quì.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stop]

Quandu avete principiatu, avete bisognu di selezziunà u tipu di basa di dati in quale i dati di l'assemblea seranu guardati.

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

A cunfigurazione predeterminata funziona localhost: 8111/ cù un agente di custruzzione registratu chì funziona nantu à u stessu PC.

I punti di forza di TeamCity:

  • installazione simplice;
  • interfaccia user-friendly;
  • un gran numaru di funzioni integrate;
  • serviziu di sustegnu;
  • ci hè una API RESTful;
  • bona documentazione;
  • bona sicurità.

Cons:

  • integrazione limitata;
  • Questu hè un strumentu pagatu;
  • una piccula cumunità (chì, però, hè in crescita).

GoCD

Un prughjettu open source chì richiede Java Runtime Environment (JRE) versione 8 per l'installazione è u funziunamentu.

Requisiti di u sistema:

  • RAM - 1 GB minimu, più hè megliu;
  • processore - dual-core, cù una freccia core di 2 GHz;
  • discu duru - almenu 1 GB di spaziu liberu.

Agente:

  • RAM - almenu 128 MB, più hè megliu;
  • processore - almenu 2 GHz.

U servitore assicura u funziunamentu di l'agenti è furnisce una interfaccia còmuda per l'utilizatore:

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

Fasi / Impieghi / Tasks:

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

Installazione per Linux

echu "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]

Per difettu, GoCd funziona localhost: 8153.

I punti di forza di GoCd:

  • fonte aperta;
  • installazione è cunfigurazione simplici;
  • bona documentazione;

  • Grande interfaccia d'utilizatore:

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

  • capacità di mostrà u percorsu di implementazione di GoCD passu à passu in una vista:

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

  • eccellente visualizazione di a struttura di u pipeline:

3 strumenti populari per l'urganizazione di l'implementazione cuntinuu (Deployment continuu)

  • GoCD ottimizeghja u flussu di travagliu CD in l'ambienti di nuvola più populari cumpresi Docker, AWS;
  • l'uttellu permette di curregà i prublemi in u pipeline, per quale ci hè un seguimentu di ogni cambiamentu da cummit à implementazione in tempu reale.

Cons:

  • almenu un agentu hè necessariu;
  • ùn ci hè micca cunsola per vede tutti i travaglii cumpleti;
  • per eseguisce ogni cumanda, avete bisognu di creà un compitu per a cunfigurazione di pipeline;
  • Per installà u plugin, avete bisognu di spustà u schedariu .jar /plugins/external è riavvia u servitore;
  • cumunità relativamente chjuca.

Comu cunclusioni

Quessi sò solu trè strumenti, in fatti ci sò assai di più. Hè difficiuli di sceglie, cusì avete bisognu di attentu à l'aspetti supplementari.

U codice surghjente apertu di l'uttellu permette di capisce ciò chì hè, è aghjunghje novi funzioni più veloce. Ma s'ellu ùn hè micca travagliatu, allora avete da cunfidassi solu nantu à sè stessu è l'aiutu di a cumunità. Strumenti pagati furnisce un supportu chì à volte pò esse criticu.

Se a sicurità hè a vostra prima priorità, vale a pena travaglià cù un strumentu lucale. Se no, allora sceglie una soluzione SaaS hè una bona opzione.

È infine, per assicurà un prucessu di implementazione cuntinuu veramente efficace, avete bisognu di furmulà criteri chì e so specificità vi permettenu di restringere a gamma di strumenti dispunibili.

Skillbox consiglia:

Source: www.habr.com

Add a comment