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 FIT VUT)
Hynek Jiří, Ing., Ph.D. (UIFS FIT VUT)
Hruška Tomáš, prof. Ing., CSc. (UIFS FIT VUT)
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{FITPUB13274, author = "Petr John and Krist\'{y}na Zaklov\'{a} and Juraj Laz\'{u}r and Ji\v{r}\'{i} Hynek and Tom\'{a}\v{s} Hru\v{s}ka", title = "A Self-Hosted Approach to Automatic CI/CD Using Open-Source Tools on Low-power Devices", pages = "105--112", booktitle = "2024 IEEE 17th International Scientific Conference on Informatics", year = 2024, location = "Poprad, SK", publisher = "Institute of Electrical and Electronics Engineers", ISBN = "979-8-3503-8767-4", language = "english", url = "https://www.fit.vut.cz/research/publication/13274" }