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

14   0   0  
  Pause sub
так что спасибо за то , чтобы мой
презентации я буду говорить о
построение свободного разработки программного обеспечения
окружающей среды или трубопровод для небольшой
Компания в основном это некоторые из тем, что мы
есть и мы построили в течение последних трех
лет в нашей компании
мое имя выращивания растений жестче я
системный инженер на небольшом австрийском
Начинающая компания и мы делаем лабораторию
испытательное оборудование для целлюлозно-бумажной промышленности
индустрия поэтому в основном мы строим устройства
что мы продаем клиентам и те,
клиенты используют его для проверки некоторых аспектов
, например , из бумаги , таким образом один тест
было бы, сколько воды может кусок
бумага поглощает вид устройства ничего
особенно фантазии с точки технологии
зрения мы используем в основном C ++ , так что большинство
из мягкой на треть написано в
C ++ , то есть Python 3 и
очевидно , глюкоза , что вам нужно
везде будет в основном страсть и
все 15
знаете ли вы, прежде чем хотите на самом деле
говорить о трубопроводе я хотел бы
ввести некоторые требования, которые
у нас были и те , лишь некоторые из них
Я думаю , что это важно , чтобы получить ваш
ощущение того , что требуется по крайней мере ,
для нашего случая использования так один важный
Требование было иметь автономную поддержку
наша штаб-квартира компании находится в
Австрия в сельской местности , и это
на самом деле хорошо , если вы посмотрите на окно
и это вы можете увидеть зеленую траву
горы и в основном это так
но это не выгодно в случае , если вы хотите
правильное подключение к интернету , поэтому мы имеем
медленное подключение к Интернету и довольно
Флик вы хотите , чтобы мы не лучше полагаться
слишком много в Интернете , что было бы
было бы хорошо для нас
Другое дело , что мы знаем из прошлого
то , что весьма полезно не
зависит от какой-либо одной машине разработчика
где - то я уверен , что большинство из вас
услышанным
истории или видели его вместе с
собственные глаза , что некоторые ноутбук некоторые машины
в каком - то офисе от некоторых разработчик
на самом деле наиболее важным аспектом
компания , потому что без тех ,
без этого ноутбука некоторые продукты могут
будет построен в любом месте
Я не знаю , если кто -то так все вещи
как это , но я видел их , и они
не так уж велика , чтобы таким образом мы лучше
подготовиться к нему
другое дело, это должно быть легко
использовать и простой в использовании средства мы должны использовать
инструменты, и мы должны предоставить разработчикам
инструменты , которые они удобны с
так что если мы используем получить это было бы здорово
если разработчик может взаимодействовать с
трубопроводов и организовать трубопровод или
большая часть трубопровода только с помощью GET
справедливо
и другое дело, оно должно быть
понятно , я думаю , что это вполне
важно для встроенной среды,
что пользователи могут понять они этого не делают
нужно , чтобы получить все Вечность великий
Подробности об этом, но вы должны смотреть
у него , и они должны сказать , хорошо , я знаю , я
построил этот пакет, и он пошел от этого
Машина для этой машины и эта машина
это случилось , что было бы , что бы
быть достаточно справедливым
а также имея понятной
трубопровода означает , что он также является одним взломать
поэтому он может быть легко изменена и
Скорректированная по мере необходимости я хочу , чтобы дать
вы очень минимальный обзор того, что мы
иметь
это далеко не полный , но это
содержит наиболее важные аспекты, которые
необходимы для этого 20-минутного разговора так
Я собираюсь дать краткое введение в
все части здесь и тогда я буду
предоставить вам некоторых случаях использовать для того ,
чтобы получить ваше чувство того , что
возможно , поэтому мы хотим , чтобы начать на
слева внизу здесь , где у нас есть
ноутбук разработчик может быть что угодно , что
Linux машины окна коробки макинтош окно
все , что нет определенных требований
на такой машине в основном разработчики
должны чувствовать себя комфортно
с получением его работу так , может быть 90
может быть , может быть , не более , а некоторые управления версиями
система была бы бы достаточно, чтобы получить
начал оттуда мы решили, чтобы
забрать получить круг , как наш , как хранилище
Сервер управления или социализм версия
Система управления, потому что мы используем его
внутри много нам нравится, и мы
думаю , что это здесь , чтобы остаться так , мы читаем
поэтому мы решили , что было бы здорово , если бы , если бы мы
есть то, что, очевидно, поддерживает
получить , а также позволяет разработчикам использовать
оружие к лицу , если они хотят , потому что
некоторые разработчики не чувствуют , что сохранение
с с с командной строкой и , возможно ,
некоторые задачи довольно легко сделать на таких
веб-интерфейс, поэтому мы решили, что это будет
быть хорошим коленях бы было бы большим
инструмент здесь и мы вполне довольны
выбор на самом деле тогда , когда мы
начал это было немного грубо, но
Прямо сейчас он чувствует, что чувствует себя вполне достаточно
достаточно хорошо , чтобы использовать оттуда мы мы голову
к танке здесь в средней
здесь мы выбрали Дженкинс , потому что я был
привык к этому и микрофоне / процесса независимо
работает
нормально , и это бесплатное программное обеспечение , это нормально
используя Jenkins иногда могут вас
Дженкинс может дать вам некоторые головные боли , если
вы, если вы не используете его в качестве ведущего только
Система так если вы хотите использовать Дженкинс
вам лучше убедиться , что вы используете построить заметки
и ничего на Дженкинс не строить
Сам пусть Дженкинс ко всем
оркестровки и все остальные
там отчетности и разработке и будет
там будет достаточно , но сделать
строит на других машинах , и это
где у нас есть несколько право строить нос
здесь законопроект материал , который они строят C ++
проект питона проектов они работают блок
тесты они делают тест интеграции независимо
необходим
Оттуда мы имели к мольбой и а
мольба на Дебби н версии , совместимые
гм сервер хранилища , поэтому мы решили
грузить наш продукт как набор Debian
пакеты , и это наиболее естественный и 22
отправлять пакеты Debian в и в
регулярный репозиторий Debian и поэтому вы
нужен некоторый инструмент для обработки пакетов и
некоторые из них доступны и мы придерживаемся
с просьбой , потому что мы думаем , что и в нашем
испытать это соответствует нашему случай использования лучше всего так
это я думаю , что это написано и идти
зрелыми я так думаю , и это очень удобно
использовать у него есть много возможностей , и я
думаю , вы получите большую часть книги на самом деле
делается на правой стороне выпаривать
правая часть этого здесь вы у нас есть
Короче говоря пунктирная линия , что означает , что некоторые
сеть сегрегация поэтому мы имеем большинство
поплина этого в нашей внутренней сети
или на самом деле все это большая его часть и на
правая рука на внешний
сеть у нас есть некоторые внешние зеркала
и что в основном двигатель X так двигатель
Топор служит хранилища для нашего
клиенты и у нас есть несколько экземпляров
из того , что здесь , так что да , я оставил некоторые
из забавных вещей на самом деле , и некоторые из
полезный материал, например, мы также
есть сервер перевода так переводчиков
может реально перевести весь наш
Программное обеспечение с использованием одного единого веб
Интерфейс мы используем веб - сайт для этого , но
это на самом деле это хорошо , что обеспечивает ваш
Twitter Bootstrap веб - интерфейс это
очень проста в использовании , но это не так
важно для для этого разговора , но только
дать вам представление о том, что это на самом деле
наиболее важных компонентов из
поплина , поэтому я хочу , чтобы начать работу с
случай использования и этот вариант использования заключается в создании
и отпустить
стабильная часть программного обеспечения , поэтому мы предполагаем ,
что разработчик здесь на своем ноутбуке
имеет единое хранилище и содержит
стабильный релиз программного обеспечения, и это также
содержит всю информацию о Пакете
в нем , так это хранилище в основном
готовы строить хорошо , таким образом , что разработчик
нужно сделать , это в основном совершают своему , в
совершить текущее состояние
хранилище для филиала выпуска в этом
случай я называю это релиз Теперь очевидно ,
там может быть много больше , но для этого
Пример выпускает достаточно , и от хорошего
там все разработчику нужно сделать , это
подтолкнуть этот репозиторий , чтобы получить любовь и получить
до не только вход в этот
трубопровода , но также необходимо или является одним
машина, которая на самом деле несет ответственность за
архивирование весь исходный код , так что если вы
есть совершает на ветке выпуска и и
на ветке она потенциально может быть
поставляется заказчику
было бы очень желательно , если вы сделаете
уверен , что это обязательство никогда не идет
прочь снова
так что получить , что предоставляет вам функции
что называется защитные ветви и
вы можете настроить его на проектной основе
на проектной основе , и это позволяет
защиты определенных отраслей от того,
удален и от принудительного толчок к так
что разработчики могут могут отсеять может
отсеять ветви и оттуда мы должны были
более 22 Дженкинс в основном получают круг
уведомляет Дженкинс об изменениях
некоторые хранилищами с помощью с помощью этого
Книга так что это камень , что
Стандартная функция Get лаборатории API его
в основном уведомляет Дженкинс эй Дженкинс я
есть некоторые изменения здесь , может быть , вы хотите
сделать что-то с ним
так Дженкинс на его стороне имеет огромный список
проектов, которые он строит он строит для
Пример C ++ проект для филиалов выпуска
он строит проект питона и как каждую ночь
версии , что-то , что Дженкинс в основном
знает, как строить вещи, так что берет
информация от хорошего круга и уведомлений ок
это C ++ проект , и это на самом деле
исходя из ветви релиза , так что я должен
построить релиз в основном так Дженкинс
несколько шагов, и они в основном
выбрав один из сборки не обеспечивая
встроенный чистой среды сборки мы делаем
не разделяют любую искусственную среду через
счета поэтому мы уверены , что каждое программное обеспечение
каждый пакет встроен в чистый
и минимальная среда , если вы
заинтересованы мы используем DEBiAN Дженкинс
Ключ для что это хороший набор
в основном сценарий оболочки , что абстрактные
прочь много вшивый и шероховатый
детали упаковки с использованием DEBiAN , когда
вы используете Jenkins Jenkins купюр
пакет или встроенные исходные законопроекты
строить бинарные пакеты запускает тесты на
пакеты и после сборки узла
сделал он собирает все результаты ней
собирает строитель артефакт и его
предоставляет пользователю что - то вроде
графиков и отчетов , что то , что все
хочет иметь так это фактическая
место, где разработчик может смотреть на
текущее состояние этого проекта , так что вы можете
смотреть на него и сказать , хорошо это
двадцатый создать пакет своей
Строители чистой У нас есть 20 модульных тестов и
и он может он может быстро взглянуть на
что и в состоянии него , и это
также пункт , где вы можете настроить
довольно много , так что если вы, например , встроенный
документация кислорода есть некоторые некоторые
предупреждения и кислорода или в кислороде
законопроект
блокировки , что вы хотите , что вы могли бы хотеть
чтобы взглянуть на эту и отчетности и
и построения графиков особенность Дженкинс будет
правильное место , чтобы визуализировать такие
изменения , такие детали , так что давайте предположим ,
что здание успешным, и один из
Построенные артефакты на самом деле является бинарным
Пакеты Debian или Debian пакет из
там
Дженкинс принимает пакет и бросает его
мольба и мольба принимает взгляд на
входящий пакет и здание
информация, которая поставляется вместе с ним
и уведомление уведомления
ОК это это выглядит как релиз
пакет, потому что это Выходец из
Ветвь релиза от оригинального ГЭТ
стремится получить ветвь релиза , так что
говорит , хорошо , я знаю , как бороться с
релизы Я собираюсь взять его и положить его
в моем нестабильном дистрибутиве или
хранилище , что по этому вопросу так
это означает , что один или все пакеты
которые строятся в основном чучела
в один взлетов хранилище мольбу
Распределение у нас есть некоторые из них ,
и я хочу просто очень быстро получить более
или более различных распределений,
у нас есть у нас есть, например, нестабильного мы
есть тестирование, и мы имеем стабильную и
те служат различные варианты использования так
нестабильным один является распределение, что
пакеты брошены все время так
если разработчик создает новый выпуск
любой пакет он заправленные в нестабильным
теперь в какой - то момент времени вы в основном
хотите отправить программное обеспечение для клиентов
в противном случае вы бы в ближайшее время из
бизнес , поэтому в один момент времени I
разработчик должен решить , хорошо это
достаточно хорошо, чтобы получить в основном в
тестирование и тестирование означает , что наши
Тестирование Департамент отдела QA может
начинают смотреть на текущий
Состояние окружающей
Слуховые поэтому команда может, например ,
тест , устанавливает ли из этого
работа хранилище , если обновление будет работать , если
Пакеты являются полными , если черты
работают , если все коробки , которые являются
требуется на самом деле в и да
оттуда мы требуем Q18 в
в основном начать работу Дженкинс и Марк
распределение тестирование как стабильное и
стабильные означает , что она отражается на
внешние хранилища к внешнему
зеркала так , как только член КК говорит хорошо
это эта версия тестирования
хранилище достаточно хорошо это может быть
отгружается потребителям он может рынок
стабильной и все танцуют снаружи
вне хранилища , так что это
полное изложение на на всем
трубопроводов , и я хочу , чтобы просто быстро получить
на с одной или двух других случаях использования в качестве
хорошо , чтобы дать вам впечатление от
то , что возможно
поэтому , прежде чем я хочу быстро подвести итог мы
есть исходный пакет стабильной с предплечьем
Информация по пакетам Debian в этом мы
послал этот пакет , чтобы получить получить получить круг
Как заметил Дженкинс Jenkins сборки
Программное обеспечение у нас есть бинарный Debian
пакет , который находится в настоящем мольбой и
как только он капает вниз по трубопроводу
через неустойчивую тестирования и стабильного него
рано или поздно мы ударим клиента
в какой - то момент , и , как правило , при том , что
происходит клиент сообщит окно
мы надеемся , что он делает в нашем случае они делают это
давайте перейдем с другим примером и
давайте предположим , что нормально такой клиент сообщает об
бакс и давайте предположим , что нормально
а страницы человека отсутствуют из Debian
упаковать эти деньги , как правило , не получают
сообщили, но давайте предположим, что для этого
Пример , который он так разработчик
поставлена задача ОК , пожалуйста , на странице мама
этот пакет , и теперь он делает , он создает
глухой ветви в основном глухие и выбрать
любое имя может быть глухими упаковка для
пример, а затем он начинает работать над
пакет и теперь он мог , очевидно ,
построить все сам он мог
строить были упакованы локально здесь
все испытания блок локально проверка Пикард
охват код локально все
вещи , но нет никакой необходимости , потому что он
может также подтолкнуть этот персонал эта смерть
упаковки отрасль здесь просто встать
снова и пусть любовь сделает всю работу за него
или же второй трубопровод делают работу таким образом,
встать еще раз заметить Jenkins Jenkins
знает , как строить пакеты речь идет
из другой отрасли , но на самом деле не
независимо от того , так он строит пакеты и снова
Дженкинс ремесел и отчетности , так что пользователь
вполне может довольно легко определить, например,
Инчхон предупреждения и линчевание является инструментом
что вы можете захотеть использовать в случае
вы используете Debian пакеты , это является
ЛИНТЕР для Давида пакетов , и он может
уведомлять вас о вещах, как хорошо, что есть
двоичный в этом пакете и он отсутствует
мужчина страница так что давайте предположим , сегодня утром
это не пошел, а счет заключается в создании
его хорошо поэтому кроме графиков и
отчетности мы также должны иметь
Debian пакет и в этот момент он
снова швырнули мольбой и некрасиво
говорит , что все в порядке , это это пакет Debian
это на самом деле хорошо , но он исходит из
некоторые ветви , что я не знаю , это выглядит
как это исходит от четкости упаковки
Я не беру его , чтобы он в основном бросить
это прочь так можно было бы сказать , хорошо это
это довольно бессмысленно пример
да , но это основа строительства
другие вещи на вершине, которые черед
чтобы быть весьма полезным , как только вы
их, например , с помощью этого этот
трубопроводов и используя единую точку а
о признании вины , чтобы решить , стоит ли пакеты
должен попасть в хранилище позволяет
делать такие вещи , как хорошо мы можем сделать каждую ночь
восстановление всех пакетов Debian в любом
время ни разу не ударит по какой - либо репозиторий
но мы можем определить такие вещи , как изменяя
ИП и пошли пакеты или поломки
в комплекте с такими таких случаях
Другие интересные факторы , и я хочу
просто очень быстро прыгать на что
потому что я уже в течение долгого времени, но только
чтобы дать вам впечатление
он также позволяет обеспечить использование
такие дела, как почему бы не создать специальный
Распределение на сервере апплета,
называется четкости упаковки и если мы попали
такой разный положительный , если , если
пакет попадает такой репозиторий он мог
перейти к смерти упаковки это
в этом примере , так что это не заходит слишком
нестабильна пойдет не иметь упаковку
а оттуда у нас есть регулярные такси и
хранилище, поэтому он может быть использован внутри
по QA - отдел может быть использован путем
Сам разработчики и это позволяет
Пример делать большие рефакторинга без
поломка нестабильным в течение двух месяцев или
три месяца , потому что разработчик может
выбрать любой пакет источника, который он хочет или
любой репозиторий , который он хочет взломать на него
и подтолкнуть к совершению не не выпускать
филиал , но в известной ветви разработки
и все пакеты , которые выпадают из
это известное развитие отрасли ударил этого
очень репозиторий и никогда
когда-либо идти к клиентам, но это было
позволяют нам некоторые некоторые большие внутренние
тестирование и после того , как рефакторинга делается
работа может просто быть объединены в
релиз практики и у вас есть первый
использовать случай снова так очевидно , что мое время
над прямо сейчас я хочу просто очень
быстро перейти перейти на несколько
уроки, которые мы узнали
может быть , они полезны для вас , я бы
здорово , если бы я знал их до того , как
Первый вам лучше убедиться , что вы
имеют очень простой в использовании трубопровода и
простой в использовании средство для точки проявителя
посмотреть , если вы используете попасть в вашей компании
убедитесь , что трубопровод
управляемым и годным к употреблению путем получить только так
если у вас есть, если вам требуется ваш
разработчикам настройки Jenkins для их
собственное программное обеспечение здания , которое могло бы быть
проблема , потому что некоторые разработчики , даже если
это политика фирмы , которая должна Дженкинс
быть использованы для построения некоторых разработчиков
скажу я Yep игнорировать
тонкие другие скажут да , я собираюсь
Дженкинс взять для строительства , но я никогда
слышал о единичных испытаний , и я не забочусь
о графиках о блоке тестов ОК штраф
другие из них будут говорить хорошо , я знаю , как
как анализировать результаты модульного тестирования Che
с Дженкинс , что это хорошо , и он счастлив
но он забыл , что есть, например ,
покрытия кода, а поэтому было бы
велика, чтобы убедиться, что, что вы можете
абстрагироваться от разработчика и вам
не требует от разработчика для конфигурирования
Дженкинс он взглянуть на нее может
не проблема, но в основном это не лучше
предоставить ему или ей я думаю , что это
Важно, чтобы получить услуги и работает
реальный быстро , так что не не строят все
функции, которые вы думаете,
важным или полезным, но начать с
Наиболее важным из них и обеспечить, что
Требования к изменениям с течением времени ттт
они меняются очень часто и чаще
вам лучше подготовить себя к этому и
Я думаю, что лучшая подготовка к
изменение требований заключается в автоматизации, как
насколько это возможно и средств автоматизации в порядке
Я использовать анзибль использование куклами шеф - повар
все, что вы должны сделать свой сервер
конфигурации , но не останавливаться на достигнутом
потому что, например получить громкий обеспечивает
API были все проекты могут быть кон
сконфигурирован программным способом, так что есть
нет необходимости, чтобы пройти через настройки
несколько сотен проектов и требуют и
и статус редактирования группы или редактировать крючки
или что-то подобное, что может быть
автоматизирован прочь и она должна быть
автоматизированный способ
другое дело, если вы используете Дженкинс
есть такие проекты , как Дженкинс выстрел
строитель я не знаю , если это , если люди
знаю , что , но я думаю , что это очень полезно
потому что у нас есть несколько я не собираюсь
тысячи проверки магазинов и изменения
отдельные части работы требует от нас в
минут сделать это вручную , и вы могли бы
весело провести время в течение следующих двух недель , так что если
вы используете набор с помощью Дженкинс убедитесь
вы никогда не прикасайтесь к интерфейсу конфигурационного
его для тестирования, очевидно, за исключением случаев и
Последний пункт вам лучше выбрать
инструменты мудро
мы начали с другой репозиторий
сервер и без матчапе многое
оценка , потому что мы думали , что мы в порядке
Известно это из прошлого , и это нормально , что ему
делает свою работу , но мы достигли ограничения
довольно быстро и на самом деле , когда вы
построить такой трубопровод интеграции прийти
в течение долгого времени , и вы думаете , хорошо это
только один получает травму у них один
сервера репозитория Debian он не может быть
что трудно разорвать , что до но на самом деле , если
Есть пять других услуг, которые
зависят от него и каким - то образом интегрироваться с
он это получить его становится сложнее
ОК , так что это все из моей беседы большое спасибо
очень много для прослушивания
если у вас есть какие - либо вопросы
Вы могли бы спросить их их информатора четыре
минут или вы можете найти контакт
подробности о моей веб - странице
хорошо, спасибо
Да, пожалуйста
смотрите ниже я хотел спросить
в стороне от этих инструментов разработчика являются
есть какие-либо другие части свободного программного обеспечения
использовать от наших других аспектов
ваш бизнес , как и бухгалтерского ядра
отношения с клиентами , может быть или проект
Управление отличный вопрос
мы в настоящее время мигрируют далеко от
патентованный планирования ресурсов предприятия
система свободного программного обеспечения является одним
называется Triton я , если вы , если вы не знаете ,
знать, что право на бы по крайней мере,
инструментом выбора для нас прямо сейчас я думаю ,
Я не уверен , я думаю , что это называется новый
здравоохранения , которая построена на примерил так
Вы могли бы хотеть искать новое здоровье
чтобы получить демки и посмотреть на то , что было
возможное
да , пожалуйста , мне нужно для представления и
обзор некоторых унифицированы модели ветвления
воспитывать нечто подобное для своего рода
что у нас есть у нас есть ветвление
модель да и она основана на выпуске
Имена внутренне , так это тот , что я
представленная здесь , на самом деле довольно
минут FIDE , который мы имеем неограниченный орешек
объяснить
поэтому в основном мы имеем у нас есть релизы
каждые несколько лет , или он не может выпустить в
каждые несколько лет , что, что есть имена
и под этим именем мы выпустили
филиалы и у нас есть развитие
филиалы и у нас есть филиалы упаковки
и все такие вещи , так что да , мы делаем
и если вы заинтересованы прийти ко мне
после этого , и я объясню подробно
тебе
Угу приветствуются
да , пожалуйста , да как же вы имеете дело с
как даже очень старый учитель был
как три недели
действительно пытаются интегрировать его с группой
выпущен как раз в неделю или просто нравится пытаться
Объединить эти старые ветви новый релиз
которые больше функций , добавленные уникальным
в пути и которые могут вызвать другие
вид коробки
ИТАК , вопрос в том , когда мы , когда мы
имеют такие длинные ветви развития,
мы используем и тогда мы будем упакованы
отдельно ли мы объединить их обратно
и на самом деле да мы делаем , в основном
перебазироваться поэтому все , что попадает в развитие
филиал не имеет значения для нас , так что мы г
Есть много много комитетов, которые
просто работая прогресса , что такие вещи , как
и как только они возвращаются к хозяину или
Ветвь релиза они обычно раздавленным
в логические фиксаций с надлежащей фиксации
сообщения , а затем весь трубопровод
перестроены или программное обеспечение перестраивается так
то, что мы не делаем, мы не принимаем
Пакеты разработки Debian , который ударил
репозиторий разработки и переместить его в
нестабильная или стабильным хранилище , поэтому мы
убедитесь, что все сборки на самом деле использовать
путь с выпусками там таким образом мы
никогда не принимать бинарные пакеты Debian для
глухим , что мы все , что мы всегда
восстановить вид материала
ОК

Share this subtitle


Description