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

14   0   0  
  Pause sub
por iso, grazas por teren benvida ao meu
presentación que eu vou falar sobre
a construción dun desenvolvemento de software libre
medio ou gasoduto para unha pequena
empresa basicamente é algo que nós
temos e construído durante os últimos tres
anos a nosa empresa
O meu nome é o cultivo de plantas máis resistentes son un
enxeñeiro de sistemas nunha pequena austríaca
empresa startup e facemos laboratorio
equipo de proba para papel e celulosa
industria, de xeito que, basicamente, construír dispositivos
que vende a clientes e os
clientes usalo para probar determinados aspectos
por exemplo, papel para que no caso de unha proba
sería a cantidade de auga pode unha peza de
papel absorber o tipo de dispositivos nada
en particular de fantasía a partir dun punto de tecnoloxía
de vista que estamos usando na maior parte C ++ así a maioría
do suave ao terzo do que está escrito no
C ++, entón hai unha Python 3 e
obviamente, a glicosa que precisa
en todas partes sería basicamente paixón e
todos os 15
Sabía antes quere realmente
falar do gasoduto gustaríame
introducir algúns dos requisitos que
tivemos e eses son só algúns deles
Creo que é importante para obter o seu
sensación de que é necesario polo menos
para o noso caso de uso por iso un importante
esixencia era ter soporte offline
a sede da empresa está situada en
Austria no campo e que é
realmente bo se ollar para a fiestra
e iso se pode ver na herba verde
montañas e basicamente o caso
pero non é beneficioso en caso de pretender
conexión de internet adecuada, de xeito que temos un
conexión de internet lenta eo vez
trasfega o desexa, para que non máis confían
máis en internet que sería
sería bo para nós
Outra cousa que sabemos do pasado
-se que é moi beneficioso para non
depende de calquera máquina do creador único
nalgún lugar eu estou seguro que a maioría de vostedes teñen
oído
as historias ou telo visto coa súa
ollos propios que algúns portátil algunha máquina
nalgún oficina dalgún desenvolvedor é
en realidade, o aspecto máis importante de
a empresa, porque sen estes
sen ese portátil determinados produtos poden
ser construído en calquera lugar
Non sei se alguén é así todas as cousas
así, pero eu vin-os e son
Non é gran ter entón é mellor
prepararse para ela
outra cousa é que debe ser fácil de
usar e doado de usar medios debemos usar
ferramentas e debemos proporcionar aos desenvolvedores
ferramentas que están cómodos con
por iso, se estamos usando obtelo sería óptimo
se o creador pode interactuar cun
gasoduto e orquestrar o gasoduto ou
a maior parte do gasoduto só usando get
Bastante xusto
e outra cousa é que debe ser
comprensible creo que é bastante
importante para un ambiente construído que
que os usuarios poidan comprende-lo non o fan
Debe obter obter toda a eternidade gran
detalles do mesmo, pero ten que ter un ollar
para el e eles deben dicir ben sei que
construíu este paquete e foi dende esta
máquina para esta máquina esta máquina e
isto aconteceu que sería que sería
ser xusto o suficiente
e tamén ter un comprensible
oleoduto significa que tamén é un hackable
polo que pode ser pode ser facilmente modificado e
o axustado conforme a necesidade Quero dar
-lle unha visión moi mínima que nós
ter
é lonxe de ser completa, pero
contén os aspectos máis importantes que
son necesarios para este 20 minutos de conversa así
Vou dar unha breve introdución ao
todas as pezas aquí e entón eu vou
aporta-lo con algúns casos de uso, a fin
para conseguir o seu sentimento de que é
posible, de xeito que queremos comezar o
inferior esquerda aquí, onde temos unha
creador portátil podería ser calquera cousa que
caixa de Mac fiestras máquina Linux
o que quere que non hai ningún determinado requisito
en tal máquina, basicamente, os desenvolvedores
debe sentirse cómodo
coa obtención do seu traballo feito entón quizais 90
quizais quizais max e algúns de control de versións
sistema sería sería suficiente para obter
comezou alí decidimos para
cabeza obter volta como o noso como un repositorio
servidor de xestión ou versión socialismo
sistema de control porque usalo
internamente unha morea de nos gusta e nos
creo que é o que está aquí para ficar por iso lemos
entón nós cremos que sería óptimo se
Ten algo que evidentemente soporta
obter e tamén permite que os desenvolvedores usen un
arma para afrontar se queiran, porque
algúns desenvolvedores non sente que o aforro
con con con unha liña de comandos e quizais
algunhas tarefas son moi fáciles de facer en tal
unha interface web, entón nós cremos que sería
ser unha boa volta sería sería un gran
ferramenta aquí e estamos moi satisfeitos co
elección, en realidade, naquela época, cando
comezou foi foi un pouco rústica, pero
agora se sente se sente moi ben
moi bo para usar de alí nos diriximos
máis para o vaso está aquí nun medio
aquí seleccionamos Jenkins, porque eu estaba
acostumar con iso e Mike / proceso sexa cal sexa
traballo
ok e é software libre que está todo ben
usando Jenkins, por veces, pode vostede
Jenkins podería darlle algunhas dores de cabeza se
se non usalo como un mestre única
sistema para que se quere usar Jenkins
é mellor estar seguro que use construír notas
e non construír nada en Jenkins
-Se deixar Jenkins a todo
orquestación e os outros
elaboración de informes e elaboración e habería
estar alí sería suficiente, pero facer o
constrúe noutras máquinas e iso é
onde temos varios construción dereito do nariz
aquí o material bill eles constrúen C ++
proxectos python proxecto corren unidade
probas que fan probas de integración sexa cal sexa
cómpre
a partir de aí, tivemos ata un chamamento e unha
fundamento é, polo Debbie n versión compatible
hum servidor repositorio por iso decidimos
enviar o noso produto como un conxunto de Debian
paquetes e é a máis natural e 22
enviar paquetes Debian nunha e nunha
arquivo de Debian regular e así
precisa de ferramenta para xestionar paquetes e
algúns deles están dispoñibles e que furar
cun chamamento porque pensamos ou no noso
probalo encaixa no noso caso de uso mellor así
é que eu creo que está escrito e ir
madura i pensa así e é moi útil
usar ten unha morea de recursos e i
creo que comeza a maior parte do libro, en realidade,
feito no lado dereito da evapora-se o
do lado dereito del aquí temos un
curta a liña punteada que significa que algúns
segregación de rede así que temos a maioría dos
desta popelina na nosa rede interna
ou, en realidade, toda ela máis do mesmo e en
o lado dereito do externo
rede temos algúns espellos externos
e que é basicamente motor X, por forma motor
ax está servindo o repositorio ao noso
clientes e temos varias instancias
de que aquí entón si eu deixei de fóra algúns
do material divertido, de feito, e algúns
o material útil, por exemplo, tamén
ter un servidor de tradución de xeito tradutores
Pode realmente traducir todo o noso
software empregando un único web único
Interface usan un sitio para iso, pero
é que é realmente bo que ofrece o seu
Twitter interface web de bootstrap é
moi doado de usar, pero non é tan
importante para a esta conversa, pero só para
darlle unha idea de que este é realmente o
a maioría dos compoñentes importantes do
popeline entón eu quero comezar cun
Caso de Uso e este caso de uso é construír
e liberar
unha peza estable de software entón asumimos
que o creador aquí no seu portátil
ten un único repositorio e contén
unha versión estable do programa e tamén
ten toda a información de paquetes Debian
nel para este repositorio é basicamente
preparado para construír ok entón o que un creador
cómpre facer é basicamente cometer del para
comprometer o estado actual da
depósito para unha rama release neste
caso chamalo lanzar agora, obviamente,
pode haber moitos máis, pero para este
exemplo libera bo o suficiente e de
hai todo o creador que facer
empurrar este repositorio para amor e
-Se non é só a entrada a este
oleoduto, pero tamén precisa dunha ou é o
máquina que é realmente responsable
arquivando todo o código fonte por iso, se
ten compromete-se en unha rama de liberación e e
nun sector que podería ser potencialmente
enviado a un cliente
sería moi aconsellable se fai
Asegúrese de que este cometer nunca
aínda que de novo
para obter que lle proporciona unha característica
que se chama de protección e ramas
vostede pode configurar-lo en base a proxecto
en base a proxecto e permite que
protexer determinados ramos de estar
excluída e de ser obrigado impulso para así
que os desenvolvedores poden poden extirpar pode
extirpar ramas e de alí tivemos
máis de 22 Jenkins basicamente obter colo
notifica Jenkins sobre o cambio
certos repositorios mediante usando este
libro así que esta é unha pedra que o
O recurso de laboratorio API get estándar que
basicamente notifica Jenkins hey Jenkins I
ten algúns cambios aquí quizais quere
facer algo con el
así Jenkins do seu lado ten unha lista enorme
de proxectos que constrúe constrúe para
Exemplo C ++ proxecto para ramos de liberación
el constrúe proxecto de python como como nightly
versións que-todo o que Jenkins basicamente
sabe como construír cousas, entón ela asume a
información de boa volta e avisos ok
este é un proxecto en C ++ e é realmente
vindo dun sector release así que eu debería
construír unha versión basicamente así Jenkins un
algúns pasos e son, basicamente,
seleccionando unha das build non contén
un construído nun ambiente de compilación limpa que facemos
non compartir calquera ambiente construído a través
contas así que asegurarse de que cada programa
cada paquete é built-in están nun ambiente limpo
e ambiente mínimo se está
interesados que estamos usando Debian Jenkins
pista para que el é un bo conxunto de
basicamente shell script que abstract
fóra unha morea de o nitty e valente
detalles de empaquetado Debian usando cando
usa Jenkins Jenkins titula o
paquete ou construíron as contas de orixe para
construír os paquetes binarios fai probas en
o no de compilación de paquetes e despois é
feito que recolle todos os resultados das TIC
recolle o artefacto constructor e
ofrece ao usuario algo como
gráficos e informes que é o que todos
Quere ter por iso este é o real
onde creador pode ollar para o
estado actual deste proxecto para que poida
bótalle un ollo nel e dicir ben iso é
os XX construír un paquete da súa
construtores limpa temos 20 probas de unidade e
e pode, pode rapidamente un ollo
e que, no estado do mesmo e esta é
tamén o punto onde pode personalizar
moi por iso, se, por exemplo construída
documentación de osíxeno uns algúns
avisos e osíxeno ou en osíxeno
proxecto de lei
bloqueo que quere que pode querer
para dar un ollo e este informe e
e recurso de Jenkins gráficos sería
o lugar axeitado para ver tales
cambios tales detalles, entón imos tomar
que o edificio exitoso e un de
os artefactos de construción é de feito un par
paquetes Debian ou paquete Debian de
alí
Jenkins leva un paquete e lanza-o para
un chamamento e un chamamento lanza unha mirada sobre o
paquete de entrada e do edificio
información que se inclúe con ela
e avisos de concurso
ok este é un Isto parece unha liberación
paquete porque está vindo dun
ramo de lanzamento desde o get orixinais
empeñada en obter sector release para que
di que está ben Sei como xestionar
lanzamentos Vou leva-lo e poñelas
na miña distribución inestable ou
depósito para que para que o asunto de xeito
Isto significa que un ou todos os paquetes
que son construídos basicamente son recheas
nun único repositorio ups un chamamento
distribución, temos varios destes
e quero estar só moi rapidamente sobre
ou ao longo dos diferentes distribucións
temos temos, por exemplo, nos inestable
ter unha proba e temos un estable e
aqueles que serven a diferentes casos de uso de xeito que o
un é inestable é a distribución que
paquetes son xogados en todo o tempo así
se o creador fai unha nova versión do
calquera paquete recheo á inestable
agora nalgún punto no tempo basicamente
Quere enviar software para os clientes
se non, sería logo fóra do
negocio así nun punto no tempo I
creador que decidir ok este é
bo o suficiente para obter basicamente en
ensaios e probas significa que a nosa
proba Departamento de departamento de QA pode
comezar a tomar un ollar para o actual
Estado de
lata auditivo para que o equipo, por exemplo,
probar se instala dende esta
traballo repositorio se actualizacións de funcionar se o
envases están completas, as características
Se están traballando todas as caixas que son
obrigatorios están, en realidade, e si
de alí nós esixen a Q18 para
basicamente iniciar o traballo de Jenkins e Mark
a distribución e tan estable probas
medios estables que é espello ao
repositorios externos ao externo
espellos así xa que un membro do QA di que está ben
este esta versión da proba
depósito é bo o suficiente, pode ser
enviados para os clientes que poden comercializar un
estable e todo está bailando fóra
fóra do repositorio de xeito que este é un
listaxe completa sobre a sobre a enteira
gasoduto e quero estar só rapidamente
cun ou dous outros casos de uso como
ben para lle dar unha impresión de de
que é o que se pode
polo que antes Quero rapidamente resumir nos
ten un paquete fonte brazo estable con
debian información envasado en que
enviou este paquete para chegar obter colo
Comezar observado construción Jenkins Jenkins
software, temos unha unha debian binario
paquete que está presente un chamamento e
xa que escorre a través do gasoduto
a través de probas inestable e estable
máis tarde ou máis cedo, vai bater o cliente
nalgún momento e, xeralmente, cando iso
pasa o cliente caixa de denunciar
espero que fai no noso caso o fagan
imos seguir con outro exemplo e
imos supor ok tales cliente relata un
Buck e imos supor que ok
un home páxinas en falta a partir dun debian
embalaxe eses dólares normalmente non reciben
informar, pero imos supor que a este
exemplo de que é así que o creador é
encargado ok por favor, na páxina de nai a
este paquete e agora fai crea
unha rama xordos basicamente xordos e escoller
calquera nome podería ser envasado xordo por
exemplo e, a continuación, el comeza a traballar en
o paquete e agora podería obviamente
construír todo só que podía
construír un ser embalados local aquí en
todo o test de unidade local comprobación Picard
a cobertura de código local para todo o
cousas, pero non hai ningunha necesidade de porque
Tamén pode empurrar esa equipo esta morte
embalaxe filial aquí só para se erguer
novo e deixar o amor facer o traballo por el
ou facer o último gasoduto facer o traballo de forma
erguer-se unha vez máis en conta Jenkins Jenkins
sabe como construír paquetes se trata
doutro sector, pero realmente non
importa, por iso constrúese paquetes e de novo
Artesanía Jenkins e informes para o usuario
pode moi facilmente detectar, por exemplo,
avisos de Incheon e linchamento é unha ferramenta
que pode querer usar en caso
está a usar paquetes Debian é unha é
un linteis para David paquetes e pode
notificarlle lo sobre cousas como ben hai un
binario neste paquete e está ausente
unha páxina home entón imos asumir esta mañá
é non foi ea conta é construír
súa ok, entón, ademais dos gráficos e
relatando tamén debemos ter a
paquete Debian e, neste punto, é
novo xogado contra un chamamento e feo
di que está ben é un é un paquete Debian
é realmente bo, pero está a benvida
algún ramo que eu non sei que parece
como está benvida envasado def
Non estou levando el para que basicamente xogar
-la así que se pode dicir así que é
este é un exemplo moi inútil
si, pero é a base da construción
outras cousas enriba que son á súa vez
-Se moi útil xa que ten
Los, por exemplo, usando este agasallo
oleoduto e usando a un único punto
fundamento para decidir se debe ou non paquetes
debe bater o repositorio permite que
facer cousas como ben podemos facer todas as noites
reconstrución de todos os paquetes de Debian en calquera
tempo nunca se vai bater calquera repositorio
pero podemos detectar cousas como cambiar a
paquetes PIS ou ir ou rotura
empaquetado con eses tales casos
outros factores interesantes e quero
só para ir moi rápido no que
porque eu xa estou co tempo, pero só
para darlle unha impresión
Tamén permite que para facilitar uso
casos como por que non crear un especial
distribución no servidor de aplicación que
chámase barra def e se loita
Tal diferente positiva si un
paquete alcanza un tal depósito que podía
ir á barra de morte é esa
neste exemplo para que non vaia moi
inestable terá de envases
e de aí temos un taxi regular e
depósito para que poida ser usado internamente
por QA departamento se pode usar durante polo
-Se promotores e isto permite
exemplo para facer grandes refatorações sen
quebrando inestable durante dous meses ou
tres meses xa que o creador pode
escoller calquera paquete de orixe que quere ou
calquera repositorio que quere cortar nela
e empuxe a cometer non non liberar
sucursal, pero a unha rama de desenvolvemento coñecida
e todos os paquetes que saen de
este sector de desenvolvemento coñecida acadar este
moi repositorio e nunca
Nunca ir para os clientes, pero que
permitir-nos un un gran interna
ensaios e unha vez que o refatoramento faise
o traballo pode simplemente ser fundidas para
liberar a práctica e ten o primeiro
usar caso de novo tan obviamente o meu tempo é
sobre a dereita agora quero só moi
rapidamente pasar por riba para ir ao longo de varios
leccións que aprendemos
quizais sexan útiles para ti que eu sería
óptimo se eu soubese-los antes do
Primeiro é mellor que seguro que
ter un realmente fácil de usar gasoduto e
easy-to-use supón para o punto creador
ver se usa get na súa empresa
asegurarse de que a tubaxe está
controlable e utilizable por obter só tan
Se tes se esixe o seu
desenvolvedores para configurar Jenkins para a súa
construción de software propio que pode ser un
problema porque algúns desenvolvedores aínda que
é política da empresa que Jenkins debe
pode usar para a construción dalgúns desenvolvedores
vai dicir si eu ignore-lo
outros finas vai dicir si vou
tomar Jenkins para a construción, pero eu nunca
escoitou falar de probas de unidade e non me importa
sobre gráficos sobre unidade examina ok fina
outras van dicir ben, eu sei como
como analizar os resultados de proba de unidade che
con Jenkins iso é bo e está feliz
pero esqueceuse que hai, por exemplo,
cobertura de código, así así sería
óptimo para asegurarse de que podes
abstracto lonxe do creador e
non esixen un creador configurar
Jenkins pode dar un ollo ao que fai
ningún problema, pero, basicamente, é mellor
proporcionar para el ou ela creo que é
importante para obter servizos funcionando
verdadeira rapidamente polo que non non construír todo
as características que pensas que son
importante é útil, pero comezar co
máis importante e prever que
requisitos para cambiar ao longo do tempo mmm
cambian a miúdo máis frecuentemente e
é mellor prepararse para iso e
Eu creo que a mellor preparación para
requisitos cambio é automatizar
na medida do posible e de automatización significa ok
Estou usar ansible uso monicreques xefe
o que quere que ten que facer o seu servidor
configuración, pero non deixa por aí
porque, por exemplo, obter alto ofrece unha
API estaban todos os proxectos con pode ser
configurada programaticamente por iso hai
non hai necesidade de percorrer as opcións do
varios centos de proxectos e esixen e
e garras de adhesión de edición de grupo ou editar
ou algo así que pode ser
automatizado de distancia e que debe ser
forma automática
outra cousa é se está a usar Jenkins
hai proxectos como Jenkins tiro
Constructor Non sei se é que as persoas
sei que, pero eu creo que é moi útil
porque temos algúns que eu non vou
mil comprobando tendas e cambiando
pezas únicas do traballo nos un require
minutos de facelo a man e podería
divírtete se para as próximas dúas semanas para que se
está a usar o conxunto usando Jenkins comproba se
nunca toque na interface de configuración
del, agás para o exame, obviamente, e
O último punto é que escoller mellor o seu
ferramentas sabios
Comezamos con outro repositorio
servidor e sen enfrontamento moi moi
avaliación, porque pensamos temos todo ben
sábese do pasado e é ok que
fai o seu traballo, pero se loita limitacións
moi rapidamente e, en realidade, cando
construír tal gasoduto integracións veñen
co paso do tempo e pensas que todo ben esta é
só un se machuca-los a
servidor de arquivo de Debian non pode ser
tan difícil de rasgar-se que, pero en realidade se
hai cinco outros servizos que
dependen del e de algunha maneira integrar con
É obtelo está complicado
ok entón é iso da miña charla grazas
moito para escoitar
Se ten algunha dúbida
pode preguntar-lles o seu informante catro
minutos ou pode atopar o contacto
detalles sobre a miña páxina
vale grazas
Sí por favor
vexa abaixo gustaríame pedir
ademais destas ferramentas de desenvolvemento son
Existen outras pezas de software libre
para usar a partir dos nosos outros aspectos da
a súa empresa como núcleo de contabilidade
relacións con clientes quizais ou proxecto
xestión excelente pregunta
estamos actualmente migrando lonxe dun
planificación de recursos empresariais propietarias
sistema para un software libre deles é
chamado Triton Non sei se se
sei que mesmo na sería polo menos o
ferramenta de selección para nós agora creo
Eu non estou seguro que eu creo que se chama de novo
saúde, que está construído enriba intentou en modo
pode querer ollar a unha nova saúde
para demos e ter un ollar para o que era
posible
si, por favor necesito para presentación e
revisar algúns unificada para o modelo de ramificación
educar algo como isto por tipo de
que temos un temos unha ramificación
modelar si e está baseado na liberación
nomes internamente por iso é o que eu
presentado aquí é realmente moi un
minutos un fide temos duro ilimitada
para explicar
Entón, basicamente temos temos lanzamentos
cada poucos anos ou non liberar se
cada poucos anos que fora, que teñen nomes
e baixo este nome nos lanzamos
ramos e temos o desenvolvemento
ramos e temos filiais de envasado
e todo tipo de cousas, entón si o que facemos
e se está a benvida interesa me
despois e eu vou explicar en detalle
a ti
si benvida
si, por favor, si, como se encarga de
como incluso ter un profesor moi vello foi
como tres semanas de idade
tente integrala lo coa banda
lanzado como semanalmente ou só como tentar
mesturar estes ramos vellos a nova versión
que máis recursos engadidos pola única
na forma e que poden causar outros
especie de caixa
ok entón a pregunta é cando cando
teñen tales ramas de desenvolvemento longos que
usamos e despois imos ser embalados
separado quere fundín-los de volta
e, de feito, si, nós basicamente
rebase entón o que atinxe ao desenvolvemento
rama non importa para nós, entón nós r
hai moitas comisións que son
só traballar material progreso así
e unha vez que volver para dominar ou
rama release son xeralmente esmagados
en commits lóxicos con adecuada comprometer
mensaxes e, a continuación, toda a pipeline é
reconstruídos ou o software é reconstruído polo
o que non facer é non tomamos
paquetes de desenvolvemento de Debian que alcanzaron un
depósito de desenvolvemento e movelo en
o repositorio inestábel ou estable, de xeito que
asegúrese de que todas as compilacións realmente usar
o camiño coas versións alí así que
nunca tomar paquetes Debian binarios para
xordos ao que todos estamos sempre
reconstruír o tipo de cousas
Ok

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