Un grande cambiamento sconosciuto dietro WeChat: come fanno a “spostare l’elefante nel frigorifero”?
A metà gennaio 2020, meno di una settimana prima del Festival di Primavera, Stephen Liu, il capo dell’architettura tecnologica di WeChat, era molto ansioso. L’imminente Capodanno è il periodo più intenso dell’anno per il business di WeChat e centinaia di milioni di gli utenti saranno in questo momento Inviando gli auguri di Capodanno e le buste rosse di WeChat, anche i server WeChat stanno subendo un impatto maggiore anno dopo anno.
Al fine di garantire che tutti possano ricevere le benedizioni di Capodanno come programmato e prendere le buste rosse di WeChat, il team tecnico di WeChat entra nella modalità “Garanzia Festival di Primavera” alla fine di ogni anno per condurre stress test del server per assicurarsi che WeChat non cada la catena.
Il momento più critico, problema molto difficile
Ma nella fase di sperimentazione di questo Festival di Primavera qualcosa è andato storto.
La busta rossa di WeChat, nata nel 2014, ha subito un grave periodo di inattività durante il Festival di Primavera di quell’anno e alcuni utenti non potevano ricevere la busta rossa in un determinato momento, né potevano vedere la quantità della busta rossa. L’anno successivo, WeChat ha vinto il diritto di interagire con la pubblicità per il Gala della Festa di Primavera. Alla vigilia di Capodanno di quell’anno, il numero totale di pacchetti rossi WeChat inviati e ricevuti in Cina ha raggiunto 1,01 miliardi di volte e il numero totale di frullati WeChat durante il Gala del Festival di Primavera ha raggiunto 11 miliardi di volte. Quest’anno, WeChat è stato ben preparato e generalmente stabile, con tempi di inattività occasionali su piccola scala.
Pertanto, non è un buon fenomeno avere problemi di test prima della Festa di Primavera.
Stefano Liu ha detto:
A quel tempo, il valore (obiettivo) che volevamo sottoporre a stress test era probabilmente miliardi di messaggi inviati al minuto, ma il livello di stress che abbiamo misurato era solo la metà dell’obiettivo, ed erano solo due settimane prima del Festival di Primavera.
Il cosiddetto stress test è quello di espandere la capacità del server di WeChat online. Al termine dell’espansione, eseguire una simulazione aggressiva per simulare i dati di picco alle 0:00 di Capodanno per vedere quanto potrebbe aumentare quest’anno rispetto all’anno scorso, quindi simulare completamente tale importo e applicarlo al sistema.
Una semplice comprensione è simile a un sito Web che esegue un attacco DDoS su se stesso, testando quante persone possono accedere al sito Web contemporaneamente senza tempi di inattività. Un’interpretazione più popolare è che il ristorante va a prendere i clienti. I posti e gli chef di un ristorante possono ricevere solo 100 ospiti contemporaneamente in bassa stagione. Tuttavia, in alta stagione, potrebbero esserci 300 ospiti che hanno bisogno di mangiare allo stesso tempo. In questo momento, è necessario ampliare il ristorante in anticipo per reclutare chef. Simile all’”espansione”, o se proprio non funziona, lasciare che gli ospiti facciano la fila fuori.
Tuttavia, WeChat non può inviare e ricevere messaggi in coda.
Il problema riscontrato dal team tecnico di WeChat e da Stephen Liu questa volta sembra aver chiaramente ampliato il ristorante e assunto più chef, ma allo stesso tempo si possono ricevere solo 150 ospiti, che non hanno raggiunto il target di 300, e in questo momento , gli chef sono ancora abbastanza occupati e i posti sono vuoti. Era anche molto vuoto e c’era gente in coda fuori.
Il team tecnico di WeChat ha verificato per circa una o due settimane prima e finalmente ha individuato il problema: c’è un problema con le prestazioni della scheda di rete. Per fare un altro esempio, è come se l’addetto alla reception all’ingresso del ristorante fosse pigro e non portasse gli ospiti nella stanza, il che ha provocato insoddisfazione nel ristorante e lunghe code di clienti all’esterno.
Dietro il problema c’è un enorme cambiamento sconosciuto a WeChat
Il motivo per cui non ci sono stati problemi con lo stress test negli anni precedenti, ma c’è stato un problema con lo stress test di quest’anno, riguarda un grande cambiamento dietro WeChat: il cloud auto-sviluppato.
Questo grande cambiamento è iniziato con la rivoluzione 930 di Tencent nel 2018. Il 30 settembre 2018, Tencent ha apportato nuovamente un importante adeguamento alla struttura aziendale: i sette gruppi di business originari sono stati riorganizzati e integrati e il neonato Cloud and Smart Industry Business Group (CSIG ), piattaforma con il Content Business Group (PCG). Tra questi, CSIG intraprende la grande visione di Tencent ToB, mentre WeChat Business Group (WXG) collega la maggior parte degli utenti C-end.
Il cloud è già un business fulcro strategico per Tencent: da questo momento in poi, l’autoricerca e la migrazione della propria attività al cloud è diventata una questione importante per l’adeguamento del business, mentre l’autoricerca e la migrazione del business di WeChat al cloud è il massima priorità.
Prima della riforma di Tencent 930, Tencent non forniva un’infrastruttura cloud unificata per il proprio business interno sviluppato autonomamente, ma adottò il modello dei server delle macchine fisiche. Da una prospettiva macro, considerando l’enorme numero di utenti e il volume di affari di WeChat, la migrazione cloud auto-sviluppata può portare enormi vantaggi in termini di costi ed efficienza, che sono vantaggiosi sia per le aziende WeChat che per quelle Tencent Cloud.
Ma microscopicamente parlando, un business che coinvolge più di 1 miliardo di utenti deve subire un cambiamento così drastico, e far sentire gli utenti indifferenti, come se si dovessero cambiare le ruote di un’auto ad alta velocità, l’auto non può fermarsi, e anche le ruote non può essere urtato Cambia.
Il problema con il precedente test di pressione si è verificato durante il processo di sostituzione della ruota.
In effetti, è davvero il momento di sostituire le ruote, ha detto Stephen Liu:
Nel 2014 WeChat era solo un dipartimento. A quel tempo, quando l’azienda ha proposto una tale idea di ottimizzazione dei costi, eravamo piuttosto nervosi, perché non c’erano molte persone nel dipartimento in quel momento, era solo un dipartimento in quel momento e c’erano solo tre o quattrocento persone in quel momento. Prima del 2014, tutta la forza lavoro di WeChat era dedicata all’iterazione funzionale e al perfezionamento costante di nuove funzioni, quindi c’era meno attenzione su come veniva utilizzato il server back-end, compreso il modo in cui era realizzata l’architettura.
L’azienda aveva nuovamente questa esigenza. Successivamente, l’azienda ha fatto in modo che le persone vedessero come andavano i reparti aziendali e alla fine ha selezionato persone di grande esperienza. Ad esempio, quello che guidava la squadra in quel momento era anche il vicepresidente dell’azienda, ma sono rimasto molto colpito perché sono stato approvato da lui molte volte. Si dice che il costo di WeChat sia molto alto e che il tuo server non sia utilizzato bene.
▲ Il precedente rapporto di WeChat PPT
Questa esigenza di ridurre i costi e aumentare l’efficienza ha spinto il team di WeChat a ottimizzare per la prima volta l’architettura del server e all’epoca ha adottato un’architettura di sistema chiamata YARD.
Tuttavia, questa volta, la piattaforma cloud auto-sviluppata deve essere coerente con Tencent e viene adottata l’architettura di sistema open source K8S Rispetto a YARD, l’architettura K8S è più aperta e presenta vantaggi intrinseci nell’adattamento all’intelligenza artificiale e ai big data quadri. Ora, molte funzioni di WeChat sono legate all’intelligenza artificiale e ai big data, come la traduzione da voce a testo e testo.
In altre parole, nel 2014 WeChat ha adottato l’architettura YARD per uno scopo molto semplice, che era quello di aiutare a pianificare in modo flessibile le risorse del server e risparmiare sui costi. Non considerava più complessità e lungo termine e K8S non era open source in quel momento.
Con il progredire dello sviluppo del business, i vantaggi dell’architettura K8S superano gradualmente il dolore della migrazione dell’architettura, che coincide con la trasformazione del business di Tencent, e questo cambiamento è fondamentale.
Edsel Wang, un ingegnere dell’infrastruttura di WeChat, ha spiegato ad Aifaner i macro passaggi dell’autosviluppo di WeChat e della migrazione al cloud:
Per il team di WeChat, la migrazione al cloud può essere suddivisa in due livelli: stretto e ampio. In senso stretto, passare al cloud è la riforma 930 del 2018. Dopo la riforma 930 dell’azienda, l’azienda ha promosso l’autoricerca e la migrazione al cloud, quindi WeChat ha iniziato a utilizzare l’infrastruttura cloud unificata fornita dall’azienda. In senso lato, passare al cloud significa che WeChat ha gradualmente reso l’intero modello di ricerca e sviluppo cloud-native.Questo non include semplicemente lo spostamento di alcuni servizi di back-end dalla macchina fisica originale al cloud.Naturalmente, include anche il integrazione dell’intero processo di ricerca e sviluppo con il cloud.
Dopo la riforma 930 nel 2018, la promozione dell’autoricerca e della migrazione cloud da parte dell’azienda ha attraversato finora due fasi. La prima fase va dal 2018 al 2020. L’azienda ha cambiato principalmente il modo di fornire i server, ovvero dalla fornitura originale di macchine fisiche a CVM (Cloud Virtual Machine, cloud virtual machine). La seconda fase inizia dal 2020. L’azienda richiede inoltre a ciascun dipartimento aziendale di modificare alcuni sistemi di pianificazione interna in K8S. Per noi, questo è migrare da YARD a K8S. Nella prima fase, dalla macchina fisica originale all’uso di CVM, poiché abbiamo progettato YARD come livello di pianificazione, il nostro lavoro principale è fare in modo che YARD si adatti al cloud, perché YARD originariamente supportava macchine fisiche. Ora che YARD supporta CVM virtuale macchine, il livello aziendale non ha bisogno di cambiare molto.
Nella seconda fase, per il team di WeChat, si tratta di utilizzare K8S, ovvero sostituire la piattaforma YARD auto-sviluppata con le capacità di scheduling del cluster K8S fornito da Tencent Cloud. Per rendere più agevole questa migrazione, abbiamo pianificato tre fasi nel processo di sostituzione di YARD con K8S. Il primo passo è risolvere il problema se WeChat può essere eseguito su K8S e se il programma può essere eseguito su di esso. Il secondo passaggio consiste nel trasferire parte dell’esperienza accumulata da YARD in K8S, in modo che K8S possa essere allineato con le capacità originali di YARD, e quindi tutte le capacità fornite da YARD originale possano essere utilizzate. Nella terza fase, dobbiamo sfruttare appieno le capacità di K8S, perché abbiamo fornito i primi due passaggi forniti da YARD. Nella terza fase, dobbiamo sfruttare appieno le capacità di K8S, che si riflette principalmente in costo ed efficienza.
Abbiamo completato i primi due passaggi prima del 2020. Dalla seconda metà del 2020 abbiamo iniziato a utilizzare K8S su larga scala e nel 2021 siamo entrati nel terzo passaggio. Dal punto di vista attuale, i nostri costi e l’efficienza della ricerca sono stati ulteriormente migliorati rispetto all’originale YARD. Dal punto di vista del cloud in senso lato, il team di WeChat ha anche un evento di riferimento nella promozione della macchina virtuale CVM prima, ovvero il team di archiviazione ha anche fatto un passo avanti nel cloud, perché WeChat ha sempre utilizzato l’In the self -sistema di archiviazione sviluppato, negli ultimi dieci anni abbiamo sperimentato molti DB (database, database) e KV (Key-Value, una sorta di sistema di database) diversi negli ultimi dieci anni e, infine, abbiamo realizzato la capacità del cloud storage nella versione di infinityKV. Nella seconda metà del 2020 verrà lanciato infinityKV e circa l’80% dei dati in background di WeChat viene archiviato nel nuovo sistema di infinityKV.
Questo è il cloud WeChat (processo) di cui ho parlato, ovvero ci sono diversi passaggi (processo) per spostare l’elefante nel frigorifero.
Edsel Wang ha inoltre introdotto le limitazioni gradualmente emergenti di YARD. Nel 2014, la definizione di piattaforma cloud da parte del settore non era molto chiara. D’altra parte, l’ambiente hardware di Tencent era abbastanza diverso dall’attuale ambiente hardware cloud. YARD è stato sviluppato e progettato in quell’ambiente hardware in quel momento, il che gli causava la mancanza di alcune funzionalità di base come la virtualizzazione dei dischi e delle schede di rete.
All’inizio, il problema dello stress test che si è verificato durante l’autosviluppo e la migrazione al cloud di WeChat si trovava nella scheda di rete. Il motivo era che Tencent Cloud utilizzava un nuovo modello in quel momento e il sistema operativo e l’hardware CVM non erano ben adattato.
Infine, il team dell’architettura tecnica di WeChat ha risolto temporaneamente il problema che il carico della CPU era ridotto, ma le prestazioni della scheda di rete sono state strozzate dal metodo di salvataggio del paese attraverso una curva. In parole povere, se la CPU del server originale ha 180 core e 90 core sono dotati di 1 scheda di rete dopo lo slicing, il risultato è che la scheda di rete è completamente caricata e il carico della CPU è solo del 20% circa. Il team dell’architettura tecnica di WeChat ha segmentato nuovamente il core della CPU e lo ha modificato in 48 core della CPU corrispondenti a una scheda di rete, in modo che il carico della CPU sia superiore alla metà e il carico della scheda di rete non rappresenti un collo di bottiglia sfruttando appieno le prestazioni.
Questa è una soluzione ai sintomi, questa è una soluzione ai sintomi e la soluzione alla causa principale è CVM per ottimizzare lo scheduler della scheda di rete. L’ottimizzazione dello scheduler della scheda di rete CVM e la migrazione a K8S consentono al background di WeChat di controllare il traffico di rete in modo più efficace, migliorando ulteriormente la flessibilità e la stabilità dell’implementazione in background di WeChat.
Il cambiamento non fa paura, la paura non sta cambiando
Nel 2013, WeChat ha subito la sua interruzione più lunga. Poiché un escavatore ha rotto il cavo ottico di comunicazione, le richieste commerciali del Data Processing Center della Cina orientale sono state rivolte alla Cina meridionale e alla Cina settentrionale, il che ha portato alla paralisi dei servizi WeChat per più di cinque ore.
Da allora, quando l’architettura YARD è stata implementata l’anno successivo, WeChat ha svolto un’importante funzione: il supporto per i tre campus. Cioè costruire tre sale computer (parchi) in ogni città.La rete e l’alimentazione delle sale computer sono indipendenti.Anche se una delle fibre ottiche è tagliata, ce ne sono altre due come supporto.
Questo è il concetto comune di “ridondanza” nelle distribuzioni di server oggi.
Ora, dopo l’autosviluppo e il passaggio al cloud, non solo le risorse server vengono virtualizzate, ma la nuova architettura K8S può andare oltre: le risorse server appartengono all’intera azienda Tencent. Questo è proprio come un prestito: in precedenza, WeChat prendeva in prestito dalle filiali comunali, ma ora prende in prestito dalla sede provinciale.
Negli 11 anni di storia di WeChat finora, anche la definizione di WeChat è in continua evoluzione. Momenti, buste rosse di WeChat, piccoli programmi, account video e altre funzioni basate su nodi ampliano ancora e ancora la definizione di WeChat: è un social network, uno strumento di pagamento e una piattaforma di contenuti.
Anche il supporto del server dietro WeChat si trova ad affrontare un processo in continua evoluzione.
In precedenza, la prima neve a Pechino aveva causato l’invio disperato di amici da parte degli utenti locali, il che ha portato anche a un aumento istantaneo della domanda di server.In questo momento, era necessario reagire rapidamente per espandere la capacità.
Tuttavia, i cambiamenti meteorologici e i comportamenti degli utenti in un determinato luogo sono imprevedibili. È inevitabile inviare collettivamente buste rosse alle ore zero durante il Festival di Primavera e la vigilia di Capodanno, e ci sono molti inevitabili simili. Ad esempio, il concerto di Jay Chou il numero del video viene trasmesso in diretta e decine di milioni di spettatori hanno ragione È un enorme test del server WeChat, ma può essere sottoposto a stress test e implementato in anticipo.
Ricordando una trasmissione in diretta nel settembre dello scorso anno, Bok Zhou, l’ingegnere di sviluppo back-end dell’account video, si sentiva ancora entusiasta.
Ha affermato che grazie ai vantaggi dopo essere passato al cloud, il team di WeChat può anche avviare più risorse del server più velocemente di fronte a questo aumento inaspettato del traffico, impedendo ad alcuni utenti di non essere in grado di guardare la trasmissione in diretta.
Anche l’autoricerca e la migrazione al cloud è un processo a lungo termine e in continua evoluzione, e i vantaggi verranno scoperti gradualmente.Ora non è la fine di questo processo, ma alcuni vantaggi e visioni sono già prevedibili.
Stephen Liu, responsabile dell’architettura tecnica di WeChat, ha dichiarato:
Ho condiviso un punto di vista con il team più di un anno fa e ho preso i 5 livelli di guida autonoma come analogia. Il livello 0 è la guida umana senza alcuna automazione. Il livello 1 ha un po’ di assistenza alla guida, il livello 2 è un’assistenza alla guida più forte, il livello 3 ha già un certo grado di capacità di guida automatica e poi ci sono il livello 4 e il livello 5.
Una delle mie speranze è di poter ottenere in futuro la stessa guida automatica, che in futuro, quando lo garantirà la Festa di Primavera, potrà essere completamente azionata dalle macchine. Probabilmente eravamo al livello 0 qualche anno fa. Più tardi, dopo YARD, era il Livello 1. Dopo aver esplorato le varie capacità di K8S per tutto il 2021, penso che ora dovremmo essere in uno stato di livello 2. Spero di poter raggiungere il livello 3 in seguito, con funzioni di guida automatizzata relativamente complete.
#Benvenuto a prestare attenzione all’account WeChat ufficiale di Aifaner: Aifaner (WeChat: ifanr), contenuti più interessanti ti verranno forniti il prima possibile.
Love Faner | Link originale · Visualizza commenti · Sina Weibo