Śniadanie z miliardem e-maili
Opublikowany: 2020-02-05Gładki Czarny piątek to wszystko, o co prosimy
Do czasu, gdy jadłem śniadanie około 8 rano czasu pacyficznego (PST) każdego dnia w weekend w Czarny piątek, Twilio SendGrid przetworzył już ponad 1B wiadomości e-mail obliczonych według amerykańskiego czasu wschodniego (EST).
Patrząc na statystyki, przetworzyliśmy ponad 16,5 miliarda wiadomości e-mail od Święta Dziękczynienia do Cyberponiedziałku i ponad 22,3 miliarda w tygodniu rozpoczynającym się we wtorek przed Świętem Dziękczynienia. To naprawdę dobre liczby dla biznesu. Z punktu widzenia organizacji inżynierskiej zrobienie tego bez uruchamiania alertów lub pogorszenia jakości obsługi klienta było niezwykle satysfakcjonujące.
Polecam przeczytać ten artykuł na blogu, Skalowanie naszej infrastruktury dla ponad 4 miliardów wiadomości e-mail w jeden dzień , napisany przez moją koleżankę Sarę Saedinia, który mówi o znaczeniu płynnego działania na taką skalę dla naszej firmy i firm, które na nas polegają. Tutaj skoncentruję się na naszych przygotowaniach, które sprawiły, że najbardziej krytyczny weekend w roku dla naszych klientów pocztowych był jak dotąd najbardziej płynny.
Jak sprawiliśmy, by ten weekend był bezproblemowy w Czarny piątek? Obsługa naszych największych dni wysyłania wymaga starannego planowania, licznych testów wahań w regionie, wielu osób analizujących dane i zacieśniania pętli sprzężenia zwrotnego, gdy weryfikujemy ulepszenia naszych systemów na podstawie obserwacji telemetrycznych. Wciąż mamy więcej automatyzacji i usprawnień, które będziemy wprowadzać, aby nadal zachwycać naszych klientów i szybko wysyłać właściwą komunikację do właściwych odbiorców.
Zrozumienie naszej działalności
Model biznesowy SendGrid wymaga, abyśmy zawsze byli gotowi — nie mamy okien obsługi do przyjmowania i dostarczania poczty. Nasi klienci wymagają niezawodnej usługi, która przyjmuje i dostarcza pocztę bez zakłóceń. Oznacza to, że wszystkie zmiany w naszej infrastrukturze, zarówno sprzętowej, jak i programowej, muszą zostać wykonane, gdy kontynuujemy przetwarzanie i dostarczanie wiadomości e-mail bez zauważalnych opóźnień.
Liczba e-maili, które przetwarzamy, ogromnie wzrosła w ciągu ostatnich kilku lat, jak pokazuje poniższy wykres.
Nasz pierwszy dzień 1B mieliśmy w połowie 2016 roku, a pierwszy dzień 4B mieliśmy w Czarny piątek. To 400% wzrostu w niecałe 4 lata. Aby uwzględnić naszą stale rosnącą skalę, utrzymać nasze koszty w zarządzaniu i zapewnić większą niezawodność naszym klientom, musieliśmy przeprojektować i rozwinąć nasz potok przetwarzania poczty.
Nadchodzi Czarny Piątek
Ludzie pytają mnie: „Dlaczego Czarny Piątek i Cyber Poniedziałek są dla Ciebie tak ważne?” W ten Cyberponiedziałek przetworzyliśmy o 45% więcej e-maili niż w zeszłym roku. Czarny piątek to jedno z najważniejszych wydarzeń w handlu detalicznym i wydatkach w Stanach Zjednoczonych. Tradycyjnie jest to dzień, w którym detaliści będą na plusie (dodatni netto) za rok. Marketing e-mailowy i korzystanie z e-maili transakcyjnych stały się kluczowe dla wszystkich firm.
Od sprzedawców detalicznych po firmy, które zapewniają automatyzację marketingu, problemy z niezawodnym dostarczaniem wiadomości e-mail w weekend w Czarny piątek mogą skutkować znaczną utratą przychodów. W rezultacie ten weekend jest dla nas często weekendem definiującym biznes. Dokładamy wszelkich starań, aby było to jak najłatwiejsze dla naszych inżynierów, agentów wsparcia, menedżerów sukcesu klienta, kadry kierowniczej, a co najważniejsze, dla naszych klientów.
Przygotowania do Czarnego Piątku
Jak więc przygotowujemy się do Czarnego Piątku? Kupujemy koszulki! (I wykonaj mnóstwo pracy.) Czytaj dalej, jak się przygotowujemy.
Członkowie biura Twilio SendGrid Irvine
Niektórzy członkowie biura Twilio SendGrid w Denver.
Statystyki
Zacznijmy od kilku statystyk:
- Przetworzono 4,1 mld e-maili w Czarny piątek i 4,2 mld e-maili w Cyberponiedziałek
- Przetworzono ponad 16,5 mld e-maili od Święta Dziękczynienia do Cyberponiedziałku
- Przetworzono ponad 315 mln e-maili w godzinach szczytu
- Czarny Piątek i Cyberponiedziałek, każdy z nich przez 8 godzin z rzędu przetwarzał 220 mln e-maili lub więcej
- Wszystko to przy średnim czasie od końca do końca dostarczanych wiadomości e-mail wynoszącym 1,9 sekundy
- Średnio emitujemy około 5,5 zdarzenia na wiadomość. Na tej podstawie nasze systemy wyemitowały i przetworzyły ponad 91 mld wydarzeń od Święta Dziękczynienia do Cyberponiedziałku, 23 mld+ w samym Cyberponiedziałku
Wyzwania
Nigdy wcześniej nie widziana skala : Skala, którą chcemy przetestować, musi odpowiadać naszemu przewidywanemu obciążeniu szczytowemu. Kiedy na początku kwietnia przeprowadziliśmy nasz pierwszy test zeszłorocznych przygotowań, nasz średni wolumen w dni powszednie wyniósł mniej niż połowę naszych szczytowych prognoz. Nasze szczyty godzinowe nie były nawet połową tego, na co byśmy testowali.
Zarządzanie naszymi środowiskami : Poczta e-mail jest przepływem stanowym: konieczne jest śledzenie stanu wiadomości. Tak więc, gdy wiadomość przechodzi przez potok, śledzimy, czy jest odrzucana, czy odkładana, i zapobiegamy duplikacji. W związku z tym nasz potok pocztowy jest chmurą hybrydową i architekturą lokalną, a autoskalowanie nie jest magiczną poprawką. Naszym wyzwaniem jest maksymalizacja wydajności naszych usług centrum danych przy jednoczesnym przygotowaniu pojemności do obsługi ogromnych skoków wolumenu bez wpływu na koszty dla klientów.
Skalowanie nie jest liniowe : Nie wszystkie systemy skalują się liniowo. Ponieważ nasza przewidywana skala jest o wiele wyższa niż na początku testów, nie możemy po prostu obliczyć naszych potrzeb sprzętowych za pomocą prostego modelu matematycznego. Należy również pamiętać, że ślepe skalowanie usług spowodowałoby przeciążenie zależności, a zależności takie jak baza danych nie skalują się w taki sam sposób, jak nasz agent przesyłania poczty (MTA).
Równoważenie naszych inwestycji : ponieważ nieustannie wprowadzamy innowacje, zapewniając, że spełniamy potrzeby klientów związane z dostarczaniem przez nich poczty e-mail, rozumiemy, że nasze funkcje nie zapewniają naszym klientom żadnej wartości, jeśli nie są dostępne i nie działają zgodnie z potrzebami. Musimy znaleźć równowagę i odpowiednio zainwestować w testowanie, uczenie się, ulepszanie i ulepszanie naszych systemów, aby były niezawodne i odporne na naszą skalę. Skuteczne działanie pozwala nam dalej inwestować w innowacje.
Jak to zrobiliśmy?
Zrobiliśmy to razem, jako jeden zespół. Ramię w ramię, jak mówimy. W tegorocznych przygotowaniach, od kwietnia do listopada, wzięło udział ponad 100 członków w wielu zespołach. Modelowanie prognoz szczytowych, definiowanie kryteriów obserwowalności, uczenie się na podstawie naszych obserwacji, inżynieria niezbędnych zmian, planowanie i zarządzanie wymaga różnych umiejętności od wielu osób.
Ufaliśmy sobie nawzajem, zachowując uczciwość, skupiając się i realizując nasze cele.
Naszym przyjacielem był skuteczny i ciągle doskonalący się proces.
Planowanie
Posiadamy trzy centra danych do przetwarzania e-maili klientów. Aby zaplanować nieosiągalną skalę, potwierdzamy, że możemy obsłużyć przewidywany szczytowy ruch, mając do dyspozycji tylko dwa centra danych. Aby spełnić naszą umowę SLA o wysokiej dostępności, nasza infrastruktura ma wbudowaną funkcję przełączania awaryjnego dla regionu. Oznacza to, że mamy możliwość przełączania awaryjnego ruchu między regionami.
Wykorzystujemy tę zdolność często przez cały rok jako standardową procedurę operacyjną i przyspieszamy ją w ramach naszych wysiłków, aby zademonstrować, że jesteśmy w stanie obsłużyć szczytowe wolumeny w Czarny Piątek/Cyber Poniedziałek przy zachowaniu jakości usług. Jeśli telemetria systemowa zbliża się do progu naszego docelowego poziomu usług (SLO), jesteśmy w stanie szybko wykorzystać wiele regionów, aby wznowić stan nominalny. Następnie wykorzystujemy zebraną telemetrię, aby określić, gdzie musimy wprowadzić zmiany.
Równolegle rozpoczęliśmy przeglądanie i utrwalanie naszych celów dotyczących poziomu usług (SLO), które zapewniają nam precyzyjny cel liczbowy dotyczący dostępności systemu, oraz naszych wskaźników poziomu usług (SLI), które zapewniają nam częstotliwość udanych sond naszych systemów.
Obserwacje, wnioski i komunikacja
Każdy test dostarczał dużej ilości informacji. Jednym z wyzwań, z jakimi się zmierzyliśmy, było skuteczne dokumentowanie i przekazywanie obserwacji rotacyjnym zespołom testowym, a następnie analizowanie danych w wielu systemach. Chociaż mamy standardowe pulpity nawigacyjne zespołu, każdy członek może mieć coś konkretnego, co obserwuje.
Zaczęliśmy robić retrospekcje z zespołami testowymi, aby przeanalizować wszystkie informacje techniczne zrzucone dla wielu usług zarządzanych przez wiele zespołów. Te retrospekcje były długie i przez większość czasu były przydatne tylko dla jednego lub dwóch zespołów na test. W końcu przeszliśmy do używania Slack Thread do notatek retro, oszczędzając 10 sekund czasu ludzkiego spotkania na test.
Nasz zespół zarządzający testami składał się z dwóch kierowników inżynierii, jednego architekta i jednego starszego inżyniera. Menedżerowie odegrali kluczową rolę w planowaniu i zarządzaniu zależnościami, podczas gdy bardziej techniczni ludzie pomagali przetwarzać i analizować informacje na poziomie systemu od końca do końca.
Na podstawie analizy dostępnych informacji iteracyjnie potwierdziliśmy, że nasze SLI są ściśle zgodne z naszymi SLO. Dostosowaliśmy nasze alerty i sprawiliśmy, że niektóre alerty krytyczne są bardziej wrażliwe, aby z dużym wyprzedzeniem identyfikować wszelkie potencjalne degradacje systemu.
Priorytetyzacja i wdrożenie
Zgłosiliśmy proponowane zmiany, a zespoły nadały tym biletom priorytet. Pierwszym wyzwaniem było zarządzanie tymi biletami na wielu tablicach drużyn. Kolejnym wyzwaniem było bezwzględne zestawienie priorytetów prac związanych z Czarnym Piątkiem z innymi priorytetami.
Musieliśmy zapewnić naszym inżynierom swobodę twórczą w rozwiązywaniu trudnych problemów. Jednocześnie musieliśmy zadbać o to, aby te rozwiązania były zgodne z naszymi długoterminowymi planami. Bardzo ważne było również to, że zawsze byliśmy świadomi jakiegokolwiek konfliktu interesów, co oznaczało unikanie wszelkich krótkoterminowych rozwiązań, które mogłyby nas ugryźć.
Weryfikacja wprowadzonych zmian stałaby się naszym celem w nadchodzących testach.
Utrzymanie i podkręcanie tempa w miarę zbliżania się do Czarnego Piątku było dużym wyzwaniem w planowaniu i realizacji.
Przyspieszenie
Gdy weszliśmy we wrześniu, co tydzień zaczęliśmy przeprowadzać wiele testów warunków skrajnych. Wymagało to od nas szybszej identyfikacji, naprawy i weryfikowania problemów. Zapewniło nam to również znacznie szybszy cykl uczenia się i adaptacji.
Oprócz pełnego testu potoku pocztowego, jak opisano wcześniej, w tym samym czasie rozpoczęliśmy również testy warunków skrajnych naszych usług pomocniczych. W tym samym okresie rozpoczęliśmy przeprowadzanie testów obciążenia z jednym z naszych największych klientów, aby upewnić się, że nasze przychodzące geopody bez obaw obsłużą ich oczekiwaną serię wysyłek w okresie świątecznym.
Ze względu na długie godziny i wyzwanie związane z zarządzaniem pracą nasze zespoły się wypalały. Wymieniliśmy najbardziej krytyczne alerty wymagane do zatrzymania naszego testu, jeśli to konieczne, i uczyniliśmy je bardziej czułymi. Umożliwiło nam to rozpoczęcie testów bez konieczności obecności nas w celu monitorowania naszych systemów wcześnie rano.
Szybkość z ostrożnością
Gdy zbliżaliśmy się do końca września, pojawiła się obawa, że możemy nie iść wystarczająco szybko we właściwym kierunku. Stworzyliśmy zespół tygrysów, zespół specjalistów, który mógł pracować nad dowolnymi biletami w wielu zespołach, a także taki, który pracował na znacznie szczuplejszym procesie na poziomie codziennym.
W ramach przygotowań do Black Friday wprowadziliśmy znaczne ulepszenia w naszej infrastrukturze operacyjnej oraz oprogramowaniu do przetwarzania poczty. Te zmiany były wyraźnie traktowane priorytetowo, a zespoły musiały pracować ze sobą w doskonałej koordynacji. To było wspaniałe doświadczenie dla ludzi, którzy stawiali SendGrid na pierwszym miejscu. Wprowadzaliśmy zmiany w aplikacjach, infrastrukturze i zwiększaniu wydajności sprzętu, jednocześnie uruchamiając główny silnik jednostki biznesowej spółki publicznej w tempie startowym. Co najlepsze, zrobiliśmy to wszystko bez pogorszenia jakości obsługi naszych klientów.
Przyszłe plany
Spędziliśmy wiele godzin przygotowując się do Czarnego Piątku 2019. Nasze wnioski z tego roku pomogą nam zautomatyzować większość naszych przygotowań do Czarnego Piątku i Cyberponiedziałku w 2020 roku. Z niecierpliwością czekamy na kolejny udany rok zwieńczony bezstresowym, rekordowym - niszczenie ilości wysyłanych urlopów dla naszych klientów i naszych pracowników.