Why should your team Scale Sitecore?
I decided to write this article because recently customers have been asking if they should move to the cloud and the steps for migrating their On-Premise Architecture to Cloud Scale. If you have ever worked on a Sitecore Project or any software project with multiple team members, then you are well aware of the pitfalls of On-Premise management. Scaling your platform in the cloud not only gives your team development and design benefits but also allows them to make strong cost-saving arguments to corporate management.
Below are the key reasons your team should scale Sitecore in the Cloud:
- Less hardware management: Your IT teams will not have to use as many hours on keeping up with the latest hardware or server updates. This will amount to less work and cost savings.
- Faster development and content authoring time to market: Your developers and content authors can work from around the world in one integrated cloud environment. Onboarding new team members is faster and delivering change is easier due to one cloud standard instead of a custom internal corporate only strategy.
- Easier scaling: IT teams no longer have to worry about horizontally or vertically scaling your customer experience. Most cloud operators have dashboards for your employees to manually or automatically scale your operations based on load. Do not pay for what you do not need.
- Commercial Support and Management Services Options: It is always hard to do everything yourself, especially when a million dollar customer experience investment is crashing. Cloud providers (even Sitecore | Sitecore Partners) offer direct cloud support for issues that arise. There are also multiple options for managed services for taking care of updates and identifying performance issues.
- Lower costs in the long run: At the end of the day, it comes down to price and level of effort (especially for management). All the above items add up to saved time and lower costs even if your team decides to buy both support and managed services.
Prerequisites for creating Sitecore at Scale
The following points are key start items that our teams have identified across multiple Fortune 500 on-premise to cloud projects. These items should be defined or applied before moving to a Cloud Provider.
Employ Sitecore Architecture Best Practices
The following principles will allow your development teams to scale features across sites with less pain and effort. Your team does not just want to build things faster, they also want to make sure they scale long into your client’s future.
- Use patch files for configuration updates
- Configure Site information and Target hostnames
- Use Sitecore Experience Accelerator (SXA) if included in your license
- Use Helix Base Project as a model for all project solutions :
- Use Helix Best Practices
- Use ASP.NET MVC Page Development instead of Web Forms
- Define your MVC Routes
- Use a separate .NET Project for any Extensions you add to Sitecore
- Never store Sitecore in source control
- Use Sitecore JSS to replace standard Sitecore Content Delivery Instances if included in your license
- Define a General Data Protection Regulation (GDPR) Strategy
- Store Data Source content under pages
- Use One Default Layout with Fields to make it Generic
- Store each Site instance settings in a Settings Node Data Template instead of on the home page item or random page item
- Define a Continuous Integration and Development strategy
- Code Deployment
- Content Deployment
- Use Node JS to bundle your CSS and JS design files
- Do not place CSS or JS on views. Point to files that can be bundled.
- Migrate WFFM to Sitecore Forms
- Define a Content Delivery Network (CDN) hosting strategy
- Define a Login strategy
- Define a Search strategy
- Define an Analytics experience database collection and storage strategy
- Don’t use mobile layouts. Use bootstrap
- Define Cloud ARM templates
- Use Glass.Mapper for data operations
- Use Sitecore Data Migration for migrating instances to new versions and/or the cloud instead of your own tools unless needed.
Decide on Enterprise Scaling Options
Azure or AWS or Your Choice: Your team must decide which cloud vendor is the best fit for their ecosystem. Professionally, and as you can probably tell from this article, our firm prefers Azure for its ease of use and understanding of Sitecore. However, we have done deployments on AWS and other clouds that customers have been quite happy with. The choice is up to you and your budget.
Choose a Customer Experience Cloud Strategy
Analyze your Sitecore License: Convert into a cloud consumption license and reduce the number of CD/CM licenses as this can be scaled in the cloud. This action will greatly reduce your Sitecore License cost, especially when combined with JSS.
Plan your Cloud Instance Options for Deployment :
- AppServices: A very thin container that only contains your Sitecore installation and its dependent services. The operating system is provided by the cloud. Teams are usually provided folders for their application deployment and dashboard options but no direct operation system access. IT teams favor this option as its the easiest to use and manage. Your team can have Sitecore 9.1 up in 30 minutes by pressing buttons.
- Containers: Sitecore can be run inside of containers such as Docker and/or Kubernetes when massive or heavily repeated scaling is needed. Teams have more access than AppServices but command windows or dashboards are still required for full management. IT teams will be needed to manage and maintain container swarms.
- Virtual Machines: VMs will give teams the most Operating System Access in the cloud. They allow developers to manage a deployment much like they did on-premise. However, IT or Manage Service teams will have to monitor the operating system.
Choose an Enterprise-Level Search Product
Solr Cloud Options: Solr, Solr, Solr. The default best practice is to scale Solr in Zookeeper Cloud mode. However, this means the team must invest more time when creating search features and also maintain a Solr Cloud (which is usually its own job or team). Our firm recommends using Search Stax if you are using Solr. The company takes care of many common Solr tasks and has many deployment options. They also have solid support!
Azure Search: Sitecore now supports the use of Azure Search which is starting to become a popular alternative to Solr in the cloud. Your team must still manage development but not as much because instances are as a service and easier to maintain. Also, you have quality azure support backing you should anything go wrong.
Coveo Search for Sitecore: From our experience, Development is the fastest and easiest to manage when using Coveo. The product includes powerful feature examples that require almost no code to conduct complex search operations. They also feature quality support and powerful search analytics.
Choose a Real-Time Analytics Product
SQL Server in the Cloud: The default option for Sitecore 9.1 installation is to use SQL Server in the Cloud as the data store for the experience database. This used to be MongoDB but that involved installing and maintaining another product with limited scale options. SQL Server in a cloud, particularly at Azure, offers a quick and easy way to store Analytics. It, however, does not offer the same plant scale SLA’s as the other products below. It also does not have too many real-time stream and graph options.
Azure CosmosDB: This new Microsoft cloud product is defined in the Sitecore Road-map for adoption soon allowing customers to take advantage of true planet-scale analytics data collection. Azure has more than 26 regions around the globe allowing customers to obtain near real-time insights from Sitecore Experience Database in the areas their customers live.
DataStax: Enterprise Cassandra gives customers the flexibility of being in a Hybrid Cloud World consisting of their own installation and other (commercial) clouds. Analytical Data storage can take place at the clients’ location and then quickly be made available in your user’s region or vice-versa. Insights are gathered in near real-time whether the system is deployed on-premise or at a third party cloud (AWS, Azure, etc). Our firm is working to release a public production Sitecore to DataStax connection in 2019.
Our Business Platform Services
Photo by Markus Spiske on Unsplash