Installing TSM On-Premise¶
Basic concept¶
The TSM product is primarily developed to run optimally in acloud environment - Kubernetes or OpenShift. The document describes the installation at the customer in case a cloud variant is not possible (or preferred).
This is a so-called standalone installation on on-premise hardware, or on a virtualized server (either Hyper-V or VMware).
Making everything work similarly to a cloud environment is described in later sections of this document.
Note
In a containerized environment (kubernetes), multiple services (hostname) can run on the same port, this is ensured by creating a service object (similar to a DNS record).
When installing on on-premise (on separate hardware or virtualized server), nothing like this is possible, if we want to ensure sufficient security of running services.
All TSM microservices are bound to the IP address 127.0.0.1 at startup, each to a separate port:8081, 8082,8082, etc. Above these services, they are created using the settings in the nginx proxy. 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.