Web HighLoad - cumu gestionemu u trafficu per decine di millaie di domini

U trafficu legittimu nantu à a reta DDoS-Guard hà superatu pocu tempu centu gigabits per seconda. Attualmente, 50% di tuttu u nostru trafficu hè generatu da i servizii web di u cliente. Quessi sò parechje decine di millaie di duminii, assai diffirenti è in a maiò parte di i casi chì necessitanu un approcciu individuale.

Sottu u cut hè cumu gestionemu i nodi di fronte è emettemu certificati SSL per centinaie di millaie di siti.

Web HighLoad - cumu gestionemu u trafficu per decine di millaie di domini

A creazione di un front per un situ, ancu un assai grande, hè faciule. Pigliemu nginx o haproxy o lighttpd, cunfigurà secondu e guide è scurdate di questu. Se avemu bisognu di cambià qualcosa, facemu una recarga è scurdate di novu.

Tuttu cambia quandu processate grandi volumi di trafficu nantu à a mosca, evaluate a legittimità di e dumande, cumpressate è cache u cuntenutu di l'utilizatori, è à u stessu tempu cambiate i parametri parechje volte per seconda. L'utilizatore vole vede u risultatu in tutti i nodi esterni immediatamente dopu avè cambiatu i paràmetri in u so contu persunale. Un utilizatore pò ancu scaricà parechji milla (è à volte decine di millaie) domini cù paràmetri di trasfurmazioni di trafficu individuali via l'API. Tuttu chistu deve ancu travaglià immediatamente in America, è in Europa, è in Asia - u compitu ùn hè micca u più trivial, cunziddi chì in Mosca solu ci sò parechji nodi di filtrazione fisicamente separati.

Perchè ci sò parechji grandi nodi affidabili in u mondu?

  • Qualità di serviziu per u trafficu di i clienti - e richieste da i Stati Uniti anu da esse trattate in i Stati Uniti (cumpresi per attacchi, parsing è altre anomalie), è micca tirate à Mosca o in Europa, aumentendu imprevisiblemente u ritardu di trasfurmazioni.

  • U trafficu d'attaccu deve esse situatu - l'operatori di transitu ponu degradate durante l'attacchi, u voluminu di quale spessu supera 1Tbps. U trasportu di u trafficu d'attaccu nantu à i ligami transatlantici o transasiatici ùn hè micca una bona idea. Avemu avutu casi veri quandu l'operatori di Tier-1 anu dettu: "U voluminu di attacchi chì ricevete hè periculosu per noi". Hè per quessa chì accettemu i flussi in entrata u più vicinu à e so fonti pussibule.

  • Esigenze strette per a continuità di u serviziu - i centri di pulizia ùn deve micca dipende nè da l'altri nè da avvenimenti lucali in u nostru mondu chì cambia rapidamente. Avete tagliatu u putere à tutti i 11 piani di MMTS-9 per una settimana? - nisunu prublema. Nisun clientu chì ùn hà micca una cunnessione fisica in questu locu particulari soffrerà, è i servizii web ùn soffrenu micca in alcuna circustanza.

Cumu gestisce tuttu questu?

