我正在努力使我们的一位客户在他们基于 sitecore 的网站上的发布过程更快、更简单。通过研究,我偶然发现了 Merge Replication,它可能会解决我们的一些问题,但它会引入其他问题。我需要您的帮助和指导,以找出最好的方法!
我们有一个 CD 和 CM 设置,有 1 个 CM 服务器,它有自己的 SQL 实例。2 个 CD 服务器,每个服务器都有一个 SQL 实例。目前我有当前的设置:
CM(主数据库、Web 和核心数据库)Web 仅在内部显示在站点的安全管理 url 上,这就像一个预览站点。
CD1 和 CD2 是访问用户的服务器,它们在 Sitecore 中都有一个发布目标。
当我们部署一个版本时: 1. 为 CM 部署新代码。将 Sitecore 的模板和潜在的内容更改发布到 Web。验证并验证一切是否正确。2. 取出负载均衡器的 CD1,为 CD1 部署新代码,将模板和可能的更改发布到 Sitecore,验证和身份验证,然后将服务器放回负载均衡器。3. 对 CD2 重复步骤 2。4.部署完成
这个过程现在对我们来说工作正常,我们一直在运行,没有在网站上停机。
当前设置存在一些问题:
当 CM 发布到 Web 时,我们的搜索(弹性搜索)正在填充,因此 atm 存在弹性搜索问题,可能有尚未发布到 CD 服务器的数据。
发布时,编辑可能会忘记发布到其中一台 CD 服务器,这会导致服务器之间的不一致,我们希望避免这种情况。
对于同一环境,所有内容都需要多次发布,占用时间。
编辑不知道 CD 服务器是什么,他们只想有一个“预览”和“实时”发布目标。
我研究了 Sitecore 的合并复制,实际上它也在测试环境中工作。我们希望从中获得的好处是我们只有两个发布目标:
Preview(CM服务器预览数据库)
Live(CM 服务器 Web 数据库,然后复制到 CD 服务器 Web 数据库中)
Elastic 搜索实例将中继来自 CM 网络数据库的数据,这些数据是实时数据。
我们也可以在预览版上运行 Elastic 搜索实例。
这里的问题是,现在我在进行部署时不能只为 CD1 或 CD2 部署。如果我对 Sitecore 有重大更改怎么办?如果我将新的破坏性 Sitecore 项目发布到尚未部署到的服务器上,该站点会崩溃吗?
我怎样才能充分利用这两个世界?任何?