July 31, 2017
As Sitecore continues to release greater support for platform as a service (PaaS) offerings in Microsoft Azure more and more customers are attempting to understand the best deployment options. The support of Azure Search to replace Lucene or Solr is one of the latest improvements to Sitecore. In this post we explore the rational for using Azure Search.
To enable Azure Search in Sitecore all you need is an Azure Search instance (a bit more on that in a moment) and then follow some simple configuration steps in your Sitecore PaaS or IaaS deployment. Basically disable the *Lucene* config files and enable the *Azure* ones.
Azure Search Instance Sizing
Out of the box Sitecore uses 15 indexes and you may have added some of your own. So as you see from the below provisioning screen, you will need the S tier of Azure Search. In this pay as you go subscription the cost per month (Canadian dollars) is $303.96. Important to note is that queries per second on this tier is about 15 per replica.
The terms “replica” and “partition” are important in Azure Search as the multiple of your number of replicas and partitions is equal to your “search units”.
4 replicas * 3 partitions = 12 search units
The number of search units are capped at each tier. As you can see the S tier can allow for up to 36 search units. The SLA is 99.9%.
Now if you contrast this to Solr, Sitecore recommends Solr have 4 cores and 12GB of RAM as a starting point. Looking at the same subscription a single virtual machine with those specs is approximately $253 / month. So you can save $50 / month in Azure cost but now you need to setup and manage Solr as well as the underlying VM. I’ve not come across many organizations that can fully manage an application and an underlying operating system for $50 / month.
Azure Search Scaling
Now that we think Azure is the winner – we all agree right – there are some considerations you need to keep in mind. Sitecore’s already got you covered so I’ll not repeat it.
What I do think needs to be covered is how you decide to scale Azure Search. As noted earlier the number of queries per second is based on the number of replicas. Therefore, if your queries are being throttled you probably want to explore adding a replica(s). If adding replicas does not solve the problem with query time you will need to jump to a higher tier such as S2 or S3. Costs do rise quickly. Adding partitions may speed up individual queries as the storage of data is sent across more resources, but this is something you will need to test with your slow query to validate.
Azure Search is a cost effective option to replace Solr (or Lucene) in Sitecore; providing easy access for deployment and a minimal footprint to manage.