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

14   0   0  
  Pause sub
así que gracias por venir a mi
presentación voy a hablar de
la construcción de un desarrollo de software libre
medio ambiente o de la tubería por una pequeña
empresa, básicamente, que es algo de lo que
tenemos y hemos construido durante los últimos tres
años en nuestra empresa
mi nombre está creciendo plantas más dura que soy una
ingeniero de sistemas en una pequeña austríaca
compañía de lanzamiento y lo hacemos de laboratorio
equipos de pruebas de pulpa y papel
la industria, así que básicamente construimos dispositivos
que vendemos a los clientes y las
clientes lo utilizan para probar ciertos aspectos
por ejemplo, papel para el caso una prueba
sería la cantidad de agua puede un pedazo de
papel absorba el tipo de dispositivos de nada
en particular de lujo desde un punto de tecnología
de vista que estamos utilizando en su mayoría C ++ por lo que la mayor parte
de la suave al tercio de los que está escrito en
c ++ entonces hay una Python 3 y
obviamente, la glucosa que necesita
en todas partes, básicamente, la pasión y la
todo el 15
¿sabía antes quiere realmente
hablar de la tubería me gustaría
introducir algunos de los requisitos que
que teníamos y esos son sólo algunos de ellos
Creo que es importante conseguir su
sensación de lo que se requiere, al menos,
para nuestro caso de uso de manera importante
requisito era tener el apoyo desconectado
nuestra sede de la empresa se encuentra en
Austria en el campo y que es
en realidad estaba bien si nos fijamos en la ventana
y esto se puede ver en la hierba verde
montañas y básicamente ese es el caso
pero no es beneficioso en caso de que quiera
conexión a Internet adecuada por lo que tenemos una
conexión a Internet lenta y el lugar
flick desea, así que no dependemos mejor
demasiado en el Internet que sería
que sería bueno para nosotros
Otra cosa que sabemos del pasado
lo que es muy beneficioso para no
dependerá en cualquier máquina de desarrollador individual
Estoy seguro de que en algún lugar la mayoría de ustedes tienen
oído
las historias o lo han visto con su
ojos propios que algunos portátil alguna máquina
en alguna oficina de algún desarrollador es
en realidad el aspecto más importante de
la empresa porque sin los
sin este portátil ciertos productos pueden
ser construido en cualquier parte
No sé si alguien es lo que todas las cosas
así, pero los he visto y son
No es bueno tener, así que mejor
prepararse para ella
otra cosa es que debe ser fácil de
usar y fácil de usar medios que debemos utilizar
herramientas y debemos ofrecer a los desarrolladores
herramientas que se sienten cómodos con
por lo que si estamos usando conseguirlo sería grande
si el desarrollador puede interactuar con una
tuberías y orquestar la tubería o
la mayor parte de la tubería sólo por el uso get
lo suficientemente justo
y otra cosa es que debería ser
comprensible creo que es bastante
importante para un entorno construido que
que los usuarios puedan entender que no lo hacen
necesitará conseguir obtener toda la Eternidad gran
detalles de la misma, sino que debe echar un vistazo
en ella y que debe decir muy bien Sé que
construido este paquete y se pasó de esta
máquina para esta máquina esta máquina y
esto ocurrió que habría que haría
ser lo suficientemente justo
y que tiene también una comprensible
tubería significa que también es un hackable
lo que puede ser puede ser modificado fácilmente y
Ajustado según sea necesario Quiero dar
que una visión muy mínima parte de lo que
tener
está lejos de ser completa, pero
contiene los aspectos más importantes que
Para ello se necesitan 20 minutos de conversación por lo
Voy a darle una breve introducción a
todas las partes aquí y entonces lo haré
le proporcionará algunos casos de uso con el fin
para obtener su sentimiento de lo que es
posible, de manera que queremos empezar en el
parte inferior izquierda aquí donde tenemos una
portátil desarrollador podría ser cualquier cosa que
caja de mac máquina de Windows Linux
lo que no hay cierto requisito
en dicha máquina, básicamente, los desarrolladores
debe sentirse cómodo
con para realizar su trabajo así que tal vez 90
tal vez tal vez máximo y un poco de control de versiones
sistema sería sería suficiente para conseguir
iniciado a partir de ahí nos decidimos a
pick de conseguir la vuelta como nuestro como un repositorio
servidor de administración o la versión de socialismo
sistema de control ya que lo utilizamos
internamente mucho nos gusta y nos
creo que es que está aquí para quedarse por lo que leemos
así que pensamos que sería genial si si
tener algo que, obviamente, apoya
reciben y también permite a los desarrolladores utilizar una
arma a la cara si quieren porque
algunos desarrolladores no se sienten que el ahorro
con con con una línea de comandos y tal vez
algunas tareas son bastante fácil de hacer en tales
una interfaz web, por lo que pensamos que lo haría
ser una buena vuelta sería sería una gran
herramienta de aquí y estamos muy contentos con el
elección de hecho en ese entonces cuando
comenzamos era que era un poco peligrosa, pero
en este momento se siente se siente muy bien
bastante bueno para su uso a partir de ahí nos dirigimos
hacia el tanque está aquí en el del medio
Aquí seleccionamos Jenkins porque estaba
acostumbrarse a él y Mike / proceso lo
trabajos
bien y que es el software libre que puede hacerlo
utilizando Jenkins veces que podría
Jenkins podría darle algunos dolores de cabeza si
que si no lo utiliza como un maestro sólo
sistema por lo que si desea utilizar Jenkins
es mejor asegurarse de que utiliza la construcción notas
y no construir nada sobre Jenkins
sí vamos a Jenkins a toda la
orquestación y todos los demás
hay informes y la fabricación artesanal y habría
estar allí sería suficiente, pero lo
se basa en otras máquinas y eso es
donde tenemos varios derecha acumulación nariz
aquí las cosas factura construyen c ++
proyectos pitón proyecto corren unidad
las pruebas que hacen lo que sea prueba de integración
se necesita
a partir de ahí tuvimos más de un motivo y una
motivo es, en la versión n Debbie compatibles
um servidor de repositorio, por lo que decidimos
enviar nuestro producto como un conjunto de Debian
Paquetes y es más natural y 22
enviar los paquetes de Debian en una y en una
repositorio normal y por lo que debian
necesita alguna herramienta para manejar paquetes y
algunos de ellos están disponibles y nos ceñimos
con una petición debido a que pensamos o en nuestra
la experiencia se ajusta a nuestro caso de uso por lo mejor
es que creo que está escrito e ir
madura creo que sí y es bastante práctico
para usar que tiene un montón de características y i
Creo que se obtiene la mayor parte del libro en realidad
hecho en el lado derecho de evaporar el
lado derecho de aquí que tenemos una
corta la línea de puntos que significa que algunos
la segregación de la red por lo que tenemos la mayor parte de
de esta popelina en nuestra red interna
o en realidad todo ello la mayor parte de la misma y sobre
el lado derecho en el exterior
la red tenemos algunos espejos externos
y eso es básicamente lo que el motor X del motor
hacha está sirviendo de la reserva para nuestra
clientes y tenemos varias instancias
de de eso aquí así que sí me he dejado alguna
de la materia divertida y en realidad algunos de
las cosas útiles, por ejemplo, también
tener un servidor de traducción para traductores
en realidad puede traducir nuestra entera
software utilizando una sola banda única
Interfaz usamos un sitio web para eso, pero
que es en realidad es agradable que ofrece su
gorjeo interfaz web de arranque es
muy fácil de usar, pero no es tan
importante para de esta charla, pero sólo para
le dará una idea de que este es realmente el
la mayoría de los componentes importantes de la
popelina así que quiero empezar con una
caso de uso y este caso de uso es la construcción
y liberar
una pieza de software estable de lo que suponemos
que el desarrollador aquí en su computadora portátil
tiene un único repositorio y contiene
una versión estable del software y que también
tiene toda la información de paquetes de Debian
en ella por lo que este repositorio es básicamente
listo para construir bien así que lo que un desarrollador
tiene que hacer es, básicamente, para comprometer a su
cometer el estado actual de la
repositorio en una rama de lanzamiento en este
caso yo lo llamo liberar ahora, obviamente,
no puede haber muchos más, pero para este
ejemplo libera suficiente y de buena
allí todo el desarrollador tiene que hacer es
empujar este repositorio de conseguir el amor y obtener
arriba no es sólo la de la entrada a este
oleoducto, pero también necesita o es el
máquina que es realmente responsable de
el archivo de todo el código fuente por lo que si
tienen comete en una rama y liberación y
en una rama que podría ser potencialmente
enviado a un cliente
sería muy conveniente si usted hace
Seguro que este cometió nunca jamás va
de nuevo
así que consiga que le proporciona con una característica
eso se llama ramas de protección y
se puede configurar en base a proyectos
en base a proyectos y que le permite
proteger a ciertas ramas de estar
suprimido y se vea obligado a modo de empuje
que los desarrolladores pueden se pueden eliminar a pueden
eliminar a las ramas y desde allí tuvimos
más del 22 Jenkins básicamente conseguir la vuelta
Jenkins notifica sobre los cambios en
ciertos repositorios mediante el uso de uso de ese
por lo que este libro es una piedra que la
get norma API laboratorio de función se
básicamente notifica Jenkins Jenkins me oye
tener algunos cambios aquí tal vez usted quiera
hacer algo con él
por lo Jenkins en su lado tiene una lista enorme
de proyectos que se acumula se construye para
Ejemplo C ++ proyecto de ramas de liberación
se construye como proyecto pitón como todas las noches
versiones lo-lo que sea básicamente Jenkins
sabe cómo construir cosas por lo que toma la
información de buena vuelta y las comunicaciones ok
este es un proyecto de C ++ y en realidad es
proveniente de una rama de lanzamiento por lo que debe
construir un comunicado, básicamente, de modo Jenkins una
unos pasos y son básicamente
seleccionar uno de la acumulación no proporcionar
una construyeron un entorno de generación limpia que hacemos
No comparta cualquier entorno construido a través
facturas, así que asegúrese de que cada software
cada paquete está integrado se encuentran en un lugar limpio
y entorno mínimo si estás
interesados estamos usando debian Jenkins
pista para que sea un buen conjunto de
básicamente shell script que resumen
distancia una gran cantidad de lo esencial y áspero
detalles de paquetes de Debian utilizando cuando
Jenkins Jenkins utiliza la factura
paquete o incorporado a las cuentas de origen
construir los paquetes binarios realiza pruebas sobre
el nodo de acumulación paquetes y después se
hecho que recoge todos los resultados de TI
recoge el artefacto constructor y se
proporciona al usuario con algo como
gráficos e informes que es lo que todos
quiere tener lo que esta es la real
lugar donde el desarrollador puede mirar en el
Estado actual de este proyecto para que pueda
echar un vistazo a él y decir muy bien que esto es
los XX acumulan un paquete de su
constructores limpia que tenemos 20 pruebas unitarias y
y él puede rápidamente se puede echar un vistazo a
eso y en el estado de la misma y esto es
también el punto donde se puede personalizar
mucho por lo que si, por ejemplo, construido
documentación de oxígeno que hay algunos algunos
advertencias y oxígeno o de oxígeno en el
cuenta
cerradura que desea que tal vez desee
para echar un vistazo a esto y la presentación de informes y
y la función de representación gráfica sería Jenkins
el lugar adecuado para visualizar tales
cambios tales detalles para que asumamos
que el edificio con éxito y una de
los artefactos de construcción es en realidad un sistema binario
Los paquetes Debian o de paquetes de Debian de
ahí
Jenkins toma un paquete y lo lanza a
una declaración y una petición echa un vistazo a la
paquete entrante y el edificio
la información que se entrega con ella
y avisos de notificación
bien este es un Esto parece ser una liberación
paquete, ya que viene de una
rama de lanzamiento desde el primer originales
cometido de conseguir rama de lanzamiento por lo que
dice que está bien que sé cómo hacer frente a
comunicados voy a tomarlo y ponerlo
en mi distribución inestable o
repositorio de que para el caso por lo
esto significa que un único o todos los paquetes
que se construyen son básicamente rellena
en uno de los UPS único repositorio una petición
distribución tenemos varias de las personas
y quiero obtener sólo muy rápidamente durante
o más de las diferentes distribuciones que
tenemos que tenemos, por ejemplo, nos inestable
tener una prueba y tenemos un estable y
los diferentes casos de uso sirven para que el
uno es inestable es la distribución que
los paquetes se lanzan en todo el tiempo por lo
si el desarrollador realiza una nueva versión de
cualquier paquete que se embute en inestable
Ahora, en algún momento en el tiempo que, básicamente,
quiere enviar el software a los clientes
de lo contrario sería muy pronto de
negocio por lo que en un momento dado en el tiempo que
desarrollador tiene que decidir bien esto es
lo suficientemente bueno para obtener básicamente en
pruebas y pruebas significa que nuestro
Departamento de departamento de QA prueba puede
empezar a echar un vistazo a la corriente
estado de la
auditiva por lo que el equipo puede ser, por ejemplo,
comprobar si se instala de esta
trabajo repositorio si las actualizaciones funcionan si el
paquetes son completa si las características
si están trabajando todas las cajas que están
necesarios están en realidad en sí y
a partir de ahí se necesita el número de q18
básicamente iniciar el trabajo de Jenkins y Mark
la distribución de prueba como estable y
Estable significa que se duplica en el
repositorios externos a la externa
espejos de lo que una vez un miembro de QA dice que está bien
este esta versión de la prueba
repositorio es lo suficientemente bueno puede ser
enviado a los clientes que pueden comercializar una
estable y todo lo que está bailando fuera
fuera del depósito por lo que esta es una
resumen completo sobre la totalidad de la
tubería y quiero conseguir con la misma rapidez
con uno o dos otros casos de uso como
así para darle una impresión de de
lo que es lo que es posible
así que antes de que yo quiero resumir rápidamente nos
tener un paquete fuente estable con el brazo
la información de paquetes de Debian en ella nos
enviado este paquete para llegar llegar llegar de vuelta
hacerse notar acumulación Jenkins Jenkins
el software que tenemos un debian binaria
paquete que se encuentra en la actualidad un motivo y
una vez que gotea hacia abajo a través de la tubería
a través de pruebas inestable y estable
tarde o temprano vamos a golpear el cliente
en algún momento y por lo general cuando que
sucede que el cliente va a reportar el cuadro
esperemos que hace en nuestro caso lo hacen
vamos a ir adelante con otro ejemplo y
asumamos bien como un cliente informa
Buck y vamos a suponer que bien
un hombre páginas que faltan en una debian
empaquetar los pavos por lo general no reciben
informó pero vamos a suponer para este
ejemplo que se lo que el desarrollador es
encargado de ok por favor a la página madre para
este paquete y ahora lo hace, crea
una rama sordos básicamente sordos y recoger
cualquier nombre podría ser envasado para sordos
ejemplo y luego empieza a trabajar en
el paquete y que ahora podía, obviamente,
construir todo por sí mismo lo que pudo
construir un sido empaquetado localmente aquí en
toda la prueba de la unidad local de verificación Picard
la cobertura de código localmente a todo el
cosas, pero no hay necesidad de hacerlo porque
También puede empujar a este personal de esta muerte
envasado sucursal aquí sólo para levantarse
de nuevo y dejar que el amor haga el trabajo por él
o hacer lo segundo oleoducto haga el trabajo por lo
levantarse una vez más notar Jenkins Jenkins
sabe cómo construir paquetes que viene
de otra rama, pero en realidad no
importa lo que construye paquetes y de nuevo
Artesanías Jenkins y la presentación de informes para que el usuario
puede detectar muy fácilmente, por ejemplo,
advertencias y linchamiento incheon es una herramienta
que es posible que desee utilizar en el caso
que está utilizando paquetes Debian es a es
una desfibradora de David empaqueta y se puede
notificarle de cosas como bien hay una
binaria en este paquete y no se encuentra
una página de manual así que vamos a suponer que esta mañana
se no se ha ido y el proyecto de ley es la construcción
está bien lo que además de los gráficos y
informar también tenemos que tener la
de paquetes de Debian y en este punto es
nuevamente lanzado contra una petición y feo
dice que es un bien que es un paquete debian
en realidad es agradable, pero está viniendo
alguna rama que no sé lo que parece
como si viniera desde el embalaje def
No estoy tomando por lo que, básicamente, tirar
a la basura por lo que uno podría decir muy bien que esto es
este es un ejemplo bastante inútil
pero sí es la base de la construcción
otras cosas en la parte superior que son la vuelta
a ser muy útil una vez que usted tiene
ellos, por ejemplo, el uso de este esta
tubería y utilizando un único punto
motivo para decidir si o no los paquetes
debe golpear el repositorio que permite
hacer cosas como bien podemos hacer todas las noches
la reconstrucción de todos los paquetes de Debian en cualquier
Nunca tenía tiempo llegará a cualquier repositorio
pero podemos detectar cosas como el cambio de una
pis o visitado paquetes o rotura de
empaquetado con con tales tales casos
otros factores interesantes y quiero
que acaba de saltar muy rápidamente en ese
porque yo ya estoy con el tiempo, pero sólo
para darle una impresión
sino que también le permite proporcionar el uso
casos como por qué no crear un especial
distribución en el servidor de applet que
se llama def envasado y si golpeamos
Tal diferente positivo si si una
paquete realiza un repositorio tal que pudo
ir a los envases de muerte se esta
en este ejemplo, por lo que no va demasiado
inestable que no vaya a tener envases
y desde allí tenemos una cabina regular y
repositorio para que pueda ser utilizado internamente
por QA departamento puede ser utilizado por por
desarrolladores de sí misma y esto permite
ejemplo para hacer grandes Refactorizaciones sin
romper inestable durante dos meses o
tres meses debido a que el desarrollador puede
elegir cualquier paquete fuente que quiere o
cualquier repositorio que quiere cortar sobre ella
y empujar a cometer no no liberar
rama, sino a una rama de desarrollo conocida
y todos los paquetes que se encuentran fuera de
esta rama de desarrollo conocido golpear esta
muy repositorio y nunca
nunca ir a los clientes, sino que lo haría
nos permitirá cierta alguna gran interna
pruebas y una vez que la refactorización se hace
el trabajo puede simplemente se fusionaron para
liberar la práctica y usted tiene la primera
utilizar el caso de nuevo así que obviamente es mi tiempo
más en este momento quiero simplemente muy
ir rápidamente a repasar varias
lecciones que hemos aprendido
tal vez son de utilidad para usted estaría
grande si los había conocido antes de la
primero es que es mejor asegurarse que
tienen una muy fácil de usar tubería y
fácil de usar medios de punto de desarrollador
ver si el uso de ponerse en su empresa
asegúrese de que la tubería esté
controlable y utilizable por obtener sólo por lo
si usted tiene si usted requiere su
desarrolladores para configurar Jenkins para su
edificio de software propio que podría ser una
cuestión debido a que algunos desarrolladores, incluso si
es política de la empresa que debe Jenkins
ser utilizado para la construcción de algunos desarrolladores
dirán sí lo ignoro
otros finos dirán que sí voy a
tomar Jenkins para la construcción, pero nunca he
oído hablar de las pruebas unitarias y no me importa
acerca de gráficos sobre la unidad de pruebas bien ok
otros dirán que sé bien cómo
cómo analizar los resultados de las pruebas unidad che
con Jenkins eso es bueno y que es feliz
pero se olvidó que existe, por ejemplo,
la cobertura de código, así por lo que sería
grande para asegurarse de que que pueda
abstraer del promotor y
no requieren un desarrollador para configurar
Jenkins se puede echar un vistazo a lo
no hay problema, pero básicamente es mejor
proporcionar para él o ella creo que es
importante para obtener los servicios en funcionamiento
realmente rápido, así que no no construyen todos
las características que usted piensa que son
importantes o útiles, pero comenzar con el
más importante y disponer que
requisitos que cambian con el tiempo mmm
cambian muy a menudo y con mayor frecuencia
es mejor que prepararse para eso y
Creo que la mejor preparación para
cambios en los requisitos es automatizar
tanto como sea posible y automatización significa ok
Estoy usar ansible uso de marionetas cocinero
todo lo que tiene que hacer su servidor
configuración, pero no se detienen ahí
porque por ejemplo haber mucho ruido proporciona una
API eran todos los proyectos pueden ser con
configurado mediante programación por lo que hay
sin necesidad de ir a través de los ajustes de
varios cientos de proyectos y requieren y
y Editar pertenencia al grupo o editar los ganchos
o algo por el estilo que puede ser
automatizado de distancia y que debería ser
forma automatizada
Otra cosa es si usted está utilizando Jenkins
hay proyectos como Jenkins disparo
constructor no sé si se trata de si la gente
pero saber que creo que es bastante útil
porque tenemos unos pocos no estoy a punto
mil comprobación de tiendas y cambiando
partes individuales del trabajo nos exige una
minutos a hacer eso con la mano y se podía
divertirse durante las próximas dos semanas, así que si
estás usando conjunto utilizando Jenkins asegúrese
nunca toca la interfaz de configuración
de la misma excepto para las pruebas y obviamente
El último punto es que elija mejor su
herramientas sabiamente
empezamos con otro repositorio
servidor y sin duelo mucho mucho
Evaluación bien porque pensamos que hemos
sabido desde el pasado y que está bien que se
hace su trabajo, pero nos hemos topado con limitaciones
con bastante rapidez y, de hecho cuando se
construir una tubería de tales integraciones vienen
con el tiempo y piensa bien esto es
sólo el uno se hace daño a ellos el
debian servidor de repositorios que no puede ser
tan difícil de rasgar que hasta, pero en realidad, si
hay otros cinco servicios que
depender de él y de alguna manera la integración con
él él a conseguir la cosa se complica
Ok, así que eso es todo de mi charla gracias
por escuchar
si tiene alguna pregunta
es posible que les pida su informante cuatro
minutos o puede buscar el contacto
detalles acerca de mi página web
Vale gracias
sí por favor
Vea a continuación que quería preguntar
Aparte de estas herramientas de desarrollo están
Hay otras piezas de software libre
utilizar de nuestros otros aspectos de
su negocio como núcleo de contabilidad
relaciones con los clientes tal vez o proyecto
gestión excelente pregunta
en este momento estamos migrando de una
la planificación de recursos de empresa propietaria
sistema a un software libre que se estÃ
llamado Tritón no sé si si
saber que justo en que sería al menos el
herramienta de elección para nosotros en este momento creo
No estoy seguro de lo que se llama nueva
salud que se basa en lo que se probó
es posible que desee buscar una nueva salud
para obtener demos y echar un vistazo a lo que era
posible
Sí por favor necesito para la presentación y
revisar algunos importante para predecir la ramificación
educar a algo parecido a una especie de
que tenemos una tenemos una ramificación
model sí y que se basa en la liberación
nombres internamente por lo que es el que yo
que aquí se presenta es en realidad bastante
minutos a una fe que tenemos con fuerza ilimitada
para explicar
así que básicamente tenemos que tenemos comunicados
cada pocos años o puede que no se suelte
cada pocos años que fuera que tienen nombres
y por debajo de este nombre hemos lanzado
ramas y que tienen el desarrollo
ramas y que tienen ramas de embalaje
y todo el tipo de cosas así que sí lo hacemos
y si usted está interesado viene a mí
después, y voy a explicar en detalle
para ti
sip de bienvenida
sí, por favor, sí, ¿cómo lidiar con
como incluso haber sido un maestro muy viejo
como tres semanas de edad
no tratar de integrarlo con la banda
lanzado como semanal o al igual que tratar de
fusionar estas ramas viejas de la nueva versión
que más características añadidas por el único
en la forma y que puede causar otro
tipo de cuadro
ok así que la pregunta es cuando cuando
tener tales ramas de desarrollo de largo que
usamos y luego se empaquetarán
separado ya sea que las fusionamos vuelta
y en realidad sí lo hacemos, básicamente,
rebase así que lo que golpea el desarrollo
rama no importa para nosotros, así que r
hay muchos que son muchos los comités
sólo trabajando progreso material como ese
y una vez que vuelvan a la maestra o al
rama de lanzamiento por lo general están aplastados
commit en lógicas con adecuada comprometerse
mensajes y luego toda la tubería es
reconstruido o el software se vuelve a generar por lo
lo que no hacemos es no tomamos
paquetes de desarrollo de Debian que golpean una
repositorio de desarrollo y moverlo hacia
el repositorio estable o inestable por lo que
asegurarse de que todas las formaciones hecho utilice
el camino en las liberaciones en allí, así que
Nunca tener paquetes binarios de Debian para
sordos a todo lo que todo lo que siempre
reconstruir el tipo de cosas
De acuerdo

Share this subtitle


Description