Mic dejun cu un miliard de e-mailuri

Publicat: 2020-02-05

O Vinere Neagră fără probleme este tot ce cerem

Până când mi-am luat micul dejun la aproximativ 8 dimineața, ora standard a Pacificului (PST) în fiecare zi, în timpul weekendului de Vinerea Neagră, Twilio SendGrid procesase deja mai mult de 1 miliard de e-mailuri calculate în ora standard de est a SUA (EST).

Privind statisticile, am procesat peste 16,5 miliarde de e-mailuri de la Ziua Recunoștinței până la Cyber ​​Monday și peste 22,3 miliarde pentru săptămâna care începe marți înainte de Ziua Recunoștinței. Acestea sunt cifre foarte bune pentru afacere. Din perspectiva unei organizații de inginerie, a face acest lucru fără să declanșeze alerte sau fără vreo experiență degradată a clienților a fost incredibil de satisfăcător.

Vă recomand să citiți acest articol de blog, Scaling Our Infrastructure for 4+ Billion Email-uri într-o singură zi , scris de colega mea Sara Saedinia, care vorbește despre importanța funcționării fără probleme la această scară pentru afacerea noastră și pentru afacerile care se bazează pe noi. Aici, mă voi concentra asupra pregătirilor noastre care au făcut ca weekendul cel mai critic al anului pentru clienții noștri de e-mail să fie cel mai lin de până acum.

Cum am făcut din acesta un weekend perfect de Vinerea Neagră? Gestionarea celor mai mari zile de trimitere necesită o planificare diligentă, numeroase teste de schimbare a regiunii, zeci de oameni care analizează date și înăsprirea buclelor de feedback pe măsură ce validăm îmbunătățirile aduse sistemelor noastre pe baza observațiilor de telemetrie. Avem încă mai multe automatizări și îmbunătățiri pe care le vom face pentru a ne asigura că continuăm să încântăm clienții noștri și să ne asigurăm că trimitem rapid comunicațiile potrivite destinatarilor potriviți.

Înțelegerea afacerii noastre

Modelul de afaceri al SendGrid necesită să fim mereu în stare de treabă – nu avem ferestre de întreținere pentru acceptarea și livrarea corespondenței. Clienții noștri au nevoie de un serviciu de încredere care acceptă și livrează corespondența fără întrerupere. Aceasta înseamnă că toate modificările infrastructurii noastre, hardware și software, trebuie făcute în timp ce continuăm procesarea și livrarea e-mailurilor fără întârzieri vizibile.

Numărul de e-mailuri pe care le procesăm a crescut enorm în ultimii ani, așa cum arată graficul următor.

Am avut prima zi 1B la mijlocul anului 2016 și am avut prima zi 4B în Black Friday. Adică o creștere de 400% în mai puțin de 4 ani. Pentru a ține cont de amploarea noastră din ce în ce mai mare, pentru a ne menține costurile gestionabile și pentru a oferi o fiabilitate mai mare pentru clienții noștri, a trebuit să reproiectăm și să evoluăm conducta noastră de procesare a corespondenței.

Vinerea neagră se apropie

Oamenii mă întreabă: „De ce sunt Black Friday și Cyber ​​Monday atât de importante pentru tine?” În această Cyber ​​Monday, am procesat cu 45% mai multe e-mailuri decât vârful din anul precedent. Black Friday este unul dintre cele mai importante evenimente de vânzare cu amănuntul și cheltuieli din Statele Unite. În mod tradițional, este ziua în care comercianții cu amănuntul vor fi în negru (pozitiv net) pentru anul. Marketingul prin e-mail și utilizarea e-mailurilor tranzacționale au devenit critice pentru toate companiile.

De la comercianți cu amănuntul până la companiile care oferă automatizare de marketing, întâmpinarea problemelor la livrarea de e-mailuri în mod fiabil în weekendul de Black Friday poate duce la pierderi semnificative de venituri. Drept urmare, acest weekend este adesea un weekend care definește afacerile pentru noi. Facem tot posibilul pentru a face totul cât mai ușor posibil pentru inginerii noștri, agenții de asistență, managerii de succes pentru clienți, directori și, cel mai important, pentru clienții noștri.

Pregătirea de Vinerea Neagră

Deci, cum ne pregătim de Vinerea Neagră? Cumpărăm tricouri! (Și faceți o mulțime de muncă.) Citiți mai departe pentru cum ne pregătim.

Membrii biroului Twilio SendGrid Irvine

Unii dintre membrii biroului Twilio SendGrid Denver.

Statistici

