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 komponenteCHANGELOG.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:
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 rolaweb
.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: