Suportivni servisi

KIBJLS sistem uključuje niz suportivnih servisa. Svi ovi servisi su u free and open source (FOSS) i cross-platform tehnologijama.

Gitlab

Gitlab je web servis za menadžment izvornog koda koristeći git repozitorijume. Za potrebe KIBJKS servisa iskorišćena je postojeća verzija Gitlab Community Edition (Gitlab CE)2. Pored verzioniranja izvornog koda, Gitlab se koristi za:

  • menadžment razvojnog tima i prava pristupa izvornom kodu
  • menadžment izvornog koda kroz sub-projekte i grupisanja zavisno od domena
  • automatski build i testiranje, tzv. Continuous Integration (CI)3
  • automatski deployment, tzv. Continuous Deploy (CD)3
  • frontend za pristup tehničkoj dokumentaciji4

IGT stack

Kritični delovi KIBJLS servisa dostavljaju niz aplikativnih i infrastrukturalnih metrika centralnoj bazi podataka u realnom vremenu. Podaci se mogu gledati koristeći implementirane dashboard-e da bi se imao uvid u ponašanje svih bitnih komponenti sistema.

Praćenje rada KIBJLS servisa realizuje se kroz sledeće servise:

  • Influxdb6 je FOSS baza podataka koja skladišti i realizuje upite nad vremenskim serijama. Metrike je moguće analizirati putem jezika sličnog SQL-u. Baza nema zavisnosti i optimizovana je za efikasan upis miliona metrika u sekundi.
  • Grafana7 je FOSS web servis za kreiranje interaktivnih dashboard-a. U osnovnoj instalaciji dolazi uz Influxdb plugin8 preko koga je moguć ovlašćeni uvid u KIBJLS metrike. Pored analize, na metrike je moguće postaviti upozorenja5 tako da odogovarajuće osoblje dobija notifikacije kada određena vrednost metrike pređe dozvoljene granice.
  • Telegraf9 je agent za kolekciju i agregaciju metrika. Na KIBJLS servisu implementira efikasni Statsd server10 koji omogućava agregiranje metrika u datom vremenskom periodu koristeći UDP protokol.

Integracija sa ovim sistemima je izuzetno jednostavna te je metrike moguće slati i anlizirati svuda gde postoji web klijent. U okviru KIBJLS servisa metrike se šalju sa servera, aplikacija, shell skripti itd.

ELK stack

ELK stack11 je FOSS sistem za korelaciju i analizu aplikativnih logova. Sastoji se od:

  • ElasticSearch - distribuirana JSON baza podataka za pretragu i analizu velikih količina poataka. KIBJLS logovi se fizički skladište u ovoj bazi.
  • Logstash - servis koji služi za transformaciju različitih formata logova u normalizovani oblik.
  • Kibana - pruža korisnički interfejs preko koga se mogu pretraživati logovi svih kritičnih delova servisa.

Rundeck

Rundeck 12 je cross platform FOSS job scheduler koji se može kontrolisati preko web interfejsa, kroz REST API ili koristeći CLI aplikaciju rd. Rundeck omogućava organizaciju job-ova u projekte i foldere i sinhronizaciju definicija sa git repozitorijumom.

Za potrebe servisa koriste se isključivo mogućnosti Rundeck-a koje rade na serveru koji hostuje Rundeck:

  1. pružanje grafičkog interfejsa za shell skripte i suportivne CLI aplikacije
  2. cron način konfiguracije zakazivanja procesa
  3. konekcija na korporativni AD i precizna kontrola pristupa
  4. notifikacije ka konfigurisanim korisnicima u slučaju grešaka