Mindenki otthon őrizget legalább egy fiók mélyén heverő, elavult okostelefont, aminek már csak a kijelzője repedt, de a hardvere még bőven működőképes. Szoftverfejlesztés élesben: Így építs saját, lokális CI/CD csővezetéket felesleges okostelefonokból és egyetlen olcsó mikrokontrollerből című bejegyzésemben pontosan ezt a problémát oldjuk meg. Ahelyett, hogy drága felhőalapú szolgáltatásokért fizetnél, vagy a laptopodat terhelnéd a teszteléssel, alakítsuk át ezt a digitális hulladékot egy valódi, privát automatizációs laboratóriummá.
A legtöbb fejlesztő azonnal a felhőbe nyúl, ha CI/CD folyamatokról van szó. Pedig egy lokális szerverpark nemcsak a pénztárcádat kíméli, hanem a saját gépedet is tisztán tartja a nehézkes konténerek futtatásától. Az okostelefonokban lévő ARM processzorok meglepően hatékonyak, különösen akkor, ha folyamatos integrációról vagy apróbb backend szolgáltatások teszteléséről van szó. A mikrokontroller pedig – például egy ESP32 vagy egy Raspberry Pi Pico – tökéletes „kapuőrként” funkcionál, amely figyeli a hálózatot, és ébreszti az alvó telefonokat, amikor kódot küldesz a tárolódba.
Az első dolog, amit tenned kell, az a telefonok alapos megtisztítása. Ha még fent van rajta a régi felhasználói fiókod, érdemes gyári beállításokra visszaállítani az eszközt. A cél az, hogy a telefonok csak a szerverfeladatokat lássák el, minden más felesleges alkalmazástól megszabadítva.
Ahhoz, hogy egy telefont szerverként használj, a legbiztosabb módszer a Linux futtatása. A Termux alkalmazás a legjobb barátod lesz ebben a folyamatban. Egyetlen környezet, amiben gyakorlatilag egy teljes értékű Linux disztribúciót kapunk.
Sokan elkövetik azt a hibát, hogy a telefonokat 0-24 órában töltőn hagyják. Ez nem tesz jót az akkumulátornak, és tűzveszélyes is lehet. Itt jön képbe az olcsó mikrokontroller. Programozd be úgy az ESP32-t, hogy egy relémodulon keresztül csak akkor adja rá a töltést a telefonokra, ha éppen futtatnod kell egy tesztet.
Ha mindent megfelelően összehangoltál, a folyamat a következőképpen néz ki. Amikor feltöltöd a kódodat a verziókezelőbe, egy web-hook azonnal jelzi a lokális hálózatodnak, hogy munka van. A mikrokontroller feléleszti a telefont, amely elindítja a Docker konténereket. A tesztek lefutnak, az eredmény pedig visszakerül a terminálodra.
A válasz rövid: abszolút. Bár a beállítása időigényes, a tanulási folyamat során olyan mélyreható ismereteket szerzel a hálózatokról, a konténerekről és az alacsony szintű hardveres vezérlésről, amit egy kész felhőalapú szolgáltatás soha nem adna meg. Ráadásul rendkívül kielégítő látvány, amikor a fiókod mélyén porosodó eszközök egyszer csak komoly fejlesztői munkaeszközökké válnak.
A hardverek újrahasznosítása nemcsak környezettudatos döntés, hanem a kreatív mérnöki szemlélet iskolapéldája is. Amikor legközelebb új telefont vásárolsz, ne add el vagy dobd ki a régit. Építs belőle egy saját, privát felhőt, ahol a te szabályaid szerint futnak a tesztek. A fejlesztés élménye így sokkal személyesebb, és a szoftverek, amiket készítesz, végre a saját, kézzelfogható infrastruktúrádon születnek meg.