Detail publikace
A Self-Hosted Approach to Automatic CI/CD Using Open-Source Tools on Low-power Devices
Zaklová Kristýna, Ing. (DFIT-OIP)
Lazúr Juraj, Ing. (UIFS)
Hynek Jiří, Ing., Ph.D. (UIFS)
Hruška Tomáš, prof. Ing., CSc. (UIFS)
Docker, CI/CD, Continuous Deployment, Raspberry Pi
V procesu vývoje software se rozšířily přístupy postupné integrace a dodávání
(Continuous Integration and delivery - CI/CD), které nabízí ucelený přístup
k zefektivnění procesu vývoje. Obě funkce běžně nabízejí služby třetích stran,
nebo cloudová prostředí, jako je Amazon AWS nebo GitHub. Ačkoli jsou tyto služby
široce dostupné a ideální pro velké projekty a společnosti, pro menší projekty
nemusí být vhodné. K hledání alternativních řešení mohou vést faktory, jako je
snaha udržovat kód a nasazení lokálně nebo náklady. Tento článek představuje
infrastrukturu založenou převážně na open-source službách, které tyto specifické
potřeby řeší. Je vhodná jak pro vývoj, tak pro automatické nasazení malých,
lokálně nasazovaných projektů. Řešení prošlo šestiměsíčním testováním
v laboratorním prostředí na zařízení s nízkou spotřebou energie, konkrétně na
počítači Raspberry Pi 4B, který byl použit jak k vytváření nových verzí softwaru,
tak k jeho hostování. Řešení využívá samoobslužnou rutinu od společnosti GitHub
(GitHub self-hosted runner) k sestavování obrazů Docker z kódu přímo na cílovém
zařízení. Tyto obrazy jsou poté odeslány do místního registru Docker. Tím je
zajištěno, že kód lze používat na více architekturách, konkrétně na arm64
a amd64, a to jednoduchým stažením příslušného obrazu, který je díky Docker
buildx sestaven pro obě architektury. Sestavené obrazy pak lze automaticky použít
pro aktualizaci na stejném zařízení nebo pro nasazení na jiném hardwaru. Toto
řešení je vhodné pro malé projekty nebo týmy s omezeným rozpočty díky vlastnímu
nasazení všech komponent, nízké pořizovací ceně a energetické účinnosti zařízení
s nízkou spotřebou energie jako je Raspberry Pi.
@inproceedings{BUT193353,
author="Petr {John} and Kristýna {Zaklová} and Juraj {Lazúr} and Jiří {Hynek} and Tomáš {Hruška}",
title="A Self-Hosted Approach to Automatic CI/CD Using Open-Source Tools on Low-power Devices",
booktitle="2024 IEEE 17th International Scientific Conference on Informatics",
year="2024",
pages="105--112",
publisher="Institute of Electrical and Electronics Engineers",
address="Poprad",
isbn="979-8-3503-8767-4",
url="https://www.fit.vut.cz/research/publication/13274/"
}