Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Масштабування вмісту на Coinbase


Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Клей Когут, старший інженер програмного забезпечення

TLDR: Протягом минулого року Coinbase інвестувала в інструменти для усунення статичного вмісту в нашому веб-інтерфейсі. Це історія про те, як ми це зробили і чому це важливо.

Coinbase Learn(ed)

Освітній портал Coinbase, Дізнайтеся про Coinbase, запущений наприкінці 2020 року. Learn містить сотні посібників для початківців, практичних посібників і оновлень ринку та підтримується спеціальною командою редакторів контенту.

Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Наші інженери досліджували різні варіанти живлення Learn. В ідеалі ми хотіли рішення, яке дозволило б нам легко інтегрувати вміст у роботу Coinbase, коли ви вийшли з системи.

Розміщені варіанти вмісту, подібного до блогу, наприклад Medium, надають занадто мало гнучкості.

Фреймворк WordPress теж був самовпевнений і безпосередньо пов’язані з інтерфейсом користувача.

Зрештою ми вибрали a безголовий CMS, конкретно Зміст. Зміст – це a контент платформа який забезпечує ненадійний підхід до вмісту, а також розширюваність серверної частини для інтеграції з нашими улюбленими інструментами та способами роботи. Будучи «безголовим» означає, що CMS не залежить від інтерфейсу користувача — вона розділяє зміст від досвіду, просто надаючи структурований JSON інтерфейсу, що дозволяє нам повністю контролювати роботу інтерфейсу.

Інтеграція з Contentful полягала лише у створенні структур даних, що представляють різні типи вмісту (через інтерфейс користувача Contentful), а потім зіставлення цих структур даних із компонентами React (які фактично обробляли рендеринг даних)

Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
Наша початкова архітектура CMS

Одягання льотного костюма

З Coinbase Навчайтеся під нашим поясом і Coinbase Пряма публічна пропозиція (DPO) на горизонті стартувала ініціатива згуртування (вважається Проект Flightsuit). Проект Flightsuit мав на меті створити єдиний вигляд і відчуття для ресурсів Coinbase, які вийшли з системи, а також застосувати стандарти дизайну для новостворених цільових сторінок.

Досліджуючи стан цільових сторінок продуктів Coinbase, ми виявили 40 поверхонь продуктів, розповсюджених у 15 різних сховищах/інтерфейсних програмах. Різноманітні інтерфейси створено з використанням різноманітних технологій — усе, від React з Typescript (наш поточний стандарт) до застарілих шаблонів Ruby on Rails і до статичного HTML.

Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
Короткий огляд нашого документу з оглядом «Архітектура сторінки».

Використання початково налаштованої інтеграції вмісту Дізнайтеся про Coinbase, ми почали створювати набір «блоків», які можна було б використовувати для стандартизації макетів цільових сторінок (одночасно відповідаючи нашим новим правилам бренду).

«Блоки», також відомі як типи вмісту, є компонентами високого рівня, які об’єднуються для створення цільових сторінок. Наприклад, блок «Hero» може містити «Title», «Subtitle» і «CTA Button» у CMS, що відповідає компоненту React у інтерфейсі.

Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
Структура даних «Hero Block» (ліворуч) і відповідний компонент React (праворуч)

Створивши продуману «систему на основі блоків» (і переробивши наші існуючі цільові сторінки для використання цієї системи), ми змогли ефективно перенести майже всі цільові сторінки в єдину інтерфейсну програму на базі React та інтегровану з Contentful.

Після того, як система блоків була встановлена, міграція сторінок була відносно простим завданням: перетягуванням/скиданням різних блоків через Contentful UI та перенаправленням маршрутів старих сторінок до нової альтернативи, керованої CMS.

1, 2, Автоматизація

