Instalace TSM On-Premise¶
Základní koncept¶
Produkt TSM je primárně vyvíjen tak, aby optimálně běžel v cloud prostředí - Kubernetes či OpenShift. Dokument popisuje instalaci u zákazníka v případě, že není možná (či preferovaná) cloud varianta.
Jedná se o tzv. standalone instalaci na on-premise hardware, případně na virtualizovaném serveru (ať už Hyper-V nebo VMware).
To, aby vše fungovalo podobně jako v cloud prostředí, je popsáno v dalších částech tohoto dokumentu.
Poznámka
V kontejnerizovaním prostředí (kubernetes) může běžet více služeb (hostname) na stejném portu, to je zajištěno vytvořením objektu typu service (podobné DNS záznamu).
Při instalaci na on-premise (na samostatném hardware či virtualizovaném serveru) není nic takového možné, v případě, že chceme zajistit dostatečnou bezpečnost běžících služeb.
Všechny mikroslužby TSM jsou při spuštění bindovány na IP adresu 127.0.0.1, každá na samostatný port: 8081,8082,8082 atd. Nad těmito službami jsou pomocí nastavení v nginx proxy vytvořeny virtual hosts.
Pohled na takovéto nastavení:
Aby fungoval DNS překlad mezi názvem hostname a IP adresou 127.0.0.1, je nutné přidat následující záznamy do souboru /etc/hosts:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Komunikace mezi mikroslužbami¶
Jako příklad uvádíme HTTP komunikaci mezi tsm-gateway a tsm-user-management. Obecně takto mezi sebou komukují všechny mikroslužby TSM.
HTTP spojení mezi jednotlivými mikroslužbami TSM probíhá následovně:
tsm-gatewaynajde IP adresutsm-user-managementpomocí záznamu v/etc/hosts(řádek, kde je uvedeno:127.0.0.1 tsm-user-management)- Vytvoří se TCP spojení na
127.0.0.1:80(na tomto rozhraní poslouhánginx proxy) nginx proxymá nakonfigurováno, že HTTP požadavky s hlavičkouHost: tsm-user-managementmá přeposlat na službu, která poslouchá na127.0.0.1:8081(přes direktivuproxy_pass).
Celá HTTP komunikace zakreslená do grafu:
Části instalace¶
Instalace TSM je rozdělena do několika částí:
Jednotlivé části jsou propojeny následujícím způsobem:
Mikroslužby¶
Jsou tvořeny jar balíčky, základní konfigurací v yaml souborech a systemd skripty. jar balíčka jsou samostatné servlet containery, každá mikroslužba běží na samostatném portu (8081, 8082 ...)
Relační databáze¶
Primárně TSM provozujeme na Postgres databázi. Preferujeme verzi 11, 12. Databáza je plně ve správě zákazníka (na produkci doporučujeme 2x instance, asynchronně synchronizované, 1x v read only režimu). DataLite dodává základní dump databáze, případně customizujeme doplňky. Tedy je nutné provést prvotní import základních struktur.
Infrastrukturní komponenty¶
Komponenty nutné k běhu TSM. Instalují se buď na stejném serveru jako jar balíčky, případně mohou být kompletně samostatně. Preferujeme variantu, kdy každá komponenta běží na samostatném (i virtuálním) serveru. Mezi tyto komponenty patří elasticsearch, kafka, zookeeper, kibana (pouze doporučená komponenta)
Monitoring¶
Jako samostatnou část doporučujeme instalovat monitoringovací aplikace. Tato část není součástí standardní instalace, jedná se o doporučenou část. Někdy je vhodné zvolit existující řešení zákazníka (Icinga, InfluxDB). DataLite doporučuje nasadit následující součásti pro monitoring: prometheus, node_exporter (na každý virtuální server), grafana (+dashboardy), jmx_exporter, případně loki (prometheus pro logy), promtail (sběr logů). Jsme schopni dodat existující dashboardy pro grafanu.