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

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