Să începem cu câteva statistici:

  • S-au procesat peste 4,1 miliarde de e-mailuri în Black Friday și peste 4,2 miliarde de e-mailuri în Cyber ​​Monday
  • S-au procesat peste 16,5 miliarde de e-mailuri de la Ziua Recunoștinței până la Cyber ​​Monday
  • Au procesat peste 315 milioane de e-mailuri în timpul orelor de vârf
  • Black Friday și Cyber ​​Monday, fiecare a avut 8 ore succesive de procesare a 220 de milioane de e-mailuri sau mai mult
  • Toate acestea cu un timp mediu de la capăt la final al e-mailurilor livrate de 1,9 secunde
  • În medie, emitem aproximativ 5,5 evenimente per mesaj. Pe baza acestui fapt, sistemele noastre au emis și procesat peste 91 de miliarde de evenimente de la Ziua Recunoștinței până la Cyber ​​Monday, 23 de miliarde+ numai în Cyber ​​Monday

Provocările

Scară nemaivăzută înainte : scara pe care ne propunem să o testăm trebuie să se potrivească cu sarcina noastră de vârf estimată. Când am făcut primul nostru test pentru pregătirea acestui an trecut la începutul lunii aprilie, volumul nostru mediu în zilele lucrătoare a fost mai puțin de jumătate din predicția noastră de vârf. Vârfurile noastre orare nu au fost nici măcar jumătate din ceea ce am testat.

Gestionarea mediilor noastre : e-mailul este un flux de lucru cu stare: este necesar să ținem evidența stării unui mesaj. Deci, pe măsură ce mesajul trece prin conductă, urmărim dacă respinge sau este amânat și prevenim duplicarea. Ca atare, canalul nostru de e-mail este un cloud hibrid și o arhitectură on-premise, iar scalarea automată nu este o soluție magică. Provocarea noastră este să maximizăm eficiența serviciilor noastre de centre de date, pregătind în același timp capacitatea de a face față unor creșteri masive de volum fără a afecta costurile pentru clienți.

Scalare nu este liniară : nu toate sistemele se scalează liniar. Deoarece scara noastră prezisă este mult mai mare decât atunci când începem testarea, nu putem doar să ne calculăm nevoile hardware printr-un model matematic simplu. De asemenea, este important să ne amintim că serviciile de scalare orbește ar supraîncărca dependențe, iar dependențele precum baza de date nu se scalează în același mod ca agentul nostru de transfer de e-mail (MTA).

Echilibrarea investițiilor noastre : pe măsură ce continuăm să inovăm, asigurându-ne că sprijinim nevoile clienților legate de livrarea e-mail-urilor, înțelegem că funcțiile noastre nu le oferă clienților noștri nicio valoare dacă nu sunt accesibile și nu funcționează conform nevoilor. Trebuie să găsim un echilibru și să investim corespunzător în testarea, învățarea, modernizarea și îmbunătățirea sistemelor noastre pentru a fi fiabile și rezistente la scara noastră. Făcând acest lucru eficient, ne permite să continuăm să investim în inovare.

Cum am făcut-o?

Am făcut-o împreună, ca o singură echipă. La braț, așa cum spunem. Pregătirile noastre din acest an, din aprilie până în noiembrie, au implicat participarea a peste 100 de membri din multe echipe. Modelarea predicțiilor de vârf, definirea criteriilor de observabilitate, învățarea din observațiile noastre, proiectarea schimbărilor necesare, planificarea și gestionarea necesită diverse abilități de la mai mulți oameni.

Am avut încredere unul în celălalt în timp ce ne păstrăm sinceri, rămânem concentrați și ne îndeplinim obiectivele.

Un proces eficient și în continuă îmbunătățire a fost prietenul nostru.

Planificare

Avem trei centre de date pentru a procesa e-mailurile clienților. Pentru a planifica o scară neatinsă, validăm că ne putem gestiona traficul proiectat de vârf cu doar două centre de date disponibile. Pentru a îndeplini SLA-ul nostru de înaltă disponibilitate, infrastructura noastră are încorporat failover-ul regiunii. Aceasta înseamnă că avem capacitatea de a transfera traficul între regiuni.

Folosim această capacitate cu o cadență frecventă pe tot parcursul anului ca procedură de operare standard și o accelerăm ca parte a eforturilor noastre de a demonstra că suntem capabili să deservim volumele de vârf de Black Friday/Cyber ​​Monday, menținând în același timp calitatea serviciului. Dacă telemetria sistemului se apropie de pragul obiectivului nostru de nivel de serviciu (SLO), suntem capabili să folosim rapid mai multe regiuni pentru a relua starea nominală. Apoi folosim telemetria colectată pentru a determina unde trebuie să facem modificări.

Într-un efort paralel, am început să revizuim și să consolidăm obiectivele noastre de nivel de serviciu (SLO) care ne oferă o țintă numerică precisă pentru disponibilitatea sistemului și indicatorii de nivel de serviciu (SLI), care ne oferă frecvența sondelor de succes pentru sistemele noastre.

Observații, învățături și comunicare

