Клэй Кохут, старший инженер-программист
TLDR: За последний год Coinbase инвестировала в инструменты для устранения статического контента в нашем веб-интерфейсе. Это история о том, как мы это сделали и почему это важно.
Coinbase Learn(ред.)
Образовательный портал Coinbase, Coinbase Узнать, запущенный в конце 2020 года. Learn содержит сотни руководств для начинающих, практических руководств и обновлений рынка и поддерживается специальной командой редакторов контента.
Наши инженеры изучили различные варианты использования Learn. В идеале нам нужно было решение, которое позволило бы нам легко интегрировать контент в систему выхода из системы Coinbase.
Варианты размещения контента, подобного блогам, такие как Medium, обеспечивали слишком мало гибкости.
Фреймворк WordPress был слишком самоуверенный и напрямую привязан к пользовательскому интерфейсу.
В итоге мы остановили свой выбор на безголовый CMS, конкретно содержательной. Контентный – это платформа контента это обеспечивает «безголовый» подход к контенту, а также возможность расширения серверной части для интеграции с нашими предпочтительными инструментами и способами работы. «Безголовость» означает, что CMS не зависит от пользовательского интерфейса — она разделяет содержание Исходя из опыта, мы просто предоставляем структурированный JSON во внешний интерфейс, что позволяет нам полностью контролировать работу внешнего интерфейса.
Интеграция с Contentful заключалась просто в создании структур данных, представляющих различные типы контента (через Contentful UI), а затем сопоставлении этих структур данных с компонентами React (которые фактически обрабатывали рендеринг данных).
Надевание летного костюма
С Coinbase Learn за плечами и Coinbase Прямое публичное предложение (DPO) на горизонте стартовала инициатива по сплочению (считавшаяся Проект «Летательный костюм»). Проект Flightsuit стремился обеспечить единый внешний вид всех отключенных ресурсов Coinbase, а также обеспечить соблюдение стандартов дизайна на вновь создаваемых целевых страницах.
Исследуя состояние целевых страниц продуктов Coinbase, мы обнаружили 40 поверхностей продуктов, разбросанных по 15 различным репозиториям и внешним приложениям. Различные интерфейсы были созданы с использованием самых разных технологий — от React с Typescript (наш текущий стандарт) до устаревших шаблонов Ruby on Rails и статического HTML.
Использование интеграции Contentful, изначально настроенной для Coinbase Узнать, мы начали создавать набор «блоков», которые можно было бы использовать для стандартизации макетов целевых страниц (в соответствии с нашими новыми рекомендациями по бренду).
«Блоки», также известные как типы контента, представляют собой компоненты высокого уровня, которые объединяются для создания целевых страниц. Например, блок «Герой» может содержать «Заголовок», «Подзаголовок» и «Кнопку CTA» в CMS, что соответствует компоненту React во внешнем интерфейсе.
Создав продуманную «блочную систему» (и переработав существующие целевые страницы для использования этой системы), мы смогли эффективно перенести почти все целевые страницы в одно интерфейсное приложение, работающее на React и интегрированное с Contentful.
Когда система блоков была создана, миграция страниц стала относительно простой задачей: перетаскивание различных блоков через Contentful UI и перенаправление старых маршрутов страниц на новую альтернативу, управляемую CMS.
1, 2, Автоматизировать
После завершения проекта Flightsuit наша команда сосредоточилась на повышении удобства использования и отказоустойчивости CMS. Несколько извлеченных уроков:
- Создание CMS Простой в использовании для нетехнических членов команды чрезвычайно важно. При первом подходе к целевым страницам CMS мы создали некоторые структуры данных с расширенными функциями (такими как создание общего макета), которые в основном были понятны и пригодны для обслуживания только инженерами (таким образом, разрушая основную ценность CMS). Мы противодействовали этому, отдавая предпочтение опыту редактора превыше всего. Автоматизируя расширенные функции Contentful там, где это возможно (например, автоматически определяя, какой макет лучше всего подходит для набора контента), мы могли бы позволить редакторам сосредоточиться на редактирование , а не building.
- Благодаря интеграции с Contentful (третьей стороной) наши интерфейсы стали зависеть от времени безотказной работы Contentful. Контентный имеет очень последовательный послужной список почти 100% безотказной работы, но эта уверенность была поставлена под сомнение, когда в Contentful произошли два сбоя из-за некоторых широко распространенные проблемы с DNS. (Чтобы быть справедливым по отношению к Contentful, эти сбои также наблюдались на некоторых крупнейших веб-сайтах мира и были единственными наблюдаемыми нами случаями, когда Contentful был недоступен). Чтобы обеспечить доступность наших страниц с более высокой видимостью (например, нашей домашней страницы), мы определили, что лучшим путем вперед будет внедрение обратного прокси-сервера API, который использует заголовок устаревшей ошибки, чтобы наша CDN могла обслуживать кэшированный контент в случае сбоя восходящего вызова. Это позволяет нам оставаться на связи, даже если CMS выйдет из строя (на X дней).
3. Обучение новых команд инженеров работе с CMS и ее расширению было первоочередной задачей. Моя команда стала единственным источником знаний о все более используемой системе, и ее часто привлекали для разового подключения к системе новых инженеров. Чтобы лучше распространять знания о фреймворке, мы разработали Программа послов CMS, целью которого было обучение и объединение экспертов по CMS во всей компании. Программа начинается с 1.5-часового структурированного семинара, на котором участники изучают все тонкости интеграции с CMS. Хотя эта программа в настоящее время реализуется в режиме реального времени, а вводные сеансы проводятся по мере необходимости, в настоящее время мы находимся в процессе преобразования ее в курс самообслуживания с помощью внутреннего инструмента обучения.
Ключевые результаты
2021 год подходит к концу, и мы с гордостью оглядываемся назад и видим, как далеко мы продвинулись за прошедший год. Вот прогресс, который мы увидели после успешного внедрения нашей CMS в масштабах всей компании:
- Время создания целевой страницы сократилось в среднем с 2 недель до меньше одного дня.
- Время обработки изменений контента сокращено из часового процесса изменения/пересмотра/объединения/развертывания кода до менее 10 минути без участия инженеров.
- К концу года будет покрыто 90% всех поверхностей верхнего уровня. Это значит, что почти все поверхности продукта верхнего уровня с выходом из системы на Coinbase будет работать через Contentful к концу года.
Такой рост эффективности был достигнут во многом благодаря инвестициям нашего руководства в инфраструктуру и инструменты для разработчиков. Coinbase действительно заботится о техническом совершенстве, опыте разработчиков и автоматизации рутинных процессов.
Мы также не смогли бы достичь этого без упорного труда некоторых поразительно вдумчивых и талантливых людей (с каждым из которых я невероятно горжусь сотрудничеством):
- Леон Хаггарти, Аскат Бакьев, Жоау Мелу, Стивен Ли, Вильгельм Вилли, Брайант Галлардо, Гиэрме Люерсен, Раймонд Зон, Леонардо Диззамиа, Кристофер Насконе (Анг)
- Бобби Расмуссон, Расс Баллард (Продукт)
- Анант Чандрасекхаран, Гаутам Бучи, Маниш Гупта (исполнительный вице-президент по английскому языку)
Мы все рады вступить в 2022 год с блестящим унифицированным интерфейсом и минимальным количеством разовых запросов на изменение контента на горизонте. Если вы заинтересованы в присоединении к Coinbase, посетите нашу страницу «Карьера» здесь. Вот и счастливый Новый год!
Масштабирование контента в Coinbase Был первоначально опубликован в Блог Coinbase На Среднем, где люди продолжают разговор, выделяя и реагируя на эту историю.
- "
- 2020
- Все
- API
- Применение
- Приложения
- архитектура
- около
- свободных мест
- ЛУЧШЕЕ
- призывают
- изменение
- CNBC
- код
- coinbase
- Компания
- компонент
- содержание
- Разговор
- Создающий
- Текущий
- данным
- Проект
- Застройщик
- DID
- DNS
- управляемый
- редактор
- образовательных
- затрат
- Проект и
- Инженеры
- опыт
- эксперты
- ярмарка
- Особенности
- First
- Трансформируемость
- Фокус
- вперед
- Рамки
- методические рекомендации
- Гиды
- здесь
- домашняя страница
- Как
- HTTPS
- Инициатива
- интеграции.
- инвестиций
- IT
- знания
- УЧИТЬСЯ
- узнали
- уровень
- рынок
- средний
- Участники
- предлагающий
- Вводный
- Опции
- заказ
- Люди
- Портал
- Продукт
- FitPartner™
- полномочие
- что такое варган?
- реагировать
- реального времени
- опора
- обратный
- масштабирование
- набор
- просто
- Снимок
- Software
- распространение
- стандартов
- Область
- оставаться
- система
- технологии
- время
- инструменты
- топ
- трек
- Обучение
- учебные пособия
- ui
- Updates
- us
- юзабилити
- ценностное
- видимость
- Web
- веб-сайты
- в
- WordPress
- Работа
- мире
- X
- год