Škálování Platformy IIoT
Strategie vertikálního a horizontálního škálování Platformy IIoT — orchestrace kontejnerů, optimalizace databáze, ukládání do mezipaměti a škálování frontendu.
S rostoucím počtem uživatelů, objemem dat a počtem zařízení je nutné Platformu IIoT škálovat. Architektura, na níž je postavena, a její základní potenciál škálovatelnosti jsou popsány v kapitole Škálovatelnost systému; tato stránka se zaměřuje na praktické strategie škálování produkčního nasazení.
Strategie škálování platformy
flowchart LR
subgraph subGraph0["IIoT Platform Scaling Strategies"]
F["Vertical Scaling"]
A["Application Servers (Ruby on Rails)"]
G["Horizontal Scaling"]
B["Data Collection Servers (GO)"]
C["PostgreSQL Database"]
H["Database Optimization"]
D["Docker/Kubernetes"]
E["Frontend Scaling"]
end
A --> F & G
B --> F & G
C --> F & G & H
D --> B & A
E -- Efficient_Distribution --> DVertikální a horizontální škálování
Platforma podporuje dva vzájemně se doplňující přístupy ke škálování: vertikální škálování přidává prostředky stávajícím serverům, zatímco horizontální škálování přidává další servery.
Vertikální škálování
-
Navýšení serverových prostředků:
- Přidání CPU, RAM a SSD úložiště aplikačním serverům (Ruby on Rails) a serverům pro sběr dat (Go).
- Zvýšení výkonu PostgreSQL prostřednictvím výkonnějších diskových polí a optimalizace indexů.
-
Výhody: Snadná realizace s minimálními zásahy do architektury.
-
Omezení: Fyzické limity jednotlivých serverů a vysoké náklady.
Horizontální škálování
- Přidávání nových serverů:
- Ruby on Rails: nasazení dalších instancí aplikace za nástroj pro vyvažování zátěže (například Nginx nebo HAProxy).
- Servery Go: snadné škálování díky vícevláknovému zpracování a vestavěné podpoře horizontálního škálování.
- PostgreSQL: replikace a šardování dat pro vyvážení zátěže.
- Výhody: Vysoká odolnost proti chybám a prakticky neomezená škálovatelnost.
- Omezení: Vyšší složitost správy distribuovaného systému.
Využití Kubernetes/Docker Compose pro orchestraci kontejnerů
Přechod na Kubernetes/Docker Compose
- Kontejnerizace aplikací:
- Servery Ruby on Rails a Go jsou zabaleny do kontejnerů Docker.
- Kubernetes/Docker Compose řídí nasazení, škálování a monitorování těchto kontejnerů.
- Automatické škálování:
- Horizontal Pod Autoscaler (HPA) automaticky zvyšuje počet podů podle zatížení.
- Cluster Autoscaler přidává do clusteru nové uzly, jakmile začínají docházet prostředky.
- Výhody: Vysoká flexibilita, automatizace a odolnost proti chybám.
Příklad architektury na Kubernetes
- Ingress Controller: směruje požadavky na servery Ruby on Rails a Go.
- StatefulSets: spravují stavové repliky PostgreSQL.
- Service Mesh: využívá Istio nebo Linkerd ke správě provozu a zvýšení bezpečnosti.
Optimalizace databáze
Databázová vrstva se škáluje kombinací replikace, šardování a ukládání do mezipaměti.
Replikace a šardování PostgreSQL
- Replikace:
- Konfigurace replikace master-slave pro rozložení zátěže čtení.
- Použití nástrojů jako Patroni pro automatickou správu replikace.
- Šardování:
- Rozdělení dat mezi více clusterů PostgreSQL pro rozložení zátěže zápisu.
- Použití Citus pro horizontální škálování PostgreSQL.
Ukládání do mezipaměti
- Redis nebo Memcached:
- Ukládání často požadovaných dat do mezipaměti pro snížení zátěže databáze.
- Integrace s Ruby on Rails prostřednictvím
ActiveSupport::Cache.
Škálování frontendu
-
Ukládání do mezipaměti na straně klienta:
- Použití Service Workers a Cache API pro ukládání statických prostředků do mezipaměti.
-
CDN (Content Delivery Network):
- Distribuce statických souborů prostřednictvím CDN pro snížení zátěže serverů.
Přednosti navrhovaného řešení
- Vysoká odolnost proti chybám: díky Kubernetes/Docker Compose a replikaci PostgreSQL.
- Flexibilita: snadné přidávání nových serverů a mikroslužeb.
- Automatizace: škálování vyžaduje minimální lidský zásah.
- Hospodárnost: využití prostředků je optimalizováno automatickým škálováním.
Výše popsaný scénář škálování umožňuje telemetrickému systému efektivně zvládat rostoucí zátěž a zajišťuje vysoký výkon, odolnost proti chybám a flexibilitu. Díky nasazení těchto moderních technologií je platforma připravena na budoucí výzvy.
Související témata
Byla tato stránka užitečná?
Děkujeme za vaši zpětnou vazbu!