Не теряйте голову: оценка Безголового

Опубликовано: 2022-03-10
Краткий обзор ↬ Взрыв популярности Jamstack привел к появлению новых опций для управления вашим контентом. В последнее время безголовый стал довольно горячей темой в кругах разработчиков, но с чего начать, если вы приступили к новому проекту и еще не решили, где хранить и организовывать свой контент?

Со многими вариантами приходит много решений, и легко утонуть во всех многочисленных и разнообразных заявленных преимуществах различных систем. Итак, как вы подходите к оценке этих вариантов? Две недели назад Аарон Ханс пролил свет на варианты использования безголового и на то, чем это полезно здесь, в Smashing Magazine. Сегодня я дам вам небольшое введение в ландшафт CMS, а также несколько вопросов, которые помогут вам принять решение.

Обезглавленный? Какой?

Безголовое управление контентом — это практика отделения вашей системы управления контентом (CMS) от внешнего интерфейса. В отличие от традиционных (или «монолитных») систем, CMS не несет прямой ответственности за работу веб-интерфейса. Вместо этого контент передается на внешний интерфейс из удаленной системы через API, и внешний интерфейс использует эти данные для отображения своих страниц. Это может произойти либо во время выполнения (когда пользователь попадает на ваш веб-сайт), либо во время сборки (контент предварительно визуализируется и генерируется заранее), но важной концепцией здесь является разделение между уровнями контента и представления.

Если вы планируете создать сайт с помощью Jamstack, вы в конечном итоге пойдете в этом направлении по умолчанию, но этот подход также подходит для других типов проектов, использующих серверные языки, такие как PHP, . Net или Руби.

Но почему это вообще вещь?

Изначально Headless появился как способ управления контентом для Jamstack (до того, как Jamstack получил свое шикарное название), но этот подход привлек поклонников по многим причинам. Безголовое управление контентом позволяет нам развертывать контент на разных платформах, поэтому вы можете использовать контент со своего веб-сайта, например, в собственном мобильном приложении.

Headless также позволяет нам исправлять недостатки в других системах. Например, Shopify. Несмотря на то, что он отлично справляется со своими задачами, это не самая гибкая система, когда дело доходит до управления контентом для вашего интернет-магазина. Используя безголовую CMS, мы можем удаленно управлять дополнительным контентом для сайта Shopify и обеспечить больше возможностей и гибкости, чем по умолчанию.

Недавно я работал над проектом, который занимался именно этим — расширением контента, который предоставляет Shopify, дополнительным, более богатым контентом из безголовой CMS (мы использовали Contentful для этого конкретного проекта, но с этой работой могла справиться любая безголовая CMS). Использование безголового решения для управления контентом позволило нам создавать собственные структуры данных , которые мы могли адаптировать к нашим потребностям. Например, клиент хотел выделить ингредиенты, которые он использовал при изготовлении своей продукции, а Shopify на самом деле не дает хорошего способа справиться с этим. Мы создали новый тип контента в Shopify и разрешили добавлять его на пользовательскую страницу продукта, полную других типов контента, которые мы создали.

Контент Shopify был загружен и синхронизирован с Contentful, и это стало основным драйвером данных для сайта, а API-интерфейсы Shopify действительно участвовали только для проверки уровня запасов и создания корзины. Возможность добавлять такие подробные данные на сайт электронной коммерции на основе SaaS была невероятно мощной.

Нам удалось добиться этого результата, используя Nuxt для создания сайта, но мы могли бы также интегрировать данные из CMS непосредственно в шаблоны Shopify. Jamstack был выбран здесь как лучший подход, но безголовый достаточно гибок, чтобы его можно было использовать практически где угодно. Пока у вас есть доступ к каким-либо сценариям через JavaScript или более традиционный язык программирования, такой как PHP или .Net, вы можете интегрировать headless в свой рабочий процесс.

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

Представьте, что у вас есть продукт, о котором вы хотите рассказать на своем веб-сайте, в мобильном приложении, а также в программной рекламе. С помощью headless вы можете иметь один центральный репозиторий контента и развертывать один и тот же контент (или его аспекты) на всех этих и других платформах. При более традиционном управлении контентом вам нужно будет управлять контентом для разных платформ отдельно.

С чего вообще начать? Существует множество вариантов безголовых CMS. Headless CMS поможет вам сделать свой выбор.

