Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Skalowanie treści w Coinbase


Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Autor: Clay Kohut, starszy inżynier oprogramowania

TLDR: W ciągu ostatniego roku Coinbase zainwestował w narzędzia eliminujące statyczną zawartość w naszym interfejsie internetowym. Oto historia tego, jak tego zrobiliśmy i dlaczego jest to ważne.

Coinbase Dowiedz się (ed)

Portal edukacyjny Coinbase, Coinbase Dowiedz się, wydany pod koniec 2020 r. Learn zawiera setki przewodników dla początkujących, samouczków praktycznych i aktualizacji rynkowych i jest prowadzony przez oddany zespół redaktorów treści.

Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Nasi inżynierowie zbadali różne opcje zasilania Learn. W idealnym przypadku potrzebowaliśmy rozwiązania, które pozwoliłoby nam bezproblemowo zintegrować treści z doświadczeniem wylogowania się z Coinbase.

Opcje hostowania treści przypominających blogi, takie jak Medium, zapewniały zbyt małą elastyczność.

Framework WordPress też był uparty i bezpośrednio powiązany z interfejsem użytkownika.

Ostatecznie zdecydowaliśmy się na tzw bezgłowy CMS, swoiście Zadowolony. Treść jest platforma treści który zapewnia bezkompromisowe podejście do treści, a także rozszerzalność zaplecza w celu integracji z naszymi preferowanymi narzędziami i sposobami pracy. Bycie „bezgłowym” oznacza, że ​​CMS jest niezależny od interfejsu użytkownika — oddziela zawartość z doświadczenia, po prostu dostarczając ustrukturyzowany JSON do frontendu, co pozwala nam całkowicie kontrolować doświadczenie frontendu.

Integracja z Contentful polegała po prostu na utworzeniu struktur danych reprezentujących różne typy treści (za pośrednictwem interfejsu użytkownika Contentful), a następnie zmapowaniu tych struktur danych na komponenty React (które zajmowały się faktycznym renderowaniem danych)

Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
Nasza początkowa architektura CMS

Zakładanie kombinezonu

Z Coinbase Dowiedz się za naszym pasem i Coinbase Bezpośrednia oferta publiczna (DPO) na horyzoncie rozpoczęła się inicjatywa na rzecz spójności (uznawana za Projekt Kombinezon Lotniczy). Projekt Flightsuit miał na celu zapewnienie spójnego wyglądu i sposobu działania we wszystkich witrynach zalogowanych do Coinbase, a także egzekwowanie standardów projektowych na nowo tworzonych stronach docelowych.

Badając stan stron docelowych produktów Coinbase, odkryliśmy 40 powierzchni produktów rozmieszczonych w 15 różnych repozytoriach/aplikacjach frontendowych. Różne frontendy zostały zbudowane przy użyciu różnych technologii — od React with Typescript (nasz obecny standard), przez starsze szablony Ruby on Rails, po statyczny HTML.

Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
Rzut oka na nasz dokument przeglądowy „Architektura strony”.

Wykorzystanie pierwotnie skonfigurowanej integracji treści Coinbase Dowiedz się, zaczęliśmy tworzyć zestaw „bloków”, które można wykorzystać do ujednolicenia układów stron docelowych (dostosowując się do naszych nowych wytycznych dotyczących marki).

„Bloki”, znane również jako typy treści, to komponenty wysokiego poziomu, które łączą się, tworząc strony docelowe. Na przykład blok „Hero” może zawierać „Tytuł”, „Podtytuł” ​​i „Przycisk CTA” w systemie CMS, co odpowiada komponentowi React w interfejsie użytkownika.

Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
Struktura danych „Hero Block” (po lewej) i odpowiadający jej komponent React (po prawej)

Tworząc przemyślany „system oparty na blokach” (i przerabiając nasze istniejące strony docelowe, aby korzystały z tego systemu), byliśmy w stanie sprawnie przenieść prawie wszystkie strony docelowe do jednej aplikacji frontendowej, obsługiwanej przez React i zintegrowanej z Contentful.

Po wprowadzeniu systemu bloków migracja stron była stosunkowo prostym zadaniem polegającym na przeciąganiu/upuszczaniu różnych bloków za pośrednictwem interfejsu użytkownika Contentful i przekierowywaniu starych tras stron do nowej alternatywy opartej na systemie CMS.

1, 2, automatyzuj