Fiecare test a oferit o cantitate mare de informații. Una dintre provocările cu care ne-am confruntat a fost documentarea și comunicarea eficientă a observațiilor între echipele de testare rotative și apoi analizarea datelor pe mai multe sisteme. Deși avem tablouri de bord standard pentru echipă, fiecare membru ar putea avea ceva specific pe care îl observă.

Am început să facem un retro cu echipele de testare pentru a analiza toate informațiile tehnice aruncate pentru mai multe servicii gestionate de mai multe echipe. Aceste retro-uri au fost lungi și, pentru cea mai mare parte a duratei, au fost utile doar uneia sau două echipe pe test. În cele din urmă, am trecut la utilizarea unui Slack Thread pentru note retro, economisind 10 de ore umane de întâlnire per test.

Echipa noastră de management al testelor a implicat doi manageri de inginerie, un arhitect și un inginer senior. Managerii au fost esențiali în planificarea și gestionarea dependenței, în timp ce cei mai tehnici au ajutat la procesarea și analizarea informațiilor la nivel de sistem de la capăt la capăt.

Pe baza analizei informațiilor disponibile, am validat în mod iterativ că SLI-urile noastre se conformau strict cu SLO-urile noastre. Ne-am reglat alertele și am făcut anumite alerte critice mai sensibile pentru a identifica orice posibilă degradare a sistemului cu mult timp în avans.

Prioritizare și implementare

Am abonat modificările propuse și echipele au prioritizat aceste bilete. Prima provocare aici a fost gestionarea acestor bilete în mai multe consilii de echipă. O altă provocare a fost să prioritizezi fără milă activitatea de Vinerea Neagră față de alte priorități.

Trebuia să oferim inginerilor noștri libertatea creativă de a veni cu soluții la probleme dificile. În același timp, a trebuit să ne asigurăm că aceste soluții se aliniază cu planurile noastre pe termen lung. De asemenea, a fost foarte important să fim întotdeauna conștienți de orice conflict de interese, ceea ce însemna să evităm orice soluții pe termen scurt care ar putea reveni să ne muște.

Validarea modificărilor care au fost implementate ar deveni obiectivul nostru pentru testele viitoare.

Menținerea și creșterea ritmului pe măsură ce ne apropiam de Black Friday a fost o provocare majoră în planificare și execuție.

Accelerația

Când am intrat în septembrie, am început să executăm mai multe teste de stres în fiecare săptămână. Acest lucru ne-a impus să identificăm, să remediam și să validăm problemele mai rapid. De asemenea, ne-a oferit un ciclu de învățare și adaptare mult mai rapid.

Pe lângă testarea completă a conductei de corespondență, așa cum este descris mai devreme, am început, de asemenea, să testăm serviciile noastre de asistență în același timp. În aceeași perioadă, am început să efectuăm teste de încărcare cu unul dintre cei mai mari clienți ai noștri, pentru a ne asigura că geopodele noastre primite își vor face față trimiterilor anticipate în explozie în timpul sezonului de vacanță fără nicio îngrijorare.

Din cauza orelor lungi și a provocării de a gestiona munca, echipele noastre au fost arse. Am enumerat cele mai critice alerte necesare pentru a opri testul, dacă este necesar, și le-am făcut mai sensibile. Acest lucru ne-a permis să începem să ne facem testele fără a fi necesar să fim prezenți pentru a ne monitoriza sistemele dimineața devreme.

Viteza cu prudenta

Pe măsură ce ne apropiam de sfârșitul lunii septembrie, a existat îngrijorarea că este posibil să nu ne mișcăm suficient de repede în direcția corectă. Am creat o echipă Tiger, o echipă de specialiști care ar putea lucra la oricare dintre bilete în mai multe echipe și una care a lucrat cu un proces mult mai slab la nivel zilnic.

Am făcut îmbunătățiri semnificative în infrastructura noastră operațională, precum și în software-ul nostru de procesare a corespondenței, în pregătirea Black Friday. Aceste schimbări au fost prioritizate în mod expres, iar echipele au trebuit să lucreze într-o mare coordonare între ele. A fost o experiență grozavă pentru cei care au pus SendGrid pe primul loc. Făceam modificări aplicațiilor, infrastructurii și creșteam capacitatea hardware, în timp ce rulam motorul de bază al unei unități de afaceri a unei companii publice, totul într-un ritm de pornire. Cel mai bun dintre toate, am făcut totul fără nicio experiență de service degradată pentru clienții noștri.

Planuri de viitor

Ne-am petrecut o mulțime de ore umane pregătindu-ne pentru Vinerea Neagră 2019. Învățăturile noastre din acest an ne vor ajuta să ne automatizăm o mare parte din pregătirea noastră pentru Vinerea Neagră și Luni cibernetică din 2020. Așteptăm cu nerăbdare un alt an de succes, cu un record fără stres, record. -scăderea volumului de trimiteri de vacanță pentru clienții și angajații noștri.