Docker pe Raspberry Pi

CI/CD acasa, la o aplicatie facuta de altcineva? Configuration as code?
Prima fază a fost să-mi fac manual un RPi ca să rulez niște containere, și cu asta să rezolv conflictele de versiune de Java pe care le aveam dacă încercam să instalez nativ aplicațiile alea în RPiOS. Și mă puteam opri aici bine mersi.

Faza a doua a fost când a trebuit să fac reinstalare pe alte RPi-uri, fie că a crăpat ceva, și mi-a durat o veșnicie să-mi amintesc toate comenzile și configurațiile făcute manual. Documentaion is king, dar decât să fac doar un CMDB mai bine fac CMDB + automatizarea necesară pentru ca data viitoare să nici nu trebuiască să iau ad labam toate comenzile din documentație. Trăiască lenea, catalistul inovației și progresului :D

Faza a treia e când dau de niște proiecte interesante pe git dar care nu oferă nici pachete gata compilate, nici imagine pentru un container. Varianta cea mai curată/elegantă e să fac un container în care să bag aplicația aia, fără să mânjesc host OS-ul pentru teste și fără să tot reinstalez OS-ul (cu toată automatizarea de la faza a doua). Ideal ar fi să pot automatiza tot lanțul ăsta pornind de la codul sursă, să pot instala ușor actualizările atunci când proiectul le publică. Iar dacă cu ocazia asta pot să experimentez cu alde Puppet, Ansible, Chef, Terraform și alte buzzwords, numa' bine capăt hands-on experience pentru când mă întâlnesc cu astea la job.

Nimic din astea nu e obligatoriu, sunt doar oportunități de învățat și încercat chestii noi pentru cine e interesat. Poți la fel de bine să trăiești fericit și cu, și fără aparat de sudură acasă, nu? :)
 
Ma lupt cu buzzwords la job de nu mai pot; avem application managers care nu stiu sa scrie un design document pentru o aplicatie, dar vor microservicii, CI/CD si devops. Vor configuration as code pentru aplicatii care ruleaza in containere care ruleaza in masini virtuale - de ce? Pentru ca se poate.

De-aia sunt reticent cand aud de unele chestii. Daca e pentru joaca si invatare, merge, dar daca e la modul serios "fa CI/CD pe un R Pi ca sa xxx", se aprind beculetele.
 
Fiindcă le lipsește secțiunea aia din solution design intitulată „design decisions” unde să explice de ce, și nu e nici un quality management system care să ia la întrebări de ce lipsește :)

Dar da, experiența cu docker pe RPi mi-a fost fantastic de utilă cam prin primăvara lui 2021 când niște indieni voiau să migreze VM-urile care rulau niște worker nodes pentru docker, și apoi să testeze VM-urile de parcă ar fi avut aplicații și date persistente. Și apoi mai prin vara anului trecut când am început să facem Application Security Groups și Network Security Groups în Azure folosind Terraform pe baza unui fișier YAML. Dacă n-aș fi avut un home lab, mă uitam ca broasca la barieră? Mă uitam...
 
Însă întrebarea lui Adi e cum controlezi alte echipamente care n-au interfețe digitale și poți cel mult să controlezi o priză de la care să le dai curent sau nu. Poți da alimentare electrică la o mașină de spălat vase sau să o oprești, dar ca să pornești efectiv ciclul de spălare nu e suficient să o bagi în priză. Îți trebuie fie un motor care să apese pe butonul fizic al mașinii de spălat, sau o mașină de spălat cu interfață de rețea sau serială sau I2C sau ceva.
Bagi in ea un ESP32 si conectezi butoanele si LED-urile masinii la cate un GPIO.
 
Am finalizat HA pe Odroid M1. HA in container, mosquitto instalat, nici o problema deosebita. Ubuntu Jammy.
Pompa de caldura si repartitorul de caldura raporteaza in diferite feluri si pe langa asta a descoperit niste prize programabile, totul merge uns momentan.
Am incercat assisted install pe Debian, nu a mers din mai multe motive asa ca am abandonat in favoarea Ubuntu si docker/containere.
 
Back
Top