We are set to release a large Sitecore-based system in a week. Presently the CI/CD process works by effectively republishing everything from a git repository as the source (we use TDS for day-to-day development merging and update package generation). It does this by following these steps, implemented as Powershell scripts calling into SPE:

  1. Wipe both master and web databases (recursive Remove-Item);
  2. Install two update packages (templates and content), using UpdateInstallationWizard.aspx;
  3. Publish all items (recursive Publish-Item).

The whole process takes in the region of 2.5 hours to complete (we are using Sitecore 8.1, update 3). The problem is that once live, we cannot afford to have downtime--perhaps a little downtime (minutes) is acceptable, early in the morning, but hours is something that the business have said they are not willing to accept. Step 1 above essentially guarantees that the site will be down for a significant amount of time.

Our current "best" solution, given the short time we have is to simply do away with step 1 above, and just install the update packages (electing to overwrite items if they already exist). In theory, since typically we don't expect there to be many changes from deploy to deploy, we would at least be able to create the impression that the site is not down during the deploy.

The problem with our proposed short-term fix is that we can't be sure that an "overwite" won't break things (due to potential loss of item relationship integrity).

In following the "overwrite" approach, will the inter-item relationship integrity be maintained? I am aware of the fact that there will be orphan items and/or item graphs, but that should be okay, at least in the short term, since I am not expecting the stale items to influence the functionality of the site.

  • where are the environments located, Paas/Iaas or on-prem? Commented Nov 12, 2017 at 21:29
  • @SivaSankar, all in Azure (IaaS), but why would that make a difference?
    – Eric Smith
    Commented Nov 12, 2017 at 22:15
  • 2
    Another thought is you won't package up content after go live. It's a CMS so content is volatile and managed by the Editors. Also, Unicorn, Rainbow, and Sitecore Sidekick can help tremendously. Commented Nov 12, 2017 at 22:26
  • 2
    I imagine the Publishing is very expensive and what impacts CD the most. May only be feasible if you use the Sitecore Publishing Service, which may require a newer version than what you are on. Perhaps time each step that impacts the CD and that may pinpoint what must change first. Commented Nov 12, 2017 at 22:59
  • 1
    Given that you are always overwriting it essentially means you can put the CMS into "read-only mode" at the moment, i.e. any changes made by users would be wiped out at next deploy. (This is a strange situation, but you have your reasons). You should also consider not wiping everything and using the Delta Deploy option TDS. This will mean smaller package install and publish (use incremental option).
    – jammykam
    Commented Nov 12, 2017 at 23:12


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.