Після проекту Flightsuit наша команда зосередилася на покращенні зручності використання та відмовостійкості CMS. Кілька отриманих уроків:

  1. Створення CMS легкий у використанні для нетехнічних членів команди є надзвичайно важливим. Під час нашого першого переходу на цільові сторінки CMS ми створили деякі структури даних із розширеними функціями (такими як створення загального макета), які здебільшого зрозуміли та використовували лише інженери (таким чином перевершивши основну цінність CMS). Ми протистояли цьому, віддаючи перевагу досвіду редактора понад усе. Автоматизуючи розширені функції в Contentful, де це можливо (наприклад, автоматичне визначення макета, який найкраще підходить для набору вмісту), ми могли б дозволити редакторам зосередитися на редагування а не Будівля.
  2. Завдяки інтеграції з Contentful (третя сторона) наші інтерфейси стали залежати від часу роботи Contentful. Зміст має a дуже послідовний послужний список майже 100% безвідмовної роботи, але ця надійність була поставлена ​​під сумнів, коли Contentful зазнав двох збоїв через деякі поширені проблеми з DNS. (Чесно кажучи щодо Contentful, ці збої також зазнали деякі з найбільших веб-сайтів світу, і це були єдині випадки, коли Contentful був недоступний). Щоб забезпечити доступність наших сторінок з більшою видимістю (таких як наша домашня сторінка), ми визначили, що найкращим шляхом буде запровадження зворотного проксі API, який використовує заголовок stale-if-error, щоб наш CDN обслуговував кешований вміст, якщо вихідний виклик не вдається. Це дає нам змогу не спати, навіть якщо CMS вийде з ладу (протягом X днів).
Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
Вище: наша архітектура CMS до та після додавання кешованого зворотного проксі

3. Навчання нових команд інженерів роботі з CMS та її розширенню було основною метою. Моя команда стала єдиним джерелом знань про систему, яка використовується дедалі частіше, і часто її одноразово залучали нових інженерів до системи. Щоб краще поширити знання про структуру, ми розробили Програма CMS Ambassador, який мав на меті навчити та об’єднати експертів із тематики CMS у всій компанії. Програма починається з 1.5-годинного структурованого семінару, де учасники вивчають тонкощі інтеграції з CMS. Хоча ця програма наразі працює в режимі реального часу, а навчальні сеанси проводяться за потреби, зараз ми перебуваємо в процесі перетворення її на курс самообслуговування за допомогою внутрішнього навчального інструменту.

Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
Знімок нашого внутрішнього семінару CMS Ambassador

Ключові результати

Наближається до кінця 2021 рік, і ми з гордістю оглядаємося на те, як далеко ми просунулися за минулий рік. Ось прогрес, який ми побачили після успішного впровадження нашої корпоративної CMS:

  • Час створення цільової сторінки зменшено в середньому з 2 тижнів до менше одного дня.
  • Зменшення часу виконання зміни вмісту від годинного процесу зміни/перегляду/злиття/розгортання коду до 10 хв та без участі інженерів.
  • До кінця року буде покрито 90% усіх поверхонь верхнього рівня. Це означає що майже всі поверхні продукту верхнього рівня, які вийшли з системи на Coinbase до кінця року працюватиме через Contentful.

Такого підвищення ефективності було досягнуто в основному завдяки інвестиціям нашого керівництва в інфраструктуру та інструменти для розробників. Coinbase справді дбає про досконалість інженерів, досвід розробників і автоматизацію рутинних процесів.

Ми також не змогли б досягти цього без наполегливої ​​праці деяких надзвичайно вдумливих, талановитих людей (з кожним із яких я неймовірно пишаюся працею):

  • Леон Хаггарті, Аскат Бакієв, Жоао Мело, Стівен Лі, Вільгельм Віллі, Брайант Галлардо, Гігерме Луерсен, Раймонд Сон, Леонардо Зіззамія, Крістофер Насконе (англ.)
  • Боббі Расмуссон, Расс Баллард (продукт)
  • Анант Чандрасекаран, Гутем Бучі, Маніш Гупта (виконавчий віце-президент з англійської мови)

Ми всі раді вступити в 2022 рік із блискучим уніфікованим зовнішнім інтерфейсом і мінімальними одноразовими запитами на зміну вмісту на горизонті. Якщо ви зацікавлені в приєднанні до Coinbase, перегляньте нашу сторінку кар'єри тут. З Новим роком!

Масштабування вмісту в Coinbase PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.


Масштабування вмісту на Coinbase був спочатку опублікований в Блог Coinbase на Medium, де люди продовжують розмову, висвітлюючи та відповідаючи на цю історію.

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

Часова мітка:

Більше від Coinbase