Changes in Sitecore 10
With the release of Sitecore 10 Update 1, we're seeing a rise in interest for Sitecore 10. And now at Fishtank, we officially endorse Sitecore 10.0.1 for all new projects.
To help understand what's new in Sitecore 10, I'm attempting to recap the announced changes, organize them into categories, provide some commentary and rate them as priority changes.
Sitecore 10: Feature Highlights
Sitecore does a great job outlining the changes in Sitecore 10. The easiest read of them is found on the information page for Sitecore 10.0.1. Here is the official overview provided by Sitecore:
- Sitecore Containers support rapid deployment and more efficient solution and team onboarding with modern Docker and Kubernetes technology.
- A new ASP.NET Core headless development option allows teams to build applications faster on the latest .NET technology.
- Sitecore CLI and Sitecore for Visual Studio bring headless serialization by combining the best of TDS and Unicorn , making it easy for teams to script content changes and move them between different environments as part of deployment processes.
- Audience analytics filters allow for deeper insights on audience engagement and segmentation to drive powerful personalization across all your channels.
- Additional HTML Email Templates for EXM provide more options when crafting emails, which translates to the quicker creation and delivery of targeted emails to customer inboxes.
- Horizon editing interface updates give marketers in-context insight across multilingual and multisite experiences.
- Stronger CMP integration supports additional field types and allows for persistent taxonomy associations when importing into XP taxonomy repositories and connecting CMP to XP.
- Salesforce Marketing Cloud (SFMC) connector updates provide new capabilities to immediately send xDB data and trigger Salesforce Marketing Cloud plans in Journey Builder.
- New marketing automation capabilities include capabilities to engage customers with automated birthday campaigns.
- Support for GDPR compliance journeys including features that make it easier to enforce and manage consent options as well as supporting the anonymization of personal information submitted via Sitecore Forms.
The initial release of Sitecore 10 offered more granularity, into the changes. We'll take a look at those next.
Sitecore 10: Top 5 Features
There are obviously quite a few things that have changed with Sitecore 10, but in general, these are the top 5 most impactful features/changes that have been announced.
- Full support for containers
- Improved XConnect performance
- Azure Search deprecation
- Sitecore CLI
- ASP.NET Core SDK headless server-side rendering
We'll look at each of these items in detail in the next section.
Sitecore 10: Detailed Breakdown
In the initial release of Sitecore 10 a more detailed breakdown of the changes were included. I've grouped these detailed changes into 6 categories.
- Marketing Capabilities (Including Automation): 14 changes
- Application Infrastructure: 4 changes
- Hosting Flexibility: 1 change
- Developer Experience: 1 change
- Misc: 2 changes
- Deprecated: 1 change
Each change is not equal so this can't be judged strictly by the numbers. But seeing 14 improvements related to the marketing features and 4 improvements in application infrastructure show a clear focus on those areas of Sitecore.
Marketing Capabilities Including Automation (14 Changes)
- Marketing Foundation - The Sharding Deployment Tool now supports SQL Azure Elastic Pool.
- Marketing Automation - Performance improvements in XConnect for customers who do not use Marketing Automation.
- Marketing Automation does not load contacts and interactions unless there is an inactive or active plan.
- Marketing Automation - A new birthday rule has been implemented. A milestone that is often used to target customers is their birthday. By creating a scheduled marketing automation campaign that runs based on a birthday rule, you can send a birthday message to customers before, during or after that date.
- Marketing Automation - We now send telemetry about when a campaign is activated and deactivated to the consumption tracking client.
- A new page has been added that automatically collects basic information about your Identity Server instance.
- You can now specify which paths should not be tracked by RegEx. The tracking exclusion feature supports both web forms and MVC paths.
Audience Filtering in Experience Analytics - You can now filter all the Experience Analytics reports on marketing segments created in the list manager. You can:
- Target segments of contacts through pre-defined rules and then see reports based on these marketing segments.
- Push emails to a segmented list and then see the impact across your websites.
- See reports on the performance of your key target groups.
- XConnect - The sitecore.version.xml file has been added to the XConnect roles and services to determine the current version of the Sitecore.
- XConnect - The SQL Sharding Deployment tool has been updated and the order of the parameters is no longer strict and proper exception logging has been added.
- XConnect - The XConnect Client API has been extended with ExecutionOptions for every get operation. All the overloads with ExpandOptions have been deprecated and will be removed in the next release.
- XConnect - We have introduced a Circuit Breaker Pattern for XConnect. In a distributed environment, calls to the XConnect server can fail because of transient faults or when resources are responding slowly. Using HTTP retries carelessly can create a DoS attack and slow down the response time of the server. This can exponentially increase the traffic to the failing service. The Circuit Breaker defence prevents applications from performing operations that are likely to fail within a configurable time frame.
Summary: Marketing Capabilities
We've grouped marketing automation, analytics & xConnect as they're all in service over-improving Sitecore's marketing capabilities. Within Sitecore, the rules that power marketing automation are separate from the rules used for site personalization so it's quite nice to see improvements there. The primary highlights were are:
- Improved XConnect performance
- Improved analytics filtering
- Improved analytics performance
Deprecated (1 Change)
- Sitecore.ContentSearch.Azure - In Sitecore XP 10.0.0, Azure Search is deprecated and will be completely removed in a future release. If you are starting a new Sitecore project, we recommend that you use Solr as your search engine.
Pay close attention to this. If you're upgrading to Sitecore 10, you can see still use Azure Search but you must have a roadmap in place to remove it and replace it with Solr.
This is a very positive step. Azure Search costs about $200-$300/month at the entry-level so it was often used only in production environments while development environments would use Solr.
At a basic level Sitecore's ContentSearch API provides a good abstraction protecting us from the differences between Azure Search and Solr. But they do require different configurations, tokenize values differently, and have different models for relevance - ultimately providing a troublesome experience with advanced usage.
It's nice that we'll all take a stand against Azure Search and are again, standardizing on Solr.
Hosting Flexibility: (1)
- Sitecore Azure - Over the coming releases Sitecore will adopt Containers as the Cloud hosting technology of choice and pivot away from providing App Services packaging out of the box. To give you enough time to prepare for the change, Sitecore will provide notice a couple of releases in advance.
Summary: Hosting Flexibility
In our experience Sitecore and Azure go hand in hand. Sitecore is usually adopted by enterprise customer who have made a significant and on-going investment in Microsoft technologies. As companies modernize their infrastructure Azure adoption grows. This reality was reflected in Sitecore's scalable cloud architecture being based on on native Azure services (App Services, App Insights, Azure Search, Azure Message Bus, etc).
By adopting Container technology, Sitecore is adopting a more portable way of deploying the application which opens up hosting options on Azure, AWS and Google Cloud platforms to name a few.
I suspect 99% of Sitecore instances will still be deployed within Azure given organization's investment and comfort with Azure.
Developer Experience: (1)
- Developer Experience - As part of the new Sitecore CLI, Sitecore Content Serialization provides automation-friendly tools for serializing, deserializing, packaging, and deploying items with a remote Sitecore instance.
Summary: Developer Experience
Sitecore CLI stands for Sitecore Command Line Interface. In Sitecore, we serialize items into version control (GIT) and then distribute these items between developers and environments. TDS was (and is) a great solution for this that integrated into Visual Studio - but it had to be licensed. The wonderful Sitecore Community created Unicorn which was a configuration-based open source option to manage serialization. So we had paid and free solutions for item management, but neither were maintained by Sitecore-proper.
Now with Sitecore 10 the Sitecore CLI is officially released as alternative to TDS and Unicorn. It's been claimed that it's the best of both worlds. I'm very happy to see an officially supported Sitecore option for item management.
In addition to this Sitecore for Visual Studio has been released. I have not used it, but it supplies a visual interface within Visual Studio to manage Sitecore CLI and requires purchase.
Application Infrastructure: (4)
- Containers - You can quickly get started doing container-based Sitecore development with the Sitecore Docker Tools and our comprehensive documentation on development practices for Sitecore Containers.
- To support containers, readiness health checks have been added for XConnect web-roles and XConnect Client (non-web roles).
- Headless Services - The ASP.NET Core Rendering SDK allows you to use .NET Core to construct headless rendering applications that run independently.
- The Sitecore XM topology now completely supports in-session personalization.
While they're grouped together, we'll want to look at the impact of these changes individually.
Containers and containerized environments are the future of Sitecore. The containers act as pre-configured micro-environments that contain all dependencies needed to run Sitecore. They're highly portable, so the same container you run locally to build can be deployed to your production environment. This containerization also allows development environments to be created very quickly as they remove the pain of dependencies. It's very cool stuff.
If there is a downside, it's that we're all finally going to need to take a breath and learn about Docker and containerization. Is that really a bad thing?
Headless Services (ASP.NET Core Remote Rendering Hosts)
This has been described as "built on the success of JSS so if you're familiar, conceptualize this as server-side version of JSS - headless server-side rendering. Sitecore has provided an SDK to do this using ASP.NET Core. It's said to maintain completely support with Sitecore analytics, personalization and all the things we've grown to love.
Sitecore XM In-Session Personalization
With Sitecore 10, personalization rules related to user sessions and devices are now available out of the box. Previously, these rules were dependent on tracking not available in CMS-Only Sitecore XM instances.
- The Shared Session State database is now disabled by default, and can be enabled if required.
- In Azure Application Insights, the Application Map has been added to the xConnect application services and web jobs.
The Application Map has been added to represent the flow of data between the XConnect roles within Application Insights. This is useful, as it allows to trace the flow of requests between the XConnect roles for troubleshooting. As Application Insights is specific to Azure, this would only apply to Azure PaaS deployments.
Thanks for reading. Lots of interesting stuff here. The support of Docker, the plan to retire native support for Azure PaaS (forecasted for 10.2) and deprecating Azure Search are the big items for me. Not because they're the necessarily the best or have the most value, but because they'll inevitably have an impact of every current Sitecore customer. They should be considered as part of any future roadmapping work.
Lastly, I'll leave you with a highly recommended video from Sitecore's Jason St-Cyr covering the exciting changes in Sitecore 10.