Масштабирование контента в Coinbase PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Масштабирование контента в Coinbase


Масштабирование контента в Coinbase PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Клэй Кохут, старший инженер-программист

TLDR: За последний год Coinbase инвестировала в инструменты для устранения статического контента в нашем веб-интерфейсе. Это история о том, как мы это сделали и почему это важно.

Coinbase Learn(ред.)

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

Масштабирование контента в Coinbase PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

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

Варианты размещения контента, подобного блогам, такие как Medium, обеспечивали слишком мало гибкости.

Фреймворк WordPress был слишком самоуверенный и напрямую привязан к пользовательскому интерфейсу.

В итоге мы остановили свой выбор на безголовый CMS, конкретно содержательной. Контентный – это платформа контента это обеспечивает «безголовый» подход к контенту, а также возможность расширения серверной части для интеграции с нашими предпочтительными инструментами и способами работы. «Безголовость» означает, что CMS не зависит от пользовательского интерфейса — она разделяет содержание Исходя из опыта, мы просто предоставляем структурированный JSON во внешний интерфейс, что позволяет нам полностью контролировать работу внешнего интерфейса.

Интеграция с Contentful заключалась просто в создании структур данных, представляющих различные типы контента (через Contentful UI), а затем сопоставлении этих структур данных с компонентами React (которые фактически обрабатывали рендеринг данных).

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

Надевание летного костюма

С Coinbase Learn за плечами и Coinbase Прямое публичное предложение (DPO) на горизонте стартовала инициатива по сплочению (считавшаяся Проект «Летательный костюм»). Проект Flightsuit стремился обеспечить единый внешний вид всех отключенных ресурсов Coinbase, а также обеспечить соблюдение стандартов дизайна на вновь создаваемых целевых страницах.

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

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

Использование интеграции Contentful, изначально настроенной для Coinbase Узнать, мы начали создавать набор «блоков», которые можно было бы использовать для стандартизации макетов целевых страниц (в соответствии с нашими новыми рекомендациями по бренду).

«Блоки», также известные как типы контента, представляют собой компоненты высокого уровня, которые объединяются для создания целевых страниц. Например, блок «Герой» может содержать «Заголовок», «Подзаголовок» и «Кнопку CTA» в CMS, что соответствует компоненту React во внешнем интерфейсе.

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

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

Когда система блоков была создана, миграция страниц стала относительно простой задачей: перетаскивание различных блоков через Contentful UI и перенаправление старых маршрутов страниц на новую альтернативу, управляемую CMS.

1, 2, Автоматизировать

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

  1. Создание CMS Простой в использовании для нетехнических членов команды чрезвычайно важно. При первом подходе к целевым страницам CMS мы создали некоторые структуры данных с расширенными функциями (такими как создание общего макета), которые в основном были понятны и пригодны для обслуживания только инженерами (таким образом, разрушая основную ценность CMS). Мы противодействовали этому, отдавая предпочтение опыту редактора превыше всего. Автоматизируя расширенные функции Contentful там, где это возможно (например, автоматически определяя, какой макет лучше всего подходит для набора контента), мы могли бы позволить редакторам сосредоточиться на редактирование , а не building.
  2. Благодаря интеграции с Contentful (третьей стороной) наши интерфейсы стали зависеть от времени безотказной работы Contentful. Контентный имеет очень последовательный послужной список почти 100% безотказной работы, но эта уверенность была поставлена ​​под сомнение, когда в Contentful произошли два сбоя из-за некоторых широко распространенные проблемы с DNS. (Чтобы быть справедливым по отношению к Contentful, эти сбои также наблюдались на некоторых крупнейших веб-сайтах мира и были единственными наблюдаемыми нами случаями, когда Contentful был недоступен). Чтобы обеспечить доступность наших страниц с более высокой видимостью (например, нашей домашней страницы), мы определили, что лучшим путем вперед будет внедрение обратного прокси-сервера API, который использует заголовок устаревшей ошибки, чтобы наша CDN могла обслуживать кэшированный контент в случае сбоя восходящего вызова. Это позволяет нам оставаться на связи, даже если CMS выйдет из строя (на X дней).
Масштабирование контента в Coinbase PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
Вверху: наша архитектура CMS до и после добавления кэшированного обратного прокси-сервера.

3. Обучение новых команд инженеров работе с CMS и ее расширению было первоочередной задачей. Моя команда стала единственным источником знаний о все более используемой системе, и ее часто привлекали для разового подключения к системе новых инженеров. Чтобы лучше распространять знания о фреймворке, мы разработали Программа послов CMS, целью которого было обучение и объединение экспертов по CMS во всей компании. Программа начинается с 1.5-часового структурированного семинара, на котором участники изучают все тонкости интеграции с CMS. Хотя эта программа в настоящее время реализуется в режиме реального времени, а вводные сеансы проводятся по мере необходимости, в настоящее время мы находимся в процессе преобразования ее в курс самообслуживания с помощью внутреннего инструмента обучения.

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

Ключевые результаты

2021 год подходит к концу, и мы с гордостью оглядываемся назад и видим, как далеко мы продвинулись за прошедший год. Вот прогресс, который мы увидели после успешного внедрения нашей CMS в масштабах всей компании:

  • Время создания целевой страницы сократилось в среднем с 2 недель до меньше одного дня.
  • Время обработки изменений контента сокращено из часового процесса изменения/пересмотра/объединения/развертывания кода до менее 10 минути без участия инженеров.
  • К концу года будет покрыто 90% всех поверхностей верхнего уровня. Это значит, что почти все поверхности продукта верхнего уровня с выходом из системы на Coinbase будет работать через Contentful к концу года.

Такой рост эффективности был достигнут во многом благодаря инвестициям нашего руководства в инфраструктуру и инструменты для разработчиков. Coinbase действительно заботится о техническом совершенстве, опыте разработчиков и автоматизации рутинных процессов.

Мы также не смогли бы достичь этого без упорного труда некоторых поразительно вдумчивых и талантливых людей (с каждым из которых я невероятно горжусь сотрудничеством):

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

Мы все рады вступить в 2022 год с блестящим унифицированным интерфейсом и минимальным количеством разовых запросов на изменение контента на горизонте. Если вы заинтересованы в присоединении к Coinbase, посетите нашу страницу «Карьера» здесь. Вот и счастливый Новый год!

Масштабирование контента в Coinbase PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.


Масштабирование контента в Coinbase Был первоначально опубликован в Блог Coinbase На Среднем, где люди продолжают разговор, выделяя и реагируя на эту историю.

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

Отметка времени:

Больше от Coinbase