Jak nastavit loadbalancer pro složitější aplikace jako Collboard?

Mám otázku pro mé kolegy serveraře:

Virtuální tabule @Collboard.com nám žere čím dál tím víc prostředků na serveru a stálé navyšování CPU a RAM je dlouhodobě a pro další znásobení uživatelů neudržitelná. Nastavuju tam cluster s více běžícími node vlákny, avšak narazil jsem na otázku, jakým způsobem řešit rootování v rámci load-balancingu.

Naše aplikace je v tomhle smyslu trochu specifická – představte si, že každá tabule je něco jako chatovací místnost. Jednu tabuli tak zatím nedokáží obsluhovat dva servery – do databáze by se vše zapsalo, ovšem real-time změny by se mezi dvěma skupinami uživatelů obsluhovanými dvěma servery nepropagovali v reálném čase.

Nemám s tímto typem problému úplně zkušenosti, proto se ptám na optimální strategii řešení:

1/ Změnit kód aplikace tak, aby nebyla závislá na stavu paměti v Node, ale aby se všechny změny propagovali do in-memory tabulky v MySQL databázi případně jiné realtime databáze.

2/ Jednotlivé instance Node propojit mezi sebou napřímo a pokud bude potřeba, posílat informace mezi nimi.

3/ V Loadbalanceru nastavit to, aby routoval podle URL a stejná tabule bude obsluhovaná vždy jednou instancí Node.

(Tohle řešení by asi nebylo úplně robustní, pokud by existovala nějaká naprosto gigantická tabule s mnoha tisíci uživateli (předpokládám, že to bude hlavní důvod, proč má většina sdílecích appek limit maximálního počtu uživatelů v rámci jednoho dokumentu))

4/ Rootováná do konkrétního API si klient vybere sám. Ty pak mohou běžet na separátních subdoménách api1.collboard.com, api2.collboard.com,…

Možná se ptám trochu hloupě a ani jedna z těch možností není to ono, mám s loadbalancováním zkušenosti pouze v případě jednodušších aplikací, kdy je vytvoření clusteru naprosto instantní a jednoduché.

Moc mě zajímají i širší odpovědi se širším pohledem na věc; případně články videa úplně cokoliv, kde bych mohl hlouběji proniknout do návrhu tohoto problému.

Díky moc za za rady!

Autor

Pavol Hejný

Milovník technologií, Startuper ve vzdělávání, Programátor a spoluorganizátor mnoha akcí např. CzechFutureTech.

3 komentáře u „Jak nastavit loadbalancer pro složitější aplikace jako Collboard?“

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *