Š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 --> D

Vertiká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

Naposledy aktualizováno

Byla tato stránka užitečná?