ProHoster > blog > internetnieuws > 3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)
3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)
Continuous Deployment is een bijzondere aanpak in softwareontwikkeling die wordt gebruikt om snel, veilig en efficiënt verschillende functies in software te implementeren.
Het belangrijkste idee is om een betrouwbaar geautomatiseerd proces te creëren waarmee de ontwikkelaar het eindproduct snel aan de gebruiker kan leveren. Tegelijkertijd worden er voortdurend wijzigingen aangebracht in de productie - dit wordt een continue leveringspijplijn (CD Pipeline) genoemd.
Herinnering:voor alle lezers van "Habr" - een korting van 10 roebel bij inschrijving voor een Skillbox-cursus met behulp van de promotiecode "Habr".
Om de stroom onder controle te houden, kunt u een breed scala aan tools gebruiken, zowel betaald als volledig gratis. Dit artikel beschrijft drie van de meest populaire oplossingen onder ontwikkelaars die voor elke programmeur nuttig kunnen zijn.
Jenkins
Volledig op zichzelf staande open source automatiseringsserver. Het is de moeite waard om mee te werken om allerlei taken te automatiseren die verband houden met het bouwen, testen, verzenden of implementeren van software.
Minimale pc-vereisten:
256 MB RAM, 1 GB bestandsruimte.
Optimaal:
1 GB RAM, 50 GB harde schijf.
Om te werken heb je ook aanvullende software nodig: Java Runtime Environment (JRE) versie 8.
De architectuur (distributed computing) ziet er als volgt uit:
Jenkins Server is een installatie die verantwoordelijk is voor GUI-hosting en voor het organiseren en uitvoeren van de gehele build.
Jenkins Node/Slave/Build Server - apparaten die kunnen worden geconfigureerd om buildwerk uit te voeren namens de Master (masternode).
Installatie voor Linux
Eerst moet u de Jenkins-repository aan het systeem toevoegen:
Hierna zal Jenkins beschikbaar zijn in het systeem via de standaardpoort 8080.
Om de functionaliteit te controleren, moet u het adres in de browser openen localhost:8080. Het systeem vraagt u vervolgens om het initiële wachtwoord voor de rootgebruiker in te voeren. Dit wachtwoord bevindt zich in het bestand /var/lib/jenkins/secrets/initialAdminPassword.
Nu alles gereed is, kunt u beginnen met het maken van CI/CD-stromen. De grafische interface van de werkbank ziet er als volgt uit:
Jenkins-sterke punten:
schaalbaarheid geboden door de Master/Slave-architectuur;
beschikbaarheid van REST XML/JSON API;
de mogelijkheid om een groot aantal extensies aan te sluiten dankzij plug-ins;
actieve en voortdurend evoluerende gemeenschap.
Tegens:
er is geen analytisch blok;
niet erg gebruiksvriendelijke interface.
TeamCity
Commerciële ontwikkeling van JetBrains. De server is goed met een eenvoudige installatie en een uitstekende interface. De standaardconfiguratie heeft een groot aantal functies en het aantal beschikbare plug-ins neemt voortdurend toe.
Vereist Java Runtime Environment (JRE) versie 8.
De serverhardwarevereisten zijn niet-kritisch:
RAM-geheugen - 3,2 GB;
processor - dual-core, 3,2 GHz;
communicatiekanaal met een capaciteit van 1 Gb/s.
Met de server kunt u hoge prestaties bereiken:
60 projecten met 300 buildconfiguraties;
2 MB toewijzing voor buildlogboek;
50 bouwagenten;
de mogelijkheid om te werken met 50 gebruikers in de webversie en 30 gebruikers in de IDE;
100 aansluitingen van externe VCS, meestal Perforce en Subversion. De gemiddelde wisseltijd bedraagt 120 seconden;
Agentvereisten zijn gebaseerd op actieve assemblages. De hoofdtaak van de server is het monitoren van alle verbonden agenten en het distribueren van in de wachtrij geplaatste assemblages naar deze agenten op basis van compatibiliteitsvereisten, en het rapporteren van de resultaten. Agents zijn verkrijgbaar op verschillende platforms en besturingssystemen, plus een vooraf geconfigureerde omgeving.
Alle informatie over de buildresultaten wordt opgeslagen in de database. Dit zijn voornamelijk geschiedenis en andere soortgelijke gegevens, VCS-wijzigingen, agenten, build-wachtrijen, gebruikersaccounts en machtigingen. De database bevat niet alleen buildlogboeken en artefacten.
Installatie voor Linux
Om TeamCity handmatig te installeren met een Tomcat-servletcontainer, moet u het TeamCity-archief gebruiken: TeamCity .tar.gz. Downloaden je kunt het hier vandaan halen.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [start|stop]
Wanneer u voor het eerst start, moet u het type database selecteren waarin de assemblagegegevens worden opgeslagen.
De standaardconfiguratie wordt uitgevoerd localhost:8111/ met één geregistreerde build-agent die op dezelfde pc draait.
De sterke punten van TeamCity:
eenvoudige installatie;
gebruikersvriendelijke interface;
een groot aantal ingebouwde functies;
steun;
er is een RESTful API;
goede documentatie;
goede beveiliging.
Tegens:
beperkte integratie;
Dit is een betaalde tool;
een kleine gemeenschap (die echter groeit).
GoCD
Een open source-project waarvoor Java Runtime Environment (JRE) versie 8 vereist is voor installatie en bediening.
Systeemvereisten:
RAM - minimaal 1 GB, meer is beter;
processor - dual-core, met een kernfrequentie van 2 GHz;
harde schijf - minimaal 1 GB vrije ruimte.
Tussenpersoon:
RAM - minimaal 128 MB, meer is beter;
processor - minimaal 2 GHz.
De server zorgt voor de werking van agenten en biedt een handige interface voor de gebruiker:
Fasen/banen/taken:
Installatie voor Linux
echo "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
mogelijkheid om het stapsgewijze GoCD-implementatiepad in één weergave weer te geven:
uitstekende weergave van de pijpleidingstructuur:
GoCD optimaliseert de cd-workflow in de meest populaire cloudomgevingen, waaronder Docker, AWS;
De tool maakt het mogelijk om problemen in de pijplijn te corrigeren, waarbij elke verandering, van commit tot implementatie, in realtime wordt gevolgd.
Tegens:
er is minimaal één agent nodig;
er is geen console om alle voltooide taken weer te geven;
om elke opdracht uit te voeren, moet u één taak maken voor de pijplijnconfiguratie;
Om de plug-in te installeren, moet u het .jar-bestand verplaatsen naar /plugins/external en start de server opnieuw op;
relatief kleine gemeenschap.
Als conclusie
Dit zijn slechts drie hulpmiddelen; er zijn er zelfs nog veel meer. Het is moeilijk om te kiezen, dus je moet zeker aandacht besteden aan aanvullende aspecten.
De open source-code van de tool maakt het mogelijk om te begrijpen wat het is, en om sneller nieuwe functies toe te voegen. Maar als iets niet werkt, ben je alleen op jezelf en de hulp van de gemeenschap aangewezen. Betaalde tools bieden ondersteuning die soms van cruciaal belang kan zijn.
Als beveiliging uw topprioriteit is, is het de moeite waard om met een lokale tool te werken. Zo niet, dan is kiezen voor een SaaS-oplossing een goede optie.
En ten slotte moet u, om een werkelijk effectief, continu implementatieproces te garanderen, criteria opstellen waarvan de specifieke kenmerken u in staat stellen de reeks beschikbare tools te beperken.