Subtitles for LinuxDays 2016 - Building a free software based development environment - F. Preinstorfer

14   0   0  
  Pause sub
així que gràcies per venir al meu
presentació parlaré d'
la construcció d'un desenvolupament de programari lliure
medi ambient o de la canonada per una petita
empresa, bàsicament, que és una mica del que
tenim i hem construït durant els últims tres
anys a la nostra empresa
el meu nom està creixent plantes més dura que sóc una
enginyer de sistemes en una petita austríaca
companyia de llançament i ho fem de laboratori
equips de proves de polpa i paper
la indústria, així que bàsicament construïm dispositius
que venem als clients i les
clients el fan servir per provar certs aspectes
per exemple, paper per al cas una prova
seria la quantitat d'aigua pot un tros de
paper absorbeixi el tipus de dispositius de res
en particular de luxe des d'un punt de tecnologia
de vista que estem utilitzant majoritàriament C ++ pel que la major part
de la suau al terç dels que està escrit en
c ++ llavors hi ha una Python 3 i
òbviament, la glucosa que necessita
a tot arreu, bàsicament, la passió i la
tot el 15
Sabia abans vol realment
parlar de la canonada m'agradaria
introduir alguns dels requisits que
que teníem i aquests són només alguns d'ells
Crec que és important aconseguir el seu
sensació del que es requereix, almenys,
per al nostre cas d'ús de manera important
requisit era tenir el suport desconnectat
la nostra seu de l'empresa es troba en
Àustria al camp i que és
en realitat estava bé si ens fixem en la finestra
i això es pot veure a l'herba verda
muntanyes i bàsicament aquest és el cas
però no és beneficiós en cas que vulgui
connexió a Internet adequada pel que tenim una
connexió a Internet lenta i el lloc
flick desitja, així que no depenem millor
massa a l'Internet que seria
que seria bo per a nosaltres
Una altra cosa que sabem del passat
el que és molt beneficiós per a no
dependrà en qualsevol màquina de desenvolupador individual
Estic segur que en algun lloc la majoria de vostès tenen
sentit
les històries o ho han vist amb el seu
ulls propis que alguns portàtil alguna màquina
en alguna oficina d'algun desenvolupador és
en realitat l'aspecte més important de
l'empresa perquè sense els
sense aquest portàtil certs productes poden
ser construït en qualsevol part
No sé si algú és el que totes les coses
així, però els he vist i són
No és bo tenir, així que millor
preparar-se per a ella
una altra cosa és que ha de ser fàcil de
usar i fàcil d'utilitzar mitjans que hem d'utilitzar
eines i hem d'oferir als desenvolupadors
eines que se senten còmodes amb
pel que si estem fent servir aconseguir-ho seria gran
si el desenvolupador pot interactuar amb una
canonades i orquestrar la canonada o
la major part de la canonada només per l'ús get
just el suficient
i una altra cosa és que hauria de ser
comprensible crec que és bastant
important per a un entorn construït que
que els usuaris puguin entendre que no ho fan
necessitarà aconseguir obtenir tota l'Eternitat gran
detalls de la mateixa, sinó que ha de fer una ullada
en ella i que ha de dir molt bé Sé que
construït aquest paquet i es va passar d'aquesta
màquina per a aquesta màquina aquesta màquina i
això va ocórrer que caldria faria
ser prou just
i que té també una comprensible
canonada vol dir que també és un hackable
el que pot ser pot ser modificat fàcilment i
Ajustat segons sigui necessari Vull donar
que una visió molt mínima part del que
tenir
està lluny de ser completa, però
conté els aspectes més importants que
Per a això es necessiten 20 minuts de conversa pel
Vaig a donar-li una breu introducció a
totes les parts aquí i llavors ho faré
li proporcionarà alguns casos d'ús per tal
per obtenir el seu sentiment del que és
possible, de manera que volem començar al
part inferior esquerra aquí on tenim una
portàtil desenvolupador podria ser qualsevol cosa que
caixa de mac màquina de Windows Linux
el que no hi ha un cert requisit
en aquesta màquina, bàsicament, els desenvolupadors
ha de sentir còmode
amb per realitzar-la així que potser 90
potser potser màxim i una mica de control de versions
sistema seria seria suficient per aconseguir
iniciat a partir d'aquí ens vam decidir a
pick d'aconseguir la tornada com el nostre com un repositori
servidor d'administració o la versió de socialisme
sistema de control ja que l'utilitzem
internament molt ens agrada i ens
crec que és que està aquí per quedar-se pel que llegim
així que vam pensar que seria genial si si
tenir alguna cosa que, òbviament, dóna suport
reben i també permet als desenvolupadors utilitzar una
arma a la cara si volen perquè
alguns desenvolupadors no se senten que l'estalvi
amb amb amb una línia d'ordres i potser
algunes tasques són bastant fàcil de fer en aquestes
una interfície web, pel que pensem que ho faria
ser una bona volta seria seria una gran
eina d'aquí i estem molt contents amb el
elecció de fet en aquest llavors quan
vam començar era que era una mica perillosa, però
en aquest moment se sent se sent molt bé
bastant bo per al seu ús a partir d'aquí ens dirigim
cap al tanc aquí en el del medi
Aquí vam seleccionar Jenkins perquè estava
acostumar-se a ell i Mike / procés el
obres
bé i que és el programari lliure que pot fer-ho
utilitzant Jenkins vegades que podria
Jenkins podria donar-li alguns maldecaps si
que si no ho fa servir com un mestre només
sistema pel que si voleu utilitzar Jenkins
és millor assegurar-se que utilitza la construcció notes
i no construir res sobre Jenkins
si anem a Jenkins a tota la
orquestració i tots els altres
hi ha informes i la fabricació artesanal i hauria
ser-hi seria suficient, però el
es basa en altres màquines i això és
on tenim diversos dreta acumulació nas
aquí les coses factura construeixen c ++
projectes pitó projecte corren unitat
les proves que fan el que sigui prova d'integració
és necessari
a partir d'aquí vam tenir més d'un motiu i una
motiu és, en la versió n Debbie compatibles
um servidor de dipòsit, per la qual cosa vam decidir
enviar el nostre producte com un conjunt de Debian
Paquets i és més natural i 22
enviar els paquets de Debian en una i en una
repositori normal i pel que havien de
necessita alguna eina per gestionar paquets i
alguns d'ells estan disponibles i ens cenyim
amb una petició a causa que pensem oa la nostra
l'experiència s'ajusta al nostre cas d'ús pel millor
és que crec que està escrit i anar
madura crec que si i és bastant pràctic
per utilitzar que té un munt de característiques i i
Crec que s'obté la major part del llibre en realitat
fet al costat dret de evaporar l'
costat dret d'aquí que tenim una
talla la línia de punts que vol dir que alguns
la segregació de la xarxa pel que tenim la major part de
d'aquesta popelín a la nostra xarxa interna
o en realitat tot això la major part de la mateixa i sobre
el costat dret a l'exterior
la xarxa tenim alguns miralls externs
i això és bàsicament el que el motor X del motor
destral està servint de la reserva per a la nostra
clients i tenim diverses instàncies
de d'això aquí així que si m'he deixat alguna
de la matèria divertida i en realitat alguns
les coses útils, per exemple, també
tenir un servidor de traducció per a traductors
en realitat pot traduir nostra sencera
programari utilitzant una sola banda única
Interfície fem servir un lloc web per això, però
que és en realitat és agradable que ofereix la seva
refilo interfície web d'arrencada és
molt fàcil d'usar, però no és tan
important per a d'aquesta xerrada, però només per a
li donarà una idea que aquest és realment el
la majoria dels components importants de la
popelín així que vull començar amb una
cas d'ús i aquest cas d'ús és la construcció
i alliberar
una peça de programari estable del que suposem
que el desenvolupador aquí a l'ordinador portàtil
té un únic repositori i conté
una versió estable del programari i que també
té tota la informació de paquets de Debian
en ella pel que aquest repositori és bàsicament
llest per construir bé així que el que un desenvolupador
ha de fer és, bàsicament, per comprometre al seu
cometre l'estat actual de la
repositori en una branca de llançament en aquest
cas jo en dic alliberar ara, òbviament,
no pot haver-hi molts més, però per a aquest
exemple allibera suficient i de bona
allà tot el desenvolupador ha de fer és
empènyer aquest repositori d'aconseguir l'amor i obtenir
dalt no és només la de l'entrada a aquest
oleoducte, però també necessita o és el
màquina que és realment responsable de
l'arxiu de tot el codi font de manera que si
tenen comet en una branca i alliberament i
en una branca que podria ser potencialment
enviat a un client
seria molt convenient si vostè fa
Segur que aquest va cometre mai més va
de nou
així que aconsegueixi que li proporciona amb una característica
això es diu branques de protecció i
es pot configurar en base a projectes
en base a projectes i que li permet
protegir certes branques d'estar
suprimit i es vegi obligat a manera d'empenta
que els desenvolupadors poden es poden eliminar a poden
eliminar les branques i des d'allà vam tenir
més del 22 Jenkins bàsicament aconseguir la volta
Jenkins notifica sobre els canvis en
certs repositoris mitjançant l'ús d'ús d'aquest
pel que aquest llibre és una pedra que la
get norma API laboratori de funció es
bàsicament notifica Jenkins Jenkins em sent
tenir alguns canvis aquí potser vostè vulgui
fer alguna cosa amb ell
pel Jenkins en el seu costat té una llista enorme
de projectes que s'acumula es construeix per
Exemple C ++ projecte de branques d'alliberament
es construeix com a projecte pitó com totes les nits
versions ho-el que sigui bàsicament Jenkins
sap com construir coses pel que pren la
informació de bona volta i les comunicacions ok
aquest és un projecte de C ++ i en realitat és
provinent d'una branca de llançament pel que ha de
construir un comunicat, bàsicament, de manera Jenkins 1
uns passos i són bàsicament
seleccionar un de l'acumulació no proporcionar
01:00 construir un entorn de generació neta que fem
No comparteixi qualsevol entorn construït a través
factures, així que assegureu-vos que cada programari
cada paquet està integrat es troben en un lloc net
i entorn mínim si estàs
interessats estem fent servir debian Jenkins
pista perquè sigui un bon conjunt de
bàsicament shell script que resumeixen
distància una gran quantitat de l'essencial i aspre
detalls de paquets de Debian utilitzant quan
Jenkins Jenkins utilitza la factura
paquet o incorporat als comptes d'origen
construir els paquets binaris realitza proves sobre
el node d'acumulació paquets i després es
fet que recull tots els resultats de TI
recull l'artefacte constructor i es
proporciona a l'usuari amb alguna cosa com
gràfics i informes que és el que tots
vol tenir el que aquesta és la real
lloc on el desenvolupador pot mirar al
Estat actual d'aquest projecte perquè pugui
fer una ullada a ell i dir molt bé que això és
els XX acumulen un paquet de la seva
constructors neta que tenim 20 proves unitàries i
i ell pot ràpidament es pot fer una ullada a
això i en l'estat de la mateixa i això és
també el punt on es pot personalitzar
molt pel que si, per exemple, construït
documentació d'oxigen que hi ha alguns alguns
advertències i oxigen o d'oxigen en l'
projecte de llei
pany que desitja que potser vulgueu
per fer una ullada a això i la presentació d'informes i
i la funció de representació gràfica seria Jenkins
el lloc adequat per a visualitzar tals
canvis tals detalls perquè assumim
que l'edifici amb èxit i una de
els artefactes de construcció és en realitat un sistema binari
Els paquets Debian o de paquets de Debian de
hi ha
Jenkins pren un paquet i el llança a
una declaració i una petició fa una ullada a la
paquet entrant i l'edifici
la informació que es lliura amb ella
i avisos de notificació
bé aquest és un Això sembla ser un alliberament
paquet, ja que ve d'una
branca de llançament des del primer originals
comès d'aconseguir branca de llançament pel que
diu que està bé que sé com fer front a
comunicats vaig a prendre-ho i posar-ho
en el meu distribució inestable o
repositori que per al cas pel
això vol dir que un únic o tots els paquets
que es construeixen són bàsicament farcida
en un dels UPS únic repositori una petició
distribució tenim diverses de les persones
i vull obtenir només molt ràpidament durant
o més de les diferents distribucions que
hem de tenim, per exemple, ens inestable
tenir una prova i tenim un estable i
els diferents casos d'ús serveixen perquè el
un és inestable és la distribució que
els paquets es llancen en tot el temps pel
si el desenvolupador realitza una nova versió de
qualsevol paquet que s'emboteix en inestable
Ara, en algun moment en el temps que, bàsicament,
vol enviar el programari als clients
en cas contrari seria molt aviat de
negoci pel que en un moment donat en el temps que
desenvolupador ha de decidir bé això és
prou bo per obtenir bàsicament en
proves i proves significa que el nostre
Departament de departament de QA prova pot
començar a fer una ullada al corrent
estat de la
auditiva per la qual cosa l'equip pot ser, per exemple,
comprovar si s'instal·la d'aquesta
treball repositori si les actualitzacions funcionen si el
paquets són completa si les característiques
si estan treballant totes les caixes que estan
necessaris estan en realitat en si i
a partir d'aquí es necessita el nombre de Q18
bàsicament iniciar el treball de Jenkins i Mark
la distribució de prova com estable i
Estable significa que es duplica en el
repositoris externs a l'externa
miralls del que una vegada un membre de QA diu que està bé
aquest aquesta versió de la prova
repositori és prou bo pot ser
enviat als clients que poden comercialitzar una
estable i tot el que està ballant fora
fora del dipòsit de manera que aquesta és una
resum complet sobre la totalitat de la
canonada i vull aconseguir amb la mateixa rapidesa
amb un o dos altres casos d'ús com
així per donar-li una impressió de de
el que és el que és possible
així que abans que jo vull resumir ràpidament ens
tenir un paquet font estable amb el braç
la informació de paquets de Debian en ella ens
enviat aquest paquet per arribar arribar arribar de tornada
fer-se notar acumulació Jenkins Jenkins
el programari que tenim un debian binària
paquet que es troba en l'actualitat un motiu i
una vegada que degota cap avall a través de la canonada
a través de proves inestable i estable
tard o d'hora anem a colpejar el client
en algun moment i en general quan que
succeeix que el client va a reportar el quadre
esperem que fa al nostre cas ho fan
anirem endavant amb un altre exemple i
assumim bé com un client informa
Buck i anem a suposar que bé
un home pàgines que falten en una Debian
empaquetar els galls dindi en general no reben
va informar però anem a suposar per a aquest
exemple que el que el desenvolupador és
encarregat d'ok us plau a la pàgina mare per
aquest paquet i ara ho fa, crea
una branca sords bàsicament sords i recollir
qualsevol nom podria ser envasat per a sords
exemple i després comença a treballar en
el paquet i que ara podia, òbviament,
construir tot per si mateix el que va poder
construir un estat empaquetat localment aquí a
tota la prova de la unitat local de verificació Picard
la cobertura de codi localment a tot el
coses, però no hi ha necessitat de fer-ho perquè
També pot empènyer a aquest personal d'aquesta mort
envasat sucursal aquí només per aixecar-
de nou i deixar que l'amor faci la feina per ell
o fer el segon oleoducte faci la feina per la qual
aixecar-se una vegada més notar Jenkins Jenkins
sap com construir paquets que ve
d'una altra branca, però en realitat no
importa el que construeix paquets i de nou
Artesanies Jenkins i la presentació d'informes perquè l'usuari
pot detectar molt fàcilment, per exemple,
advertències i linxament Incheon és una eina
que és possible que vulgueu utilitzar en el cas
que està utilitzant paquets Debian és a és
1 desfibradora de David empaqueta i es pot
notificar-li de coses com bé hi ha una
binària en aquest paquet i no es troba
una pàgina de manual així que anem a suposar que aquest matí
es no s'ha anat i el projecte de llei és la construcció
està bé el que a més dels gràfics i
informar també hem de tenir la
de paquets de Debian i en aquest punt és
novament llançat contra una petició i lleig
diu que és un bé que és un paquet debian
en realitat és agradable, però està venint
alguna branca que no sé el que sembla
com si vingués des de l'embalatge def
No estic prenent de manera que, bàsicament, llençar
a les escombraries de manera que un podria dir molt bé que això és
aquest és un exemple bastant inútil
però sí que és la base de la construcció
altres coses a la part superior que són la tornada
a ser molt útil una vegada que vostè té
ells, per exemple, l'ús d'aquest aquesta
canonada i utilitzant un únic punt
motiu per decidir si o no els paquets
ha de colpejar el repositori que permet
fer coses com bé podem fer totes les nits
la reconstrucció de tots els paquets de Debian a qualsevol
Mai tenia temps arribarà a qualsevol repositori
però podem detectar coses com el canvi d'una
pis o visitat paquets o trencament de
empaquetat amb amb tals aquests casos
altres factors interessants i vull
que acaba de saltar molt ràpidament en aquest
perquè jo ja estic amb el temps, però només
per donar-li una impressió
sinó que també li permet proporcionar l'ús
casos com per què no crear un especial
distribució al servidor de miniaplicació que
es diu def envasat i si colpegem
Tal diferent positiu si si una
paquet realitza un repositori tal que va poder
anar als envasos de mort es aquesta
en aquest exemple, pel que no va massa
inestable que no vagi a tenir envasos
i des d'allí tenim una cabina regular i
repositori perquè pugui ser utilitzat internament
per QA departament pot ser utilitzat per per
desenvolupadors de si mateixa i això permet
exemple per fer grans Refactorizaciones sense
trencar inestable durant dos mesos o
tres mesos a causa de que el desenvolupador pot
triar qualsevol paquet font que vol o
qualsevol repositori que vol tallar sobre ella
i empènyer a cometre no no alliberar
branca, sinó a una branca de desenvolupament coneguda
i tots els paquets que es troben fora de
aquesta branca de desenvolupament conegut colpejar aquesta
molt repositori i mai
mai anar als clients, sinó que ho faria
ens permetrà certa alguna gran interna
proves i una vegada que la refactorització es fa
el treball pot simplement es van fusionar per
alliberar la pràctica i vostè té la primera
utilitzar el cas de nou així que òbviament és el meu temps
més en aquest moment vull simplement molt
anar ràpidament a repassar diverses
lliçons que hem après
potser són d'utilitat per a vostè estaria
gran si els havia conegut abans de la
primer és que és millor assegurar-se que
tenen una molt fàcil d'utilitzar canonada i
fàcil d'utilitzar mitjans de punt de desenvolupador
veure si l'ús de posar-se a la seva empresa
vos que la canonada estigui
controlable i utilitzable per obtenir només pel
si vostè té si vostè requereix la seva
desenvolupadors per configurar Jenkins per a la seva
edifici de programari propi que podria ser una
qüestió pel fet que alguns desenvolupadors, fins i tot si
és política de l'empresa que ha de Jenkins
ser utilitzat per a la construcció d'alguns desenvolupadors
diran si ho ignoro
altres fins diran que sí vaig a
prendre Jenkins per a la construcció, però mai he
sentit parlar de les proves unitàries i no m'importa
sobre gràfics sobre la unitat de proves bé ok
altres diran que sé bé com
com analitzar els resultats de les proves unitat che
amb Jenkins això és bo i que és feliç
però es va oblidar que hi ha, per exemple,
la cobertura de codi, així pel que seria
gran per assegurar-se que pugui
abstreure del promotor i
no requereixen un desenvolupador per configurar
Jenkins es pot fer una ullada al que
no hi ha problema, però bàsicament és millor
proporcionar per a ell o ella crec que és
important per obtenir els serveis en funcionament
realment ràpid, així que no no construeixen tots
les característiques que vostè pensa que són
importants o útils, però començar amb el
més important i disposar que
requisits que canvien amb el temps mmm
canvien molt sovint i amb més freqüència
és millor que preparar-se per això i
Crec que la millor preparació per a
canvis en els requisits és automatitzar
tant com sigui possible i automatització vol dir ok
Estic utilitzar ansible ús de titelles cuiner
tot el que ha de fer el seu servidor
configuració, però no s'aturen aquí
perquè per exemple haver molt soroll proporciona una
API eren tots els projectes poden ser amb
configurat mitjançant programació pel que hi ha
sense necessitat d'anar a través de la configuració de
diversos centenars de projectes i requereixen i
i Edita pertinença al grup o editar els ganxos
o alguna cosa per l'estil que pot ser
automatitzat de distància i que hauria de ser
forma automatitzada
Una altra cosa és si vostè està utilitzant Jenkins
hi ha projectes com Jenkins tret
constructor no sé si es tracta de si la gent
però saber que crec que és bastant útil
perquè tenim uns pocs no estic a punt
mil comprovació de botigues i canviant
parts individuals del treball ens exigeix una
minuts a fer això amb la mà i es podia
divertir-se durant les pròximes dues setmanes, així que si
utilitzeu conjunt utilitzant Jenkins vos
mai toca la interfície de configuració
de la mateixa excepte per a les proves i òbviament
L'últim punt és que triï millor la seva
eines sàviament
vam començar amb un altre repositori
servidor i sense dol molt molt
Evaluació bé perquè pensem que hem
sabut des del passat i que està bé que es
fa la seva feina, però ens hem topat amb limitacions
amb força rapidesa i, de fet quan es
construir una canonada de tals integracions vénen
amb el temps i pensa bé això és
només l'un es fa mal a ells el
debian servidor de repositoris que no pot ser
tan difícil d'esquinçar que fins, però en realitat, si
hi ha cinc serveis que
dependre d'ell i d'alguna manera la integració amb
ell ell a aconseguir la cosa es complica
Ok, així que això és tot de la meva xerrada gràcies
per escoltar
si té alguna pregunta
és possible que els demani la seva informant 4
minuts o pot buscar el contacte
detalls sobre la meva pàgina web
d'acord gràcies
sí, si us plau
Vegi a continuació que volia preguntar
A part d'aquestes eines de desenvolupament estan
Hi ha altres peces de programari lliure
utilitzar dels nostres altres aspectes de
el seu negoci com a nucli de comptabilitat
relacions amb els clients potser o projecte
gestió excel·lent pregunta
en aquest moment estem migrant d'una
la planificació de recursos d'empresa propietària
sistema a un programari lliure que es estiguin
anomenat Tritó no sé si si
saber que just en que seria almenys el
eina d'elecció per a nosaltres en aquest moment crec
No estic segur del que es diu nova
salut que es basa en el que es va provar
és possible que vulgueu buscar una nova salut
per obtenir donem i fer una ullada al que era
possible
Sí si us plau necessito per a la presentació i
revisar alguns important per predir la ramificació
educar cosa semblant a una mena de
que tenim una tenim una ramificació
model si i que es basa en l'alliberament
noms internament pel que és el que jo
que aquí es presenta és en realitat bastant
minuts a una fe que tenim amb força il·limitada
per explicar
així que bàsicament hem de tenim comunicats
cada pocs anys o pot ser que no es deixi anar
cada pocs anys que fos que tenen noms
i per sota d'aquest nom hem llançat
branques i que tenen el desenvolupament
branques i que tenen branques d'embalatge
i tot el tipus de coses així que si ho fem
i si vostè està interessat ve a mi
després, i vaig a explicar en detall
a vostè
sip de benvinguda
si, si us plau, si, com bregar amb
com fins i tot haver estat un mestre molt vell
com tres setmanes d'edat
no tractar de integrar-lo amb la banda
llançat com setmanal o igual que intentar
fusionar aquestes branques velles de la nova versió
que més característiques afegides per l'únic
en la forma i que pot causar un altre
tipus de quadre
ok així que la pregunta és quan quan
tenir tals branques de desenvolupament de llarg que
fem servir i després es empaquetar
separat ja sigui que les fusionem volta
i en realitat sí ho fem, bàsicament,
sobrepassi així que el que colpeja el desenvolupament
branca no importa per a nosaltres, així que r
hi ha molts que són molts els comitès
només treballant progrés material com aquest
i una vegada que tornin a la mestra o al
branca de llançament en general estan aixafats
commit en lògiques amb adequada comprometre
missatges i després tota la canonada és
reconstruït o el programari es torna a generar pel
el que no fem és no prenem
paquets de desenvolupament de Debian que copegen una
repositori de desenvolupament i moure'l cap
el repositori estable o inestable pel que
assegurar-se que totes les formacions fet utilitzi
el camí en els alliberaments en allà, així que
Mai tenir paquets binaris de Debian per
sords a tot el que tot el que sempre
reconstruir el tipus de coses
D'acord

Share this subtitle


Description

This talk will cover how to power the development infrastructure of a small (non-cloud) company using free software. I present the goals and our requirements for the infrastructure and dig into some interesting parts, including: * Using a free software pipeline to get from code to the final product. * Discuss the use of free software alternatives to proprietary solutions. * Why the work on infrastructure is never finished. * Lessons learned