Po zakończeniu projektu Flightsuit nasz zespół skupił się na poprawie użyteczności i odporności CMS. Kilka lekcji:

  1. Tworzenie CMS-a łatwy w użyciu dla nietechnicznych członków zespołu jest niezwykle ważne. Podczas naszego pierwszego przejścia na strony docelowe CMS stworzyliśmy pewne struktury danych z zaawansowanymi funkcjami (takimi jak tworzenie ogólnego układu), które były w większości zrozumiałe i możliwe do wykorzystania tylko przez inżynierów (w ten sposób pokonując główną wartość CMS). Przeciwdziałamy temu, faworyzując przede wszystkim doświadczenie redaktora. Automatyzując zaawansowane funkcje Treści, tam gdzie to możliwe (takie jak automatyczne określanie, który układ najlepiej pasuje do zestawu treści), moglibyśmy umożliwić redaktorom skupienie się na redagowanie zamiast budynek.
  2. Dzięki integracji z Contentful (stroną trzecią) nasze frontendy stały się zależne od dostępności Contentful. Treść ma bardzo spójne osiągnięcia w postaci niemal 100% czasu sprawności, ale ta niezawodność została poddana w wątpliwość, gdy w firmie Contentful wystąpiły dwie awarie z powodu pewnych powszechne problemy z DNS. (Szczerze mówiąc, te awarie wystąpiły także w niektórych największych witrynach internetowych na świecie i były to jedyne, jakie zaobserwowaliśmy, gdy zawartość była niedostępna). Aby zapewnić dostępność naszych stron o większej widoczności (takich jak nasza strona główna), uznaliśmy, że najlepszym rozwiązaniem będzie wprowadzenie odwrotnego proxy API, które wykorzystuje nagłówek nieaktualny, jeśli-błąd, aby nasza sieć CDN mogła udostępniać zawartość z pamięci podręcznej w przypadku niepowodzenia wywołania nadrzędnego. Dzięki temu możemy pozostać na nogach nawet w przypadku awarii CMS (przez X dni).
Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
Powyżej: Nasza architektura CMS przed i po dodaniu buforowanego zwrotnego proxy

3. Głównym celem było przeszkolenie nowych zespołów inżynierskich w zakresie pracy z CMS i jego rozbudowy. Mój zespół stał się jedynym źródłem wiedzy na temat coraz częściej używanego systemu i często był zatrudniany do jednorazowego wdrażania nowych inżynierów do systemu. Aby lepiej szerzyć wiedzę o frameworku, opracowaliśmy platformę Program Ambasadorów CMS, którego celem było przeszkolenie i zgromadzenie ekspertów merytorycznych dla CMS w całej firmie. Program rozpoczyna się 1.5-godzinnym warsztatem, podczas którego uczestnicy poznają tajniki integracji z CMS. Chociaż program ten jest obecnie realizowany w czasie rzeczywistym, a sesje wprowadzające odbywają się w razie potrzeby, obecnie jesteśmy w trakcie przekształcania go w kurs samoobsługowy za pośrednictwem wewnętrznego narzędzia szkoleniowego.

Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
Migawka z naszych wewnętrznych warsztatów Ambasadora CMS

Kluczowe wyniki

Rok 2021 dobiega końca i z dumą spoglądamy wstecz na to, jak daleko zaszliśmy w ciągu ostatniego roku. Oto postęp, jaki zaobserwowaliśmy po pomyślnym wdrożeniu naszego systemu CMS w całej firmie:

  • Czas tworzenia strony docelowej skrócony ze średnio 2 tygodni do mniej niż jeden dzień.
  • Skrócony czas realizacji zmiany treści z godzinnego procesu zmiany/przeglądu/łączenia/wdrożenia kodu do poniżej 10 minut, bez zaangażowania inżynierów.
  • Do końca roku pokryte zostanie 90% wszystkich powierzchni najwyższego poziomu. To znaczy że prawie wszystkie wylogowane powierzchnie produktów najwyższego poziomu na Coinbase będzie obsługiwana przez Contentful do końca roku.

Ten wzrost wydajności został osiągnięty głównie dzięki inwestycjom naszego kierownictwa w infrastrukturę i narzędzia programistyczne. Coinbase naprawdę dba o doskonałość inżynieryjną, doświadczenie programistów i automatyzację rutynowych procesów.

Nie osiągnęlibyśmy tego również bez ciężkiej pracy kilku zdumiewająco przemyślanych, utalentowanych osób (z których każdą jestem niezwykle dumna, że ​​mogę pracować):

  • Leon Haggarty, Askat Bakyev, João Melo, Stephen Lee, Wilhelm Willie, Bryant Gallardo, Guiherme Luersen, Raymond Sohn, Leonardo Zizzamia, Christopher Nascone (ang.)
  • Bobby Rasmusson, Russ Ballard (produkt)
  • Ananth Chandrasekharan, Goutham Buchi, Manish Gupta (wiceprezes ds. inż.)

Wszyscy nie możemy się doczekać wejścia w rok 2022 z błyszczącym, ujednoliconym frontendem i minimalnymi jednorazowymi prośbami o zmianę treści na horyzoncie. Jeśli jesteś zainteresowany dołączeniem do Coinbase, sprawdź naszą stronę Kariera tutaj. Życzę szczęśliwego nowego roku!

Skalowanie treści w Coinbase PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.


Skalowanie treści w Coinbase został pierwotnie opublikowany w Blog Coinbase na Medium, gdzie ludzie kontynuują rozmowę, podkreślając tę ​​historię i odpowiadając na nią.

Source: https://blog.coinbase.com/scaling-content-at-coinbase-df75ff3208d4?source=rss—-c114225aeaf7—4

Znak czasu:

Więcej z Coinbase