Это звучит здорово! Так подходит ли мне Безголовый?

Есть множество вещей, которые следует учитывать при выборе подхода. У безголового есть свои преимущества, но есть и издержки. Вот несколько вопросов, которые следует задать себе при рассмотрении безголового подхода:

Устраивают ли вас требования к знаниям для разделения?

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

Если вы имеете дело с проектом значительного масштаба, вы, вероятно, захотите, чтобы некоторые разработчики сосредоточились на «бэкенде», а некоторые — на «интерфейсе». В безголовой земле разделение тоньше и гибче, но не полагайтесь на ложное предположение, что можно вдвое сократить штат разработчиков, просто отказавшись от головы.

Знаете ли вы общую стоимость владения?

Несмотря на то, что безголовая система часто оказывается дешевле, чем монолитная, характер большинства этих систем как SaaS может означать, что для больших, быстро меняющихся наборов данных или очень больших команд затраты могут не складываться. Всегда проверяйте, как масштабируются затраты и на чем основано это масштабирование. Некоторые поставщики масштабируются на основе объема данных , некоторые — на количестве запросов API , а некоторые — на количестве соавторов , редактирующих ваш контент. Сочетание этих факторов может существенно повлиять на то, как ваши расходы будут расти вместе с масштабом.

Вам также, вероятно, придется изучить несколько различных платформ, чтобы сформулировать представление об общей стоимости владения. Если вы не получаете поиск «из коробки», вам нужно подумать, сколько вам будет стоить добавление этой функции. Обычно вы можете предсказать, как будут масштабироваться эти расходы, и часто вы можете начать с малого, но стоит знать, во что вам могут обойтись эти вещи в долгосрочной перспективе.

Также внимательно следите за минутами сборки , если вы решите работать без головы: они могут быстро накапливаться, особенно на этапах разработки и заполнения контента. Имейте в виду, что если вы решите создать свой сайт статически, вам потребуется сборка после каждого действия публикации из CMS. С большими сайтами эти сборки могут занять некоторое время, поэтому стоит помнить, что их нужно будет контролировать. Многие популярные службы статического хостинга (такие как Netlify и Vercel) поддерживают кэширование ресурсов сборки, и в сочетании с современными фреймворками, обеспечивающими инкрементную сборку, это может помочь снизить эти растущие затраты, но вам все равно нужно следить за этим и делать все возможное. исследования, чтобы убедиться, что вас не поймают.

Достаточно ли хорошо вы объяснили это своему клиенту?

Вам может понравиться опыт работы разработчика с Jamstack и Headless, но при проведении этих оценок вы должны помнить, что клиенты — это те, кто должен использовать и жить с решениями, которые вы собрали, поэтому вам нужно постарайтесь максимально облегчить им жизнь.

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

Когда вы станете безголовым, вы будете собирать вместе отдельные инструменты, каждый из которых предназначен для выполнения одной конкретной задачи, а не иметь одну большую систему, которая может делать все эти вещи в одном месте. Это может быть довольно пугающе, если вы не сделаете это максимально простым для вашего клиента.

Учитываете ли вы дополнительное время разработки?

Вся потенциальная мощь и гибкость безголовых не даются бесплатно. Одним из недостатков того, что все делается по индивидуальному заказу, является то, что это означает, что все нужно разрабатывать с нуля . Со многими параметрами в этом пространстве не существует реальной схемы документа «по умолчанию» — на самом деле, они настроены очень преднамеренно, чтобы не иметь таких значений по умолчанию. С одной стороны, это здорово, потому что это означает, что вы получаете точно адаптированные модели документов, которые точно соответствуют вашим потребностям.

С другой стороны, это означает, что кто-то должен определить эти модели документов, а затем кто-то должен создать их для используемой вами системы. Затем, поскольку внешний интерфейс и серверная часть не связаны, кому-то обычно нужно создать механизм, позволяющий предварительно просматривать черновой контент ; многие современные фреймворки включают систему, позволяющую предварительно просматривать черновой контент, но для их работы обычно требуется дополнительная настройка, а для некоторых потребуется определенный уровень пользовательского кода. Конечно, внешний интерфейс не привязан к контенту, поэтому любое сопоставление данных с внешними компонентами также необходимо. Обычно вам придется делать по крайней мере часть из этого даже с тесно связанной CMS, но тот факт, что вам, вероятно, придется выделять время на все эти вещи, может быть дорогостоящим.

