FirmomCICD – Linux SysOps Meetup

[Slajdy]

Podczas prezentacji chcę przedstawić autorskie narzędzie do CI/CD (Continuous Integration / Continuous Deployment). Opiera się na aplikacji napisanej w golang. Nazwałem ją WebSlots, gdyż nazwa ta dobrze oddaje sposób działania. Krytykom muszę przyznać rację jest mało „chwytliwa”. Dlaczego „web slots”? podstawowym zadaniem aplikacji jest wystawienie „slotów”. Tz adresów internetowych wyzwalających pewne zadania. Spostrzegawczy zauważą, że sloty to zwykłe webhooks znane min z githuba. To jest w 100% racja. Wykorzystujemy githubowe hook-i do wyzwalania skryptów w naszej aplikacji. Tak właśnie powstaje CD. Kilka razy wspomniałem o skryptach i zadaniach. Pod maską kryje się interesujący system do równoległego wykonywania zadań. Wyposażony w mechanizmy locków, system przerywania wykonania (polityki fifo, onlylast), dziedziczenia i wyzwalania zadań. Jeśli to brzmi ciekawie zapraszam 🙂 Gdzie tego używamy? Na razie aplikacja jest dość młoda. Potrafi zawierać mniejsze błędy ale mamy produkcyjną wersję. Ba nawet sama siebie potrafi zbudować 😉 Jest wykorzystywana do budowania mojego bloga events.pozoga.eu (WordPress) i Beerpoly.

Gry nad, którą pracujemy. Kod budowania naszych aplikacji: https://github.com/firmom/cicd

Repozytorium zawiera konfigurację i skrypty budujące nasze aplikacje. Rozszerza dokerowy obraz WebSlots. Kod WebSlots (GPL3):
https://github.com/goatcms/webslots

Demo (wersja live z której korzystamy):
http://cicd.firmom.com/