woensdag 16 oktober 2019

Schaalbaar Citrix NetScaler Load Balancer design

Ik heb een verzoek aan de NetScaler specialisten onder ons. Lees onderstaand verhaal, en geef commentaar :)

Momenteel ben ik betrokken bij de implementatie van een Web Application Firewall (WAF) op een gevirtualiseerd Citrix NetScaler ADC platform.

Ik was echter nooit betrokken bij de implementatie, het ontwerp en de keuze voor het virtuele VPX platform. Ik mocht dus roeien met de riemen die een ander voor me gekozen had.

Voor dit specifieke geval werd er gebruik gemaakt van een VPX 1000 in een High Availability setup (Active Passive).

De opdracht was op zich vrij simpel, het omvatte ongeveer een 8-12 web applicaties waarvoor de WAF geïmplementeerd moest worden.


Nadat ik toegang had gekregen tot de omgeving heb ik eens rondgekeken op de NetScaler. Het apparaat werd al langer gebruikt en heeft op het moment van schrijven een 150+ Load Balanced Virtuele Servers (VIPs) actief. Daarnaast een 30 content switching Virtual Servers. Het overgrote deel was geconfigureerd met SSL offloading, alhoewel er ook een aantal HTTP en SSL_BRIDGE varianten waren.

De opdracht voor mij was om voor een aantal (sommige nog te configureren) web applicaties een WAF te implementeren. En, iets wat later uit de hoge hoed kwam, er moest later nog uitgebreid gaan worden naar 80 web applicaties.

Op dat moment heb ik aangegeven dat ik geen vertrouwen had in de opzet van de huidige NetScaler. App Firewall verbruikt nogal wat CPU kracht, en ik zag een enkele (weliswaar redundant) VPX 1000 dat niet trekken naast SSL-offloading.

Dus er moet wat aan de opzet worden gedaan. Er moet geschaald worden, en daar zijn enkele opties voor:

  1. Scale up;
  2. Scale-out;

Scale-up:
Opschalen kan natuurlijk altijd, toch? Fout, extra vCPU's toevoegen aan een VPX heeft niet direct nut. Het apparaat is software gelimiteerd tot 4 CPU's, dus al steek je 8 vCPU's op de virtuele machine, hij gaat er geen extra gebruiken.

Natuurlijk kan je het apparaat upgraden naar een VPX 5000 (gelimiteerd tot 6 CPU's) maar dat kost ook geld, en is nog altijd beperkt. Wat als een VPX 5000 niet meer voldoende is, blijf je dan maar upgrades kopen?

Scale-out:
Iets wat mij erg aanspreekt is een scale-out van dergelijke systemen. Extra systemen toevoegen maakt het e.e.a. erg schaalbaar. Hoewel extra systemen kopen ook geld kost, en terug schalen levert je geen geld op. Wat dat betreft, 1-0 voor Cloud.

Helaas werd ik verblijdt met de mededeling dat er een oplossing was bedacht (wederom was ik niet betrokken) waarbij mijn collega's samen met Citrix een oplossing hadden bedacht. Deze oplossing was het bij schakelen van extra HA pairs van 3x2 VPX 200's. Dus 6x een VPX 200 betalen (inclusief licentie) en je hebt er effectief maar 3x een VPX 200 bij. 

Ik heb hier maar eens goed over nagedacht:
  • Je eindigt met 1 actieve VPX 1000, en 3 actieve VPX 200's.
  • Je weet niet op welke actieve VPX een bepaalde web applicatie staat geconfigureerd
  • Het ene systeem kan je zwaarder belasten dan het andere systeem
  • Je bent duur uit
  • En je bent nog steeds niet schaalbaar, alhoewel je wel extra capaciteit neerzet.
Mijn reactie: Jullie zijn gek. En ik vind ook dat dit vanuit Citrix vreemd is opgepakt. 

Ik heb een korte schets gemaakt waarmee ik duidelijk wilde maken hoe ik het e.e.a. zou doen. Dit bestaat uit:
  • 2x VPX 1000 als tier 1: Deze doet alleen maar LB naar tier 2 n alleen maar SSL_BRIDGE:
  • 4x een VPX 200 als tier 2: Deze zijn alle 4 actief en elke VPX 200 word geconfigureerd met alle LBVS, doen SSL-offloading en WAF.

Voordeel: alle 4 VPX 200's zijn actief, uitval wordt automatisch opgevangen, en capaciteit toevoegen is een kwestie van een extra VPX 200 toevoegen. 
Nadeel: je moet elke configuratie 4x uitvoeren, maar dat is nog wel te automatiseren.

Welnu, mijn lezers: wat zijn jullie ideeën om een dergelijke opzet beter schaalbaar te maken?

Geen opmerkingen:

Een reactie posten