Вы/Ваш клиент довольны тем, что данные не живут в вашей собственной инфраструктуре?

Хотя многие, кто работает с безголовыми системами CMS и другими поставщиками SaaS, часто считают это положительным моментом, бывают ситуации, когда ваши данные, находящиеся за пределами вашей собственной инфраструктуры, могут быть нежелательными, например, когда речь идет о конфиденциальных продуктах или закрытых производственных данных. Безопасность для этих компаний обычно довольно хороша, но всегда есть риски.

Убедитесь, что вы взвесили относительные преимущества размещения вашего контента на анонимном сервере AWS. Мы уже видели, что даже у мощного AWS могут быть сбои, а для критически важных для бизнеса систем они могут быть чрезвычайно дорогостоящими. Разница между SaaS на AWS и использованием вашей собственной инфраструктуры заключается в том, что если у вас есть сбой или нарушение безопасности в вашей собственной инфраструктуре, это, вероятно, связано с вашим собственным продуктом или кодом, но в среде SaaS/AWS сбои скорее всего, вызваны факторами, не связанными с вашим бизнесом. Такие случаи редки, но они случаются, и важно, чтобы это учитывалось при принятии таких решений.

Ок, отлично. Итак, каковы мои варианты?

Количество безголовых и безголовых решений для управления контентом, доступных в 2021 году, ошеломляет и постоянно растет. Вместо того, чтобы пытаться охватить здесь все варианты, я хочу дать очень краткое введение в некоторые из наиболее известных вариантов. Если вы ищете более полный список, вы можете проверить Headless CMS или CMS Comparison.

CMS Comparison позволяет вам сравнивать все безголовые CMS и фильтровать их по функциям.

содержательный

Contentful — одна из самых популярных безголовых CMS, основанная в 2016 году и прошедшая несколько успешных раундов начальных инвестиций, и описывающая себя как «первую API-платформу контента для предоставления цифрового опыта».

Contentful добился больших успехов в последние годы, чтобы лучше поддерживать переведенный и транс-созданный контент, и они имеют хорошую поддержку нескольких «сред» контента, что позволяет вносить изменения из ваших производственных данных и переносить их позже.

Contentful, одна из самых популярных безголовых CMS.

Contentful имеет набор интеграций с другими приложениями SaaS, поэтому его легко интегрировать с Shopify или CommerceLayer для электронной коммерции или Cloudinary для размещения и обработки активов.

Подходит для:

Тем, кто ищет наиболее отработанное решение в безголовом пространстве.

Сториблок

Storyblok — единственный из безголовых вариантов, который фактически описывает себя как CMS, и имеет действительно хороший редактор визуального контента, который позволяет вам создавать и редактировать контент, казалось бы, на месте с изумительным интерфейсом WYSIWYG. Это одна из традиционных слабых сторон отделения CMS от веб-сайта, поэтому то, что Storyblok создает такую ​​среду редактирования, является большим шагом вперед, и команда должна гордиться тем, что продвигает рынок вперед в этом отношении.

Сториблок
Storyblok, единственный из безголовых вариантов здесь, который фактически описывает себя как CMS.

Storyblok также имеет возможность использовать свой API для создания схем контента, которые позволяют этим вещам жить как и с вашим кодом, что отлично подходит для удобства обслуживания. Разрешения на основе ролей и возможности перевода/преобразования позволяют распределенным командам с удовольствием работать над многоязычными сайтами. В целом, Storyblok кажется чрезвычайно отточенным и хорошо продуманным предложением, которое, в частности, понравится командам по контенту.

Подходит для:

Для тех, кто ищет лучшее в своем классе решение для редактирования контента WYSIWYG из безголовой CMS.

Здравомыслие

Sanity — одни из новичков в этом пространстве, но они быстро привлекают внимание. Они описывают себя как «идеальную платформу контента, которая помогает командам мечтать о большем и быстро реализовывать».

Sanity немного отличается от других вариантов, поскольку все ваши модели конфигурации и контента выполняются в виде кода, который для разработчиков является удобным местом для хранения вещей. Предоставляя почти безграничные возможности для творчества с моделями документов и пользовательскими типами полей, Sanity позволяет разработчикам создавать глубокие, богатые структуры контента для самых разных вещей, а не только для веб-контента.

