I would say it's of high importance. Depending on the event queue interval, if all your CD's share the same core database, it can cause index triggering to be missed. Typical event queue checks are two minutes apart so you can see how easy it is to be off 1 minute in either direction from a baseline. So says Sitecore:
"Synchronize all servers to a single ...
We do our deployments as follows in our 8.1 environment using Team City, Octopus deploy and Unicorn (this is Simplified):
a rewrite rule tells the load balancer to take CD1 out of the pool
push the site NuGet packages to the CD and CM servers (we build this from Teamcity)
deploy sitecore, the updated site code and serialised unicorn items to the CM sever
Let's say you need create a second publishing target called staging.
You need to create an item for the new database in the content tree at the path /sitecore/system/Publishing targets. Then in the field Target Database, you enter the name like staging.
Now, you need also to create a new database. You can just ...
An important note to start: the "Links Database" is a table named "Links" that lives inside a Sitecore database. It is not a separate database.
Sitecore only updates the Link Database on the database referenced by the CM server. The Sitecore Scaling Guide (section 3.6.1) states it as follows:
In a multi-server Sitecore setup, the link database is only
At the time of writing, the only official guidelines for hardware are the standalone on-premise installation in the installation guide and the the ARM templates topologies: https://kb.sitecore.net/articles/043375
The ARM template topologies are based on a simple marketing site without heavy integration or customization. If you are heavily integrating with ...
The setting Analytics.ClusterName serves two main purposes:
It is used as the identifier of the cluster that locks contacts in xDB;
It is used by clusters to transfer sessions and jobs to other clusters.
The first use case is, more or less, self-explanatory.
I'll elaborate on session transfers. Let's say you have two clusters:
What the error message means is that an object of type SearchResultItem could not be serialized as part of a session that is saved to a session store. There are two types of sessions used by Sitecore: private session (a.k.a. ASP.NET session) and shared session.
SearchResultItem is a class that is used to retrieve results when querying indexes ...
I would highly recommend that you watch the following presentation by Mike Edwards:
Sitecore Nirvana - Continuous Deployment.
It's about two sets of databases being replicated. It all comes down to process at the end. You can definitely work through and come up with a process which works for you and your environment.
During deployments you would pause the ...
It comes down to support.
Is there a known reason Sitecore wouldn't work on 2016? No. It will run on 2016 and in all likelihood there will not be any major issues in doing so.
But if there is; this is what it comes down to. Let's say you ran into an issue and Sitecore Support was not able to help you out due to it being rooted in something around Server ...
Currently, for enterprise installations of MongoDB, the Sitecore Best Practice for Disaster Recovery of Mongo rests solely on the Best Practices of MongoDB specifically and are not entirely different for Sitecore applications.
That being said... there are some things to consider:
Answering Your Specific Question
Are people architecting their solutions ...
I don't think Sitecore specifically says not to combine any roles. From what I've read, they only highly discourage using a standalone (one-instance) environment in production. Separating some roles (such as CM and CD) is crucial. Keeping some other roles combined may not be such a bad idea.
As a matter of fact, the out-of-the-box server roles Sitecore ...
It depends somewhat on the modules you're running (and version of Sitecore) and the traffic of your site.
For instance - there is specific guidance around when a dedicated server is needed for EXM (A dedicated server is recommended at 100k+ emails per week): https://doc.sitecore.net/email_experience_manager/configuring_the_delivery_process/...
Normally you already specified the hostname in the site definition configuration file.
You can get the hostname by calling
Sitecore.Context.Site.HostName or Sitecore.Context.Site.TargetHostName.
if you have a list of sites domain delimited by |, it will return you all the values from the hostName attribute.
Then you can split by | to get the different ...
In addition to the other answers, the conversation really lies upon the following questions:
How many instances are you licensed for? (both prod and non-prod)
How much traffic, visits, concurrent visits, etc does your site need to support?
What topology do you need to run? CM (as a single instance) plus some CD's and xConnect? Or CM, Reporting, Processing,...
Is Saving/Updating Data from a CD Against Best Practices?
Saving security/access changes from a CD is acceptable, and doesn't violate best practices.
Saving data from a CD in general also doesn't violate best practices, so long as you are mindful of the data that you are saving, where it will be saved to, and that it can be overwritten (effectively ...
From my point of view Vertical Scaling means : increase memory, cpu and separate standalone server to one CD, one CM , one processing, one reporting, etc like on below picture.
For example, to scale horizontally you can deploy:
Multiple content delivery servers.
Multiple clusters of content delivery servers, either to increase capacity beyond a single ...
I'm assuming that since you've linked the Scaling Guide that you're using VMs in Azure. If the site leans heavily towards consumption-oriented, I would put a number of content delivery servers behind a load balancer in Azure and use the Azure CDN to distribute content worldwide. Make sure that you have the appropriate caching turned on in Sitecore as well ...
I believe it should be possible, by configuring your CM box to act as the "dedicated server" for your setup.
With reference to this guide - section 3.1.3.
E-Mail Campaign Manager for Sitecore CMS 6.5 - Administrator’s and Developer’s Guide
As far as I can tell; all you would need to do on your CD server, is remove the <scheduled> section from your ...
If your only need is to keep the CD nodes only and you are okay with downtime on the CM, you can achieve 100% uptime of your CDs during deployments using a second publishing target.
CD1 => Connected to Publishing Target 1
CD2 => Connected to Publishing Target 2
By swapping which CDs are in the Load Balancer you can take your time and control when you ...
You could create the email and later scheduled it, instead of sending it.
As you should have removed the sections that let ECM send scheduled emails from the CD (section 3.4.2 of this document), only the CM should handle it.
Please note that on ECM 2.1 having dedicated instances
<DedicatedServers> does not mean that those instances will be the
You will need to have only one database. In other words, if you have 3 CM Servers, all of them should be connected to the same database.
For running of tasks, that is, scheduled jobs, you can setup one of your CM server as the job server. All the jobs will be performed only on one server (job server). If you are using the same database, all the CM will ...
Dylan Young pointed out that this is likely an opinion-based answer, and I agree. It will completely depend on your solution and how you plan on using the different roles.
Which features you use and how much you use them will dictate your production setup.
In production XP1 you cannot use Lucene, so that means you need a server ...
For installs where I have had to use SIF in a scaled environment, I have had to do some tricky installs. Maybe some of this can help:
First, I was able to locate a script that worked really well in removing the install for the database if you just want to install the web app and and then restore databases in your second step.
You can find that here:
I'm not aware of a way to do what you are asking because deny permissions are always stronger than grant permissions, so the instruction to deny access to /sitecore/* would beat the instruction to grant access to /sitecore/service/keepalive.aspx.
Instead, I would recommend following Sitecore's Security Hardening Guide (section 1.5):
To restrict access to ...
We have always used database-level replication to keep core databases in sync.
I don't have experience doing this with publishing, but I have a couple concerns. These are things that happen when an item is published that you may not want for core databases:
You will lose version history of the items on the destination core database since publishing only ...
The best approach is to used configuration file. You can easily deploy the configuration files to the required environment.
Doing this in Sitecore is typically very difficult and there is no OOTB feature for this. You'll require to manually set the value on each environment which is error prone and also time consuming in the sense that you need to go on ...
From the experience I have with Sitecore, we have rolled out 70+ sites on sitecore. Below are the following points/practice we usually follow when implementing our sites.
You may have a main content repository which stores all the common content for the different sites. Contents that are specific to a site are created under the site node.
I think Time synchronization is important, but Timezone is not.
From what I see EventQueue timestamps use UTC time, whatever the local time of the system, so long as the clocks are in sync they can all convert to Universal Time.
While do agree with @owen-niblock that mixed timezones can easily cause confusion when reviewing logs (as log timestamps are ...
If you have two CD servers behind LB, you can
switch OFF 1st CD,
clone databases and update content
change connection strings on 1st CD
update code of 1st CD
switch ON 1st CD,
Later you can repeat that procedure for 2nd CD (skip step with databases, you will just switch connections strings as you already have dbs with new contnent used by 1st CD)
I don't know the way how to do it out of the box. But can suggest how to do it with hack. Idea is to sync cookies that Sitecore uses to identify visitor to same values across all websites.(Important requirement is that analytics DB and Sessions store should be shared between all sites). When these cookies will be same, Sitecore would think that it is the ...