Jako inżynierowie oprogramowania w Forbes zawsze tworzymy innowacyjne funkcje i pracujemy nad prototypami dla potencjalnych projektów. Niektóre inicjatywy sprawdzające koncepcję pozostają w stanie testowania, ale niektóre są udostępniane szerszej publiczności. Bertie Bulletin, comiesięczny e-mail zawierający statystyki użytkowników, był projektem, który rozpoczął się jako inicjatywa inżynierska i przekształcił się w comiesięczny e-mail wysyłany zarówno do aktywnych pracowników Forbes, jak i współpracowników, którzy piszą dla strony internetowej Forbes.
Obecnie pisarze mają dostęp do swoich statystyk użytkowników i historii za pośrednictwem Bertie, systemu zarządzania treścią Forbesa, w którym mogą pisać, edytować i publikować swoje artykuły. Bertie Bulletin powstał z sugestii, aby lepiej wyposażyć pisarzy w wiedzę potrzebną do zrozumienia ich statystyk, a także zapewnić im zapis statystyk historycznych. Bertie Bulletin jest podobny do wyciągu bankowego, który pomaga pisarzom śledzić ich wyniki z miesiąca na miesiąc. Uwzględniliśmy najskuteczniejsze artykuły z poprzedniego miesiąca na podstawie liczby wyświetleń strony, które otrzymała artykuł, statystyk odbiorców i podziału odesłań wskazującego, skąd pochodzą czytelnicy. Chociaż te e-maile zawierają niektóre dane, które już istnieją w panelu statystyk, obejmują również szczegółowe informacje. Statystyki to porównania danych, na przykład z bieżącego miesiąca lub roku z poprzednim miesiącem lub rokiem.
Łączenie jednostek. Sieć, networking, social media, internet co
getty
Stos i szczegóły techniczne
Tworząc Bertie Bulletin, zadbaliśmy o to, aby w pełni wykorzystać istniejące projekty we wszechświecie Forbes Engineering. Początkowe podejście wykorzystywało Directed Acyclic Graphs lub DAGs, które są napisane w Pythonie, podobnie jak Bertie Bulletin. W celu stworzenia listy mailingowej skonsultowaliśmy się z naszym zespołem API, który wykorzystał funkcje w chmurze do wygenerowania list mailingowych z zadanymi parametrami. Wykorzystaliśmy Mailgun, usługę dostarczania wiadomości e-mail używaną przez inne projekty Forbes, do przechowywania list mailingowych i szablonów wiadomości e-mail, a także wyzwalania wiadomości e-mail. Nasza baza kodów wywołała interfejs API statystyk Forbesa, aby pobrać liczby i wygenerować spostrzeżenia, które następnie były przechowywane jako zmienne odbiorców w Mailgun.
Wiele badań poświęcono na ustalenie, który silnik szablonów ma sens. Początkowa wiadomość e-mail została utworzona w jednym pliku HTML, chociaż nie był ładny ani łatwy do edycji. Nasza lista życzeń zawierała silnik, który pozwalałby na wykorzystanie struktur dziedziczenia szablonów i kontroli. Innymi słowy, możemy podzielić wiadomość e-mail na sekcje z warunkami warunkowymi, które następnie zostałyby skompilowane. To doprowadziło nas do Jinja, który określa się jako „szybki, ekspresyjny, rozszerzalny silnik szablonów”, co czyni go idealnym do naszych celów.
Skonfigurowanie przepływu Jinja dla Bertie Bulletin wymagało trzech różnych kroków: utworzenia plików Jinja zawierających nasze elementy HTML, użycia wbudowanych metod renderowania pojedynczego pliku HTML i przesłania tego pliku do Mailgun w celu użycia jako szablonu wiadomości e-mail.
Nasz Minimum Viable Product (MVP) miał kilka niezbędnych rzeczy dla naszych pisarzy. Obejmowały one najpopularniejsze artykuły, statystyki odbiorców, całkowitą liczbę opublikowanych artykułów oraz informacje o odsłonach stron. Pierwsza wersja e-maila została opublikowana w lutym 2022 r., renderując statystyki ze stycznia. W każdej iteracji tych e-maili dodaliśmy nowe funkcje umożliwiające autorom wizualizację ich informacji w bardziej przystępny sposób, takie jak wykres pierścieniowy ze statystykami odbiorców i tabela skierowań typów źródeł ruchu, żeby wymienić tylko kilka.
Zrzut ekranu przedstawiający wykres pączkowy Bertie Bulletin i projekty podziału skierowań.
Forbes
Kroki w procesie
Proces wdrażania wiadomości e-mail Bertie Bulletin można podzielić na kilka ogólnych kroków. Początkowo szablon wiadomości e-mail jest generowany i przesyłany, a lista mailingowa jest oczyszczana. Następne kroki pobierają dane każdego autora z interfejsu API statystyk i przekształcają je w przydatne informacje. Na koniec aktualizowane są dane każdego użytkownika i wysyłana jest wiadomość e-mail.
Proces wdrażania
Aby znaleźć najlepszą strategię wdrażania Bertie Bulletin, ponownie zwróciliśmy się do Forbes Engineering. Skonsultowaliśmy się z naszym zespołem DevOps, który zasugerował użycie Argo-Workflows, silnika natywnego dla kontenerów, który umożliwia orkiestrację zadań równoległych na Kubernetes, platformie open source do pracy z kontenerami. Każdy krok został skonteneryzowany w niezawodny pakiet środowiska wykonawczego i zastosowany w samodzielnym obrazie. Zaletą korzystania z kontenerów było to, że każdy z nich byłby mały i wykonywał określoną jednostkę pracy, którą można było następnie skalować poziomo i wykonywać równolegle, co pozwalało na szybsze zakończenie pracy wsadowej. Optymalizacja była ważna, ponieważ spodziewaliśmy się wysyłać kilka tysięcy e-maili miesięcznie. Dzięki w pełni funkcjonalnemu interfejsowi użytkownika Argo byliśmy w stanie zobaczyć każdy skonteneryzowany krok jako etap w przepływie pracy Argo i zwizualizować jego postęp. Jeśli z jakiegoś powodu jakiś krok się nie powiedzie, Argo może ponowić krok i dostarczyć nam logi, aby lepiej zdiagnozować problem.
Czego się nauczyliśmy
Kiedy zastanawialiśmy się nad procesem tworzenia Bertie Bulletin, zdaliśmy sobie sprawę, że rady z poprzedniego artykułu Jackie Ha nadal mają zastosowanie na każdym poziomie.
Renderowania 3D znaku zapytania na dymku. Burza mózgów, koncepcja biznesowa.
getty
Bądź dociekliwy: Na początku przeprowadziliśmy wiele rozmów z właścicielami produktów, aby dopracować szczegóły. Jak wyglądał MVP? Jakie były konkretne wymagania na każdym etapie?
Wiedz, kiedy poprosić o pomoc: W przypadku dużego projektu, takiego jak Bertie Bulletin, było nieuniknione (jak Thanos), że wpadniemy w nieznane (jak Elsa). Aby przezwyciężyć te przeszkody, w trakcie całego procesu konsultowaliśmy się z różnymi osobami, aby uzyskać wskazówki dotyczące najlepszego sposobu wykonania.
Dowiedz się, jak debugować: Ponieważ Bertie Bulletin miał tak wiele ruchomych części, jeśli coś poszło nie tak, musieliśmy być w stanie dokładnie określić, skąd wziął się błąd. Oznaczało to, że musieliśmy wymyślić, jak skutecznie i wydajnie debugować.
Sprawdź swoje PR: Niezależnie od tego, czy jesteś w widoku zunifikowanym zespołu, czy w widoku podziału zespołu, dobrą praktyką jest przejrzenie własnego PR na Github przed wysłaniem go do innych. Porównanie wizualne może pomóc w wychwyceniu podstępnego „print()” lub błędów składniowych, które można łatwo przeoczyć w edytorze kodu.
Przeniesienie tego projektu od prototypu do produkcji było żmudnym wysiłkiem, który wymagał współpracy wielu zespołów. Po wielu godzinach programowania w parach, współdzielenia ekranu i sesji debugowania, możliwość zobaczenia na żywo efektu końcowego i wysłuchania pozytywnych opinii od odbiorców sprawiła, że proces się opłacił.
Source: www.forbes.com