有了许多选择就会有许多决定,而且很容易淹没在不同系统的许多和各种声明的好处中。那么,你是如何评估这些选项的呢?两周前,Aaron Hans在Smashing杂志上阐述了无头系统的使用案例以及它的好处。今天,我将给大家介绍一下CMS的基本情况,以及一些问题,以帮助大家做出决定。
无头?什么问题?
无头内容管理是指将内容管理系统(CMS)与前端脱钩的做法。与传统(或 "单片机")系统不同,CMS不直接负责为网络前端提供动力。相反,内容是通过API从一个远程系统提供给前端的,而前端消耗这些数据来渲染其页面。这可以在运行时发生(当用户登陆你的网站时),也可以在构建时发生(内容被预先渲染并提前生成),但这里的重要概念是内容和表现层之间的分离。
如果你打算使用Jamstack创建一个网站,你最终会默认朝这个方向发展,但这种方法对其他类型的项目也同样有效,使用服务器端语言,如PHP、.Net或Ruby。
但为什么会出现这种情况呢?
Headless最初是作为一种管理Jamstack内容的方式出现的(在Jamstack获得其时髦的名字之前),但这种方法由于很多原因而获得了粉丝。无头内容管理允许我们将内容部署到不同的平台,因此你可以在原生移动应用中使用网站的内容,例如。
无头文件还允许我们修补其他系统的缺陷。例如,Shopify。虽然它的功能很强大,但在管理网店内容方面,它并不是最灵活的系统。使用无头CMS,我们可以远程管理Shopify网站的额外内容,并带来比默认情况下更多的权力和灵活性。
我最近参与的一个项目正是如此--用无头CMS提供的额外的、更丰富的内容来扩展Shopify提供的内容(我们碰巧在这个特定的项目中使用了Contentful,但任何无头CMS都可以完成这项工作)。使用无头内容管理解决方案使我们能够创建自定义的数据结构,以满足我们的需求。例如,客户希望突出他们在制作产品时使用的成分,而Shopify并没有提供一个很好的方法来管理这些成分。我们在Shopify创建了一个新的内容类型,并允许将其添加到我们创建的充满其他类型内容的自定义产品页面。
Shopify的内容被拉过并同步到Contentful,这成为网站的主要数据驱动,Shopify的API只在库存水平检查和篮子创建时才真正参与。能够将这种丰富的数据添加到基于SaaS的电子商务网站是非常强大的。
我们碰巧使用Nuxt来建立这个网站,但我们同样可以选择直接在Shopify模板中整合CMS的数据。这里选择了Jamstack作为更好的方法,但是headless足够灵活,它几乎可以在任何地方使用。只要你能通过JavaScript或更传统的后端语言(如PHP或.Net)访问某种脚本,你就能将无头系统集成到你的工作流程中。
将你的内容与你的表现层解耦,可以是非常强大的。允许你的内容插入不同的平台和表现层,有助于保持你的内容在不同的接触点上的一致性,也有助于确保你的内容不会被分散到由不同团队管理的一堆不同的系统中。
想象一下,你有一个产品,你想在你的网站、移动应用和程序性广告中谈论它。有了无头系统,你可以拥有一个中央内容库,并将相同的内容(或其各个方面)部署到所有这些平台上,甚至更多。如果采用更传统的内容管理,你就需要分别管理不同平台的内容。
这听起来很不错!那么,无头文件是否适合我?
在选择方法时,有很多事情需要考虑。实行无头化有好处,但也有成本。以下是在考虑采用无头程序时要问自己的一些问题。
你是否能接受进行分离的知识要求?
很多人认为转向无头化可以 "摆脱 "对后端开发人员的需求,但事实是,有效地构建数据结构和建立有效的内容模型的思维方式,在很多时候仍然与成为优秀的前端开发人员所需的思维方式大相径庭。仍然有一个知识差距,这仍然需要被填补。
如果你正在处理一个规模很大的项目,你可能仍然希望一些开发人员专注于 "后端 "领域,而一些人则专注于 "前端"。在无头的土地上,分工更细,可塑性更强,但不要误以为只靠无头就能将开发人员减半。
你知道总体拥有成本吗?
虽然无头系统通常比单体系统更便宜,但大多数这类系统的SaaS性质意味着,对于大型、快速变化的数据集或非常大的团队来说,成本可能不会增加。始终检查成本如何扩展,以及这种扩展的基础是什么。有些供应商是根据数据量,有些是根据API请求的数量,有些是根据编辑你的内容的合作者的数量。这些因素的结合会对你的成本如何随规模增长产生巨大的影响。
你也可能需要查看多个不同的平台,以制定一个关于你的总拥有成本的想法。如果你没有得到 "开箱即用 "的搜索功能,你需要考虑增加该功能的成本是多少。你通常可以预测这些成本将如何扩展,而且你通常可以从小处着手,但值得注意的是,从长远来看,这些东西可能会花费你。
如果你选择了无头程序,也要密切关注你的构建时间:这些费用可能会很快增加,尤其是在开发和内容填充阶段。请注意,如果你选择静态生成你的网站,那么你将需要在CMS的每个发布动作之后进行构建。对于大型网站,这些构建可能需要一段时间,所以值得注意的是,这些需要保持控制。许多流行的静态托管服务(如Netlify和Vercel)支持构建资产缓存,结合现代框架实现增量构建,这可以帮助减轻这种不断增加的成本,但你仍然需要关注它并进行研究,以确保你不会被发现。
你为你的客户解释得够清楚了吗?
你可能喜欢使用Jamstack和headless的开发者体验,但在进行这些评估时,你必须记住,客户才是必须使用和生活在你提出的解决方案中的人,所以你要尽可能地让他们的生活变得简单。
在以前的工作中,我曾参与过一个汽车制造商的投标,该制造商说他们希望把行业领先的性能作为首要任务,但他们最终选择了另一家提供更传统解决方案的机构。这种情况的发生有很多原因。我们很可能在推销我们的方法的好处方面做得不够好,但对内容编辑来说,采用无头系统也是相当可怕的,特别是当与一些传统的 "企业 "系统对立时,他们有能力使一切看起来 "正常"。
当你采用无头系统时,你将会把那些被设计成在某一特定领域非常出色的单个工具集合在一起,而不是拥有一个可以在一个地方做所有这些事情的大型系统。除非你能让你的客户尽可能容易地处理,否则这可能是相当令人生畏的事情。
你是否将额外的开发时间考虑在内?
无头系统的所有潜在功能和灵活性都不是免费的。一切都是定制的缺点之一是,这意味着一切都需要从头开始开发。在这个领域的许多选项中,没有真正的 "默认 "文档模式--事实上,它们的设置是非常刻意的,没有任何类似的默认。这一方面很好,因为它意味着你可以得到与你的需求精确匹配的紧密的文档模式。
但另一方面,这意味着需要有人来定义这些文档模型,然后需要有人为你所使用的系统创建它们。然后,由于前端和后端是解耦的,有人通常需要创建一个引擎来允许预览草稿内容;许多现代框架包括一个允许预览草稿内容的系统,但它们普遍需要额外的配置才能工作,有些还需要一定程度的自定义代码。当然,前端并不与内容相联系,所以任何数据与前端组件的映射也需要完成。即使是紧耦合的CMS,你通常也至少要做其中的一部分,但事实上,你很可能要为所有这些事情分配时间,这可能是昂贵的。
你/你的客户是否能接受数据不在你自己的基础设施上存在?
虽然许多与无头CMS系统和其他SaaS供应商合作的人经常认为这是一个积极因素,但在某些情况下,你的数据不在你自己的基础设施上可能是不太理想的,例如涉及敏感产品或非公开生产数据的情况。这些公司的安全通常是相当好的,但总是有风险。
请确保你权衡一下将你的内容存放在某个匿名的AWS服务器上的相对好处。我们之前已经看到,即使是强大的AWS也会出现故障,对于关键业务系统来说,这些故障可能是极其昂贵的。在AWS上的SaaS和使用你自己的基础设施之间的区别是,如果你在自己的基础设施上出现故障或安全漏洞,那可能是你自己的产品或代码的问题,但在SaaS/AWS环境中,故障更可能是由与你的业务无关的因素造成的。这些情况很罕见,但它们确实发生了,重要的是,在做出这些决定时要考虑到这一点。
好的,太好了。那么,我有哪些选择?
2021年可用的无头和无头内容管理解决方案的数量是惊人的,而且在不断增加。我不想在这里介绍所有的选择,而只想简单介绍几个比较知名的选择。如果你正在寻找一个更全面的列表,那么你可能想看看Headless CMS或CMS比较。
内容丰富
Contentful是最成熟的无头CMS选项之一,成立于2016年,享受了几轮成功的种子投资,并将自己描述为 "一个提供数字体验的API优先内容平台"。
近年来,Contentful在更好地支持翻译和转换内容方面取得了长足的进步,他们对多种内容 "环境 "有很好的支持,允许在你的生产数据之外进行更改,并在以后进行迁移。
Contentful有一套与其他SaaS应用的集成,因此很容易与Shopify或CommerceLayer这样的电子商务公司,或Cloudinary这样的资产托管和处理公司集成。
最适合。
那些正在寻找无头空间中最成熟的解决方案的人。
故事会(Storyblok
Storyblok是这里唯一一个真正将自己描述为CMS的无头方案,它有一个非常好的可视化内容编辑器,允许你在原地创建和编辑你的内容,有一个奇妙的所见即所得界面。这是传统的CMS与网站分离的弱点之一,所以看到Storyblok创造的这种编辑环境是一个很大的进步,团队应该为能够在这方面推动市场发展而感到自豪。
Storyblok还能够使用他们的API来生成内容模式,使这些东西与你的代码一起存在,这对可维护性是非常好的。基于角色的权限和翻译/创造能力使分布式团队在多语言网站上工作变得很愉快。总的来说,Storyblok给人的感觉是一个非常完善的、经过深思熟虑的产品,尤其是内容团队,可能会成为它的粉丝。
最适合。
那些希望从无头CMS中获得最佳所见即所得内容编辑解决方案的人。
诚信(Sanity
Sanity是这个领域的新生力量之一,但已经迅速赢得了关注。他们把自己描述为 "最终的内容平台,帮助团队实现伟大的梦想和快速交付"。
Sanity的做法与这里的其他选择有点不同,因为你的所有配置和内容模型都是以代码形式完成的,对于开发者来说,这是一个舒适的地方。通过允许对文档模型和自定义字段类型进行几乎无限的创造,Sanity允许开发者为各种事物创建深入、丰富的内容结构--不仅仅是网页内容。
Sanity的编辑套件干净简单,可定制,开源,并基于React。你可以将编辑工作室部署到你喜欢的任何主机上,或者选择使用Sanity的子域来托管他们的基础设施。
最适合。
那些需要绝对控制几乎所有实施方面的人,从自定义数据结构到输入组件。
棱镜
Prismic确实是无头领域的老角色,早在2013年就已经出现,但这并没有阻止他们在这个领域的创新。就在去年,他们推出了SliceMachine,旨在通过在内容块(或 "切片")和前端组件之间建立1:1的关系,弥合创建组件的前端开发人员和内容作者之间的差距,这使得编辑人员建立新页面和内容部分变得轻而易举。
Prismic的编辑套件很可爱,似乎他们已经修补了一些过去存在于其领域选择中的漏洞,所以它提供了一个全面的体验。
最适合。
那些希望将内容编辑的摩擦降到最低的人。
如果我想要更传统一点的东西呢?
Wordpress
Wordpress在2021年仍然是巨大的。对于所有围绕其他平台的炒作,Wordpress仍然为大约40%的互联网提供动力,而且它不会消失。开发人员正在通过改善其无头功能和更加注重其API支持来帮助确保这一点。新的编辑工具也使在WordPress中写作的经验更加令人愉快,而且近年来,使用WordPress的一些固有的权衡已经得到了巨大的改善。
与像Nestify这样的WordPress-as-a-service公司合作,可以使你作为一个开发者不再为安全问题感到焦虑和头痛,但是要注意,作为互联网上最大的平台,WordPress对那些有恶意的人来说仍然是一个非常诱人的目标。
最适合。
那些希望坚持使用一个舒适、熟悉的内容平台的人,同时将技术更新到最新。
思特科
作为企业内容管理的巨头之一,Sitecore也许是你最不希望在这个名单上看到的名字之一,但他们在支持无头化方面取得了巨大进展,发布了Sitecore JSS,使Jamstack项目能够与Sitecore数据对接。
以无头方式与Sitecore或其他企业CMS系统合作的最大困难一直是如何实现个性化,但Uniform公司的人已经解决了这个问题,他们实际上已经开始与Sitecore合作,实现这种功能。
Sitecore是一个巨大的野兽,它并不适合很多项目--光是成本就使它超出了所有企业级客户的范围--但它和AEM一样值得列在这里,因为仍然有很多人认为无头内容管理只适合小型网站。
最适合。
那些正在寻找企业项目的客户,他们不一定想在新技术上 "全身心投入"。
Adobe Experience Manager
Adobe Experience Manager(或AEM)是企业级的另一个主要参与者。它很庞大,而且非常昂贵,就像它的大多数竞争者一样,但Adobe是另一个已经做出巨大努力的供应商,使他们的产品对那些想把他们的内容和他们的网站展示分开的人更加友好。
AEM现在支持几种不同的方法来请求他们平台的数据,而且Adobe现在将AEM作为 "混合CMS "来销售,这意味着它在一个引擎下结合了无头和更传统的、针对渠道的操作。这对需要在不同平台上工作并需要在这些平台之间对内容进行精细控制的营销团队来说是一个很大的优势,但那些想加入Adobe的 "一个平台统治所有平台 "的人需要有足够的资金才能开始。
最适合。
那些希望在企业的最高端,拥有雄厚资金的人。AEM有很多功能(比我们希望在这里提到的要多),但它很_昂贵。_
现在我对我的选择有了一个概念,但我怎么能希望在它们之间做出选择呢?
现在的无头空间有很多选择,你很容易陷入选择瘫痪。然而,有几个问题可以帮助你形成初步意见,或至少缩小范围。
你要花多长时间才能上手?
不同的系统有不同的学习曲线和支持开发者的方式。这里列出的每个系统都有一个围绕它的开发者社区,但不是所有的社区都是平等的。供应商是否提供详细的文档?启动项目?所有这些都会对启动时间有很大影响。
你需要什么样的支持模式?
支持模式对客户来说通常是最重要的,而且你经常发现,为了获得更直接的支持,你需要支付 "企业 "套餐,这可能使你的投资高于你可能预期的使用量。
供应商的地位有多高?
供应商的地位如何?他们是如何融资的?同样,这些通常是客户的考虑,而不是开发商的考虑,但是能够尽早告诉客户你所推荐的供应商是稳定的,已经有X年的历史了,而且他们有足够的财政支持,以确保他们不会很快去任何地方。任何客户最不愿意看到的是,由于现有供应商的产品日落,而客户却在参与过程中被迫重新建立平台。
编辑经验是怎样的?
编辑经验对于任何项目的客户方的一些人来说可能是非常重要的。无论你选择什么样的内容管理系统,这些人都会日复一日地与之打交道。如果CMS的使用是一场噩梦,他们会这样说--很多。相信我,我曾经参加过许多推介会和后续会议,在这些会议上,客户花了大量的时间来列举他们对现有系统的许多挫折。
"你所关注的系统能否提供上下文编辑或实时草稿预览?"
"设置这些需要多少努力?"
"编辑器本身的运行速度有多快或多慢?"
"用户是被选项和不熟悉的按钮所困扰,还是有条不紊?"
所有这些问题都反映了系统的整体易用性。一些解决方案,如Storyblok,已经花了很大力气使内容编辑成为一种丰富和无缝的体验,但它通常不被认为是整个无头环境的优势,所以绝对值得在你的内容编辑面前做一个小规模的演示,看看他们对你看中的解决方案的感觉如何。
把你的数据从平台上移走有多容易?
我已经数不清有多少次在推销会议上被告知,我们可能必须从头开始,或者为内容编写一个定制的刮刀,因为客户的内容完全被束缚在一个专有的内容管理系统中,而且他们不能轻易导出数据。
无论你选择的内容管理系统看起来有多酷,都要绝对确定有一个简单的方法可以在某个时候把你所有的内容从系统中取出来。可悲的是,没有一个系统是永恒的,客户最终会想要改变他们的网站,以及他们的基础设施。在这一点上,只要你能让他们的生活变得更容易,就会有很大的好处。
一般来说,无头CMS解决方案更容易做到这一点,因为它们的核心是可以使用API的,但仍然需要更仔细地检查,以确保你不会在几年后造成巨大的头痛。
总结
选择内容管理的方法和平台是任何数字项目的一个重要选择。无头的内容管理是强大而灵活的,但也伴随着一些成本,而且它并不适合所有情况。
要注意的是,你从供应商那里看到的前期价格很少是解决方案的最终总成本,而且要确保你不会落入这样的陷阱,即认为你可以通过取消传统的 "后端 "开发人员来减少开发成本。
确保每个人都能适应使用无头CMS的现实,而不是更传统的设置,并确保将内容编辑带入这个旅程,因为他们是最经常使用你设置的系统的人。
希望本指南至少能帮助你了解一些炒作的背景,并能帮助你做出一个让你和你的客户都能接受的决定。现在,你几乎可以以无头系统为中心构建任何你想要的东西--但要经常问自己,你是否因为熟悉或被炒作而去寻求一种解决方案,或者它是否真的是适合你情况的最佳解决方案。