Здравомыслие
С Sanity все ваши модели конфигурации и контента выполняются в виде кода. Изображение предоставлено: Jamstack Headless CMS: Sanity.

Набор для редактирования в Sanity простой и понятный, настраиваемый, с открытым исходным кодом и основан на React. Вы можете развернуть студию редактирования на любом хосте, который вам нравится, или использовать субдомен Sanity для размещения в их инфраструктуре.

Подходит для:

Тем, кому нужен абсолютный контроль практически над всеми аспектами реализации, от пользовательских структур данных до компонентов ввода.

Призматический

Prismic действительно старый персонаж в комнате безголового пространства, существовавший еще в 2013 году, но это не помешало им вводить новшества в пространство. Буквально в прошлом году они представили SliceMachine, целью которого является преодоление разрыва между фронтенд-разработчиками, создающими компоненты, и авторами контента путем создания отношения 1:1 между блоками контента (или «фрагментами») и интерфейсными компонентами, что делает создание новых страницы и разделы контента очень просты для редакторов.

Prismic создает отношение 1:1 между блоками контента (или слайсами) и внешними компонентами.

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

Подходит для:

Те, кто хочет свести к минимуму трения для редакторов контента.

Что, если я хочу чего-то более традиционного?

Вордпресс

В 2021 году Wordpress по-прежнему огромен. Несмотря на всю шумиху вокруг других платформ, WordPress по-прежнему обеспечивает около 40% Интернета, и он никуда не денется. Разработчики помогают убедиться в этом, улучшая безголовые возможности и уделяя больше внимания поддержке API. Новые инструменты редактирования также делают опыт написания в WordPress более приятным, а некоторые неотъемлемые компромиссы работы с WordPress были значительно улучшены за последние годы.

Работа с компанией, предлагающей WordPress как услугу, такой как Nestify, избавляет вас как разработчика от беспокойства и головной боли, связанной с безопасностью, но имейте в виду, что, будучи крупнейшей платформой в Интернете, WordPress по-прежнему представляет собой очень заманчивую цель для тех, кто со злыми намерениями.

Подходит для:

Те, кто хочет использовать удобную, знакомую контент-платформу, одновременно обновляя технологии.

Сайткор

Как один из гигантов управления корпоративным контентом, Sitecore, возможно, является одним из имен, которые вы меньше всего ожидаете увидеть в этом списке, но они добились огромных успехов в поддержке безголового, выпустив Sitecore JSS, чтобы позволить проектам Jamstack взаимодействовать с данными Sitecore.

Большая трудность при работе с Sitecore или другими корпоративными CMS-системами в автономном режиме всегда заключалась в настройке и запуске персонализации, но эта проблема была решена людьми из Uniform, которые фактически начали работать с Sitecore, чтобы обеспечить такую ​​функциональность. .

Sitecore — это большой зверь, и он не подойдет для многих проектов — одна только стоимость делает его недосягаемым для всех клиентов, кроме корпоративного уровня — но его стоит перечислить здесь вместе с AEM, потому что все еще есть многие люди думают, что безголовое управление контентом предназначено только для небольших веб-сайтов.

Подходит для:

Те, кто рассматривает корпоративный проект с клиентом, который не обязательно хочет полностью использовать новые технологии.

Менеджер опыта Adobe

Adobe Experience Manager (или AEM) — еще один из основных игроков на корпоративном уровне. Он огромный и очень дорогой, как и большинство его конкурентов, но Adobe — еще один поставщик, который приложил огромные усилия, чтобы сделать свое предложение более удобным для тех, кто хочет отделить свой контент от представления своего веб-сайта.

AEM теперь поддерживает несколько различных методов запроса данных со своей платформы, а Adobe теперь позиционирует AEM как «гибридную CMS», что означает, что она сочетает в себе автономную и более традиционную работу, зависящую от канала, под одной крышей. Это может быть большим преимуществом для маркетинговых команд, которым необходимо работать на разных платформах и нуждаться в тонком контроле контента между этими платформами, но тем, кто хочет использовать «одну платформу Adobe, чтобы управлять ими всеми», потребуются глубокие карманы, чтобы начать работу.

Подходит для:

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

Теперь у меня есть представление о возможных вариантах, но как я могу надеяться выбрать между ними?

Сейчас в безголовом пространстве так много вариантов, что вы легко можете оказаться в параличе выбора. Однако есть несколько вопросов, которые вы можете использовать, чтобы помочь сформировать первоначальное мнение или, по крайней мере, сократить поле:

Сколько времени вам понадобится, чтобы набрать скорость?

Различные системы имеют разные кривые обучения и разные способы поддержки разработчиков. Каждая перечисленная здесь система имеет сообщество разработчиков, построенное вокруг нее, но не все сообщества созданы равными. Предоставляет ли поставщик подробную документацию? Стартовые проекты? Все это может иметь большое влияние на время раскрутки.

Какая модель поддержки вам понадобится?

Модели поддержки обычно наиболее важны для клиентов, и вы часто обнаруживаете, что для доступа к более прямым линиям поддержки вам нужно платить за «корпоративные» пакеты, что может сделать ваши инвестиции выше, чем вы могли бы ожидать, глядя на ваше использование.

Насколько хорошо зарекомендовал себя поставщик?

Насколько хорошо зарекомендовал себя поставщик? Как они финансируются? Опять же, обычно это соображения клиента, а не разработчика, но стоит заранее сообщить клиенту, что рекомендуемый вами поставщик стабилен, существует уже X лет и что у него есть достаточная финансовая поддержка для быть уверенным, что они никуда не уйдут в ближайшее время. Последнее, с чем хочет столкнуться любой клиент, — это вынужденная переплатформенность, потому что его существующий поставщик закрывает свой продукт, в то время как клиент находится на полпути к их взаимодействию!

Каков опыт редактирования?

Опыт редактирования, вероятно, будет чрезвычайно важен для многих людей на стороне клиента любого проекта. Это люди, которые будут работать с любой CMS, которую вы выберете изо дня в день . Если CMS — это кошмар для использования, они скажут так — много. Поверьте мне, я был на многих презентациях и последующих встречах, где значительное количество времени было потрачено с клиентом, перечисляющим множество разочарований, которые у него есть с их существующей системой!

«Могут ли системы, на которые вы смотрите, обеспечить контекстное редактирование или предварительный просмотр черновиков в реальном времени?»

«Сколько усилий нужно, чтобы их настроить?»

«Насколько быстро или медленно работает сам редактор?»

«Пользователь засыпан опциями и незнакомыми кнопками или все хорошо организовано?»

Все эти вопросы влияют на общую простоту использования системы. Некоторые решения, такие как Storyblok, пошли на многое, чтобы сделать редактирование контента богатым и плавным, но обычно это не считается сильной стороной безголового ландшафта в целом, поэтому определенно стоит поместить небольшую демонстрацию в перед вашими редакторами контента и узнать, как они относятся к решениям, на которые вы обратили внимание.

Насколько легко получить ваши данные с платформы?

Я потерял счет количеству совещаний, на которых я присутствовал, и мне говорили, что нам, вероятно, придется начинать с нуля или писать собственный парсер для контента, потому что контент клиента полностью привязан к проприетарной системе управления контентом, и они не могут легко экспортировать свои данные.

Какой бы крутой ни казалась выбранная вами CMS, убедитесь, что в какой-то момент существует простой способ удалить весь ваш контент из системы. К сожалению, никакая система не вечна, и клиент в конечном итоге захочет изменить свой сайт и свою инфраструктуру вместе с ним. Все, что вы можете сделать, чтобы облегчить им жизнь в этот момент, будет огромным плюсом.

Это, как правило, проще с безголовыми CMS-решениями, потому что они поддерживают API по своей сути, но все же требуют более тщательного изучения, чтобы убедиться, что вы не будете вызывать огромную головную боль через несколько лет.

Подводя итоги

Выбор подхода и платформы для управления контентом — важный выбор в любом цифровом проекте. Безголовое управление контентом является мощным и гибким, но требует определенных затрат и подходит не для всех ситуаций.

Имейте в виду, что цена, которую вы получаете от поставщика авансом, редко является окончательной общей стоимостью решения, и убедитесь, что вы не попали в ловушку, думая, что можете сократить затраты на разработку, отказавшись от традиционной «обратной связи». -конец” разработчиков.

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

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