Infrastrukturalni standardi

Određeni broj metodologija, komponenti i alata koji se koristi u implementaciji KIBJLS servisa je standardizovan.

Dokumentacija

Engleski jezik se koristi kao osnovni tehnički jezik što uključuje izvorni kod i sve dokumente čija su ciljna grupa inžinjeri koji rade neposredno na održavanju i unapređivanju komponenti sistema. Standardni dokumenti su:

  • README.md - opisuje svrhu, funkcionalnosti i osnovnu upotrebu komponente
  • CHANGELOG.md- opisuje verzije komponente sa svim funkcionalnostima po redosledu implementacije

Jedan ili više ovih dokumenata nalaze se na adekvatnom repozitorijumu i opisuju komponente koje čine sub-servis.

Infrastruktura kao source code

Svi infrastrukturalni elementi projekta su verzionirani kao idempotentni source code i dostupni su na git repozitorijumima. Automatizacioni elementi ne pretpostavaljaju postojanje bilo kog alata na sistemu.

Pravilo je da se isti izvorni kod koristi u svim okruženjima dok se specifičnosti svakog okruženja podešavanju varijablama okruženja (environment variables) koje se čuvaju na adekvatnom git repozitorijumu.

Operativni sistemi

Za sve elemente infrastrukture koriste se sledeći operativni sistemi:

  1. Microsoft Windows Server 2016 Standard2
  2. Ubuntu 16.04.2 LTS (Xenial Xerus)3

Imenovanje servera

Svaki server može da izvršava jednu ili više rola na datom okruženju. Ime servera nije od značaja već se koriste DNS alijasi za pripadnst roli i okruženju:

Server alijasi su forme lobe-<environment>[-role][number] gde je:

  • lobe je fiksni string.
  • environment je ime okruženja (devel, stage, prod ...)
  • role je ime role koju server izvršava ( db, rest, web, metric, log ...); ukoliko nije navedena podrazumeva se rola web.
  • number je broj koji predstavlja instancu role. Opciono, predviđeno za potrebe skaliranja.

Pojašnjenje

DNS alijasi su korišćeni jer jedan server može imati više alijasa ali samo jedno ime. Ovo omogućava serveru da izvršava više rola odjednom i bude referiran na odgovarajući način u datom kontekstu. Npr. development okruženje ima 3 alijasa jer se na istom serveru izvršavaju sve role.

Automatizacioni alati

Za potrebe automatizacije okruženja koriste se:

  1. Windows okruženje
    • Microsoft Powershell1
    • Chocolatey FOSS5 za instalaciju softverskih paketa.
  2. Linux okruženje
    • Ansible FOSS4 za konfiguraciju sistema i instalacije
    • Bash