E cunfigurazioni di serviziu devenu esse distribuite à tutti i nodi frontali u più prestu pussibule (idealmente istantaneamente). Ùn pudete micca solu piglià è ricustruisce e cunfigurazioni di testu è riavviate i demoni à ogni cambiamentu - u listessu nginx mantene i prucessi chì si chjude (u travagliu di u travagliu) per uni pochi di minuti (o forse ore s'ellu ci sò longu sessioni websocket).

Quandu si ricaricà a cunfigurazione nginx, a seguente stampa hè abbastanza normale:

Web HighLoad - cumu gestionemu u trafficu per decine di millaie di domini

À l'utilizazione di a memoria:

Web HighLoad - cumu gestionemu u trafficu per decine di millaie di domini

I vechji travagliadori manghjanu a memoria, cumpresa a memoria chì ùn dipende micca linearmente da u numeru di cunnessione - questu hè normale. Quandu i cunnessione di u cliente sò chjusi, sta memoria serà liberata.

Perchè ùn era micca questu un prublema quandu nginx era appena principiatu? Ùn ci era micca HTTP / 2, nè WebSocket, nè cunnessione massiva longa mantene a vita. U 70% di u nostru trafficu web hè HTTP/2, chì significa cunnessione assai longu.

A suluzione hè simplice - ùn aduprate micca nginx, ùn gestionate micca fronti basati nantu à i schedarii di testu, è certamenti ùn mandate micca cunfigurazioni di testu zippate nantu à i canali transpacific. I canali sò, sicuru, guarantiti è riservati, ma questu ùn li rende micca menu transcontinentali.

Avemu u nostru propiu servore-balancer di fronte, l'internu di quale parleraghju in l'articuli seguenti. A cosa principale chì pò fà hè di applicà millaie di cambiamenti di cunfigurazione per seconda à a mosca, senza riavvii, ricaricà, aumenti bruschi di u cunsumu di memoria, è tuttu ciò. Questu hè assai simili à Hot Code Reload, per esempiu in Erlang. I dati sò guardati in una basa di dati di chjave-valori geo-distribuiti è sò leghjiti immediatamente da l'attuatori frontali. Quelli. caricate u certificatu SSL via l'interfaccia web o l'API in Mosca, è in pochi seconde hè pronta per andà in u nostru centru di pulizia in Los Angeles. Se una guerra mundiale succede di colpu è Internet sparisce in u mondu sanu, i nostri nodi cuntinueghjanu à travaglià in modu autonomu è riparà u split-brain appena unu di i canali dedicati Los Angeles-Amsterdam-Mosca, Mosca-Amsterdam-Hong Kong- Los-Los diventa dispunibule Angeles o almenu una di e superposizioni di salvezza GRE.

Stu stessu mecanismu ci permette di issuà istantaneamente è rinnuvà i certificati Let's Encrypt. Hè assai simplice chì funziona cusì:

  1. Appena avemu vistu almenu una dumanda HTTPS per u duminiu di u nostru cliente senza un certificatu (o cun un certificatu scadutu), u node esternu chì accetta a dumanda informa questu à l'autorità di certificazione interna.

    Web HighLoad - cumu gestionemu u trafficu per decine di millaie di domini

  2. Se l'utilizatore ùn hà micca pruibitu l'emissione di Let's Encrypt, l'autorità di certificazione genera una CSR, riceve un token di cunferma da LE è u manda à tutti i fronti nantu à un canale criptatu. Avà ogni nodu pò cunfirmà una dumanda di validazione da LE.

    Web HighLoad - cumu gestionemu u trafficu per decine di millaie di domini

  3. In uni pochi di mumenti, riceveremu u certificatu currettu è a chjave privata è mandà à i fronti in u listessu modu. Di novu, senza riavvia i demoni

    Web HighLoad - cumu gestionemu u trafficu per decine di millaie di domini

  4. 7 ghjorni prima di a data di scadenza, a prucedura per ricivutu u certificatu hè iniziata

Avà rotemu certificati 350k in tempu reale, cumpletamente trasparenti per l'utilizatori.

In l'articuli seguenti di a serie, parleraghju di altre caratteristiche di u processu in tempu reale di u grande trafficu web - per esempiu, di l'analisi RTT cù dati incompleti per migliurà a qualità di serviziu per i clienti di transitu è ​​in generale per a prutezzione di u trafficu di transitu da attacchi terabit, nantu à a consegna è l'agregazione di l'infurmazioni di u trafficu, nantu à WAF, CDN quasi illimitatu è parechji meccanismi per ottimisà a consegna di cuntenutu.

Solu l'utilizatori registrati ponu participà à l'indagine. Firmà lu, per piacè.

Chì vulete sapè prima?

  • 14,3%Algoritmi per clustering è analizà a qualità di u trafficu web <3

  • 33,3%L'internu di i balancers DDoS-Guard7

  • 9,5%Prutezzione di u trafficu di transitu L3/L4

  • 0,0%Prutezzione di i siti web nantu à u trafficu di transitu0

  • 14,3%Firewall di l'applicazioni Web 3

  • 28,6%Prutezzione contr'à l'analisi è cliccà6

21 utilizatori anu vutatu. 6 utilizatori si sò astenuti.

Source: www.habr.com

Add a comment