Kariera IT

Otwarty kod – Dziennik kapitański

W codziennej pracy większość z nas wykorzystuje projekty open source. Jednak czy ktoś zastanawiał się jak powstają? Co motywuje ludzi do pracy nad kodem? Jakie problemy napotykają wolontariusze piszący open source i co ich motywuje? Opiszę to wszystko podczas swojej prezentacji. Przedstawię fragmenty swoich prywatnych zapisków z dziennika w którym (wyrywkowo) zapisuję bieżące wydarzenia. Przedstawię rozmaite problemy technologiczne (js, react, go, docker…) jakie napotkaliśmy. Opiszę co z nimi zrobiliśmy.

 

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/