
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 .
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".

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ì:

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 — | sudo apt-key add - echo 'deb 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 : 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ì:


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.

Installazione per Linux
Per installà manualmente TeamCity cù un containeru di servlet Tomcat, avete aduprà l'archiviu TeamCity: TeamCity .tar.gz. Scaricate .
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.

A cunfigurazione predeterminata funziona : 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:

Fasi / Impieghi / Tasks:

Installazione per Linux
echu "deb /” | sudo tee /etc/apt/sources.list.d/gocd.list
curl | 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 : 8153.
I punti di forza di GoCd:
- fonte aperta;
- installazione è cunfigurazione simplici;
- bona documentazione;
- Grande interfaccia d'utilizatore:

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

- eccellente visualizazione di a struttura di u pipeline:

- 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:
- Corso praticu di dui anni .
- Corsu in ligna .
- Corso praticu annu .
Source: www.habr.com
