【发布时间】:2014-05-15 17:12:30
【问题描述】:
我不是 CQ 人。我必须将 CQ5 用于我的一个项目。我有一个 CAT 和一个生产环境。我有以下疑问-
我只想使用我的 CAT 的作者实例。一旦我在 CAT 中发布内容,它也应该在生产中发布。有可能吗?
一旦我在生产中更新了 AdobeCQ 的构建,比如新构建、代码更改等,我的内容会丢失吗?
我在某处读到有关 cq5 中的内容包的信息。我可以在一个 CQ5 环境中分离内容更改和代码更改吗?
提前致谢。
【问题讨论】:
我不是 CQ 人。我必须将 CQ5 用于我的一个项目。我有一个 CAT 和一个生产环境。我有以下疑问-
我只想使用我的 CAT 的作者实例。一旦我在 CAT 中发布内容,它也应该在生产中发布。有可能吗?
一旦我在生产中更新了 AdobeCQ 的构建,比如新构建、代码更改等,我的内容会丢失吗?
我在某处读到有关 cq5 中的内容包的信息。我可以在一个 CQ5 环境中分离内容更改和代码更改吗?
提前致谢。
【问题讨论】:
回答问题 1...
这不是推荐的设置,但对于不熟悉 AEM/CQ5 的人来说,这是一个常见的误解。 “作者”和“发布”实例应该属于同一环境。例如,您应该有一个生产作者,可能在您的防火墙后面,以及生产发布以向公众提供页面。
您的 CAT 环境应该有同样的东西。您希望您的测试环境与您的生产环境(包括 Web 服务器和调度程序设置)尽可能匹配,以确保质量。
考虑一下。您可以使用一个生产发布实例,但它是单点故障。在至少两个之间进行负载平衡是一般的最佳实践。对于大多数网站来说,两个就足够了。如果你这样做,你会想要模仿 CAT 中的架构。
回答问题 2...
如果您的代码编写、构建和部署正确,则不应删除您的内容。只需确保您从不将任何内容部署到 /content(以避免删除内容)和 /libs 和大部分 /etc 以避免覆盖平台功能。 AEM/CQ5 是一个非常开放的产品,所以你可以做非常糟糕的事情。但是,如果你知道不该做什么,你就安全了。
代码部署通常应该作为 CRX 内容包的一部分来完成,这让我...
回答问题 3...
我们构建和部署代码的方式是让 Maven 编译 Java,将所有内容打包到 CRX 包中,然后使用包管理器 REST API 部署到实例。 Adobe 提供了一个 Maven Archetype 来促进这一点。
CRX 包是您的内容存储库的文件系统表示形式,包装在实际上是带注释的 Zip 文件中。您编译的 Java 代码包含在该文件系统表示中,位于名为“config”的文件夹(成为节点)中。编译后的 Java 是一个 OSGi 包,它是一个带注释的 JAR。当 CRX 包管理器将所有这些节点部署到系统时,OSGi 会接受捆绑包,假设它是有效的。这就是为什么您可以“热”部署实时、生产 AEM/CQ5 实例,而且风险很小。
所以...
这是对一些非常大的主题的非常高水平的回答。我鼓励你在设置之前做更多的研究。有许多很好的博客文章和文档页面可以帮助您根据最佳实践进行设置。祝你好运!
【讨论】: