Академический Документы
Профессиональный Документы
Культура Документы
Introducere
Motivatie
Ce este un sistem de build distribuit
Automatizarea unui build
Sisteme de build distribuite vs paralele
Consideratii/Avantaje
Jenkins Introducere
Jenkins Sistem de build distribuit
Jenkins Modelul master-slave
Concluzie
Q&A
Bibliografie
1 Introducere
Introducere
Sistem distribuit
o colectie de sisteme independente
care coopereaza ntre ele n vederea
atingerii unui obiectiv specific
Scop
automatizarea procesului de build
Timp mai mic de compilare
2 Motivatia
Motivaia
De ce conteaza?
Timp pierdut de dezvoltatori
Schimbarea contextului
Efectul de botleneck
Calitate produsului
3 Ce este un sistem de build distribuit
Ce este un sistem de build distribuit
Model
Master coordonator (ex. Jenkins)
Workers/slaves realizeaza build-urile
Cum funcioneaz
Masinile slaves fac parte dintr-o ferma de
calculatoare, iar masterul orchestreaza
sarcini peste acele masini.
Fiecare masina slave este conectata la
master printr-o conexiune TCP/IP
bidirectionala.
Ce este un sistem de build distribuit
Build paralel
Poate rula pe o singura masina
Necesita hardware performant (CPU, RAM)
Limitari
Din cauza dependentelor, modulele trebuie
rulate ntr-o ordine predefinita
Exemple
make -j
Ccache
RAMDisk
Sisteme de build distribuite vs paralele
Exemple
MSBuild din Visual Studio
Headere precompilate
5 Consideratii/Avantaje
Consideratii/Avantaje
Consideratii
nvestitii: hardware sau cloud
Dependentele implicite pot afecta build-ul
Unitatile partajate pot deveni un botleneck
Sincronizarile de ceas pot ntrerupe build-ul
Esecuri n noduri intermediare afecteaza
ntregul build
Overhead n invocarea sarcinilor
Avantaje
Timp de build mai redus
Eficientizare si automatizare
5 Jenkins
Jenkins - Introducere
Istoric
2004 Hudson (unealta de integrare
continua) create de Sun
2005 primul release
2011 fork din Hudson si isi schimba
numele in Jenkins (disputa cu Oracle)
2013 > 500 membri pe GitHub
Jenkins - Introducere
Caracteristici
Scris in Java
Open source
Server de automatizare a build-urilor
Unealta de integrare &livrare continua
Instalare usoara Win, Mac OS, Linux
Configurare usoara via unei interfete web
Extensibil sute de pluginuri
Distribuit
Jenkins - Introducere
Jenkins - Sistem de build distribuit
Caracteristici
Un server principal (master)
Agenti de build (pot rula pe 100+
calculatoare cu arhitecturi si platforme
diferite)
Un job dispatcher intelegent
Topologie de deployment flexibil
Agent de monitorizare (Health)
Instalare automata a JDK, Ant si
Maven
Jenkins Modelul master-slave
Master
Efectueaza operatii de baza (CSV, notificari,
rapoarte, autentificare, istoric)
Coordonator
Ofera o interfata UI
Slave
Agenti de build
Executanti
heavy work
Jenkins Modelul master-slave
Vedere generala
Concluzii
http://electric-
cloud.com/plugins/build-automation
https://support.smartbear.com/viewar
ticle/9503/
https://www.cloudbees.com/blog/para
llelism-and-distributed-builds-jenkins
https://www.cloudbees.com/jenkins/ab
out/distributed-builds
https://www.packtpub.com/mapt/book
/Application%20Development/9781784
390891/2