SUGCON 2019 Key Takeaways

sug-banner-2

Last Thursday and Friday it was Sitecore’s European User Group Conference (SUGCON) in London attended by over 600 Sitecore enthusiasts. It’s an great opportunity to learn about the latest Sitecore innovations, get some new ideas and to catch-up with others in the Sitecore Community.

As always it was a busy few days packed with lots of new information and the usual clashing sessions. In this post I’ve tried to summarise the key takeaways and thoughts from the sessions I attended. You should be able to view most of the sessions on YouTube once they are uploaded and you can download a PDF of most of the presentations here so I’ve not included tons of slides.

Day 1

SUGCON Kicked Day 1 kicked off with Sitecore CEO Mark Frost welcoming everyone and then handing over to Donovan Brown from Microsoft to talk about DevOps.

Donovan Brown – DevOps with Microsoft Azure

IMG_9772

Having recently started using Microsofts Azure DevOps Product I was interested to see what Donovan Brown had to say. His talk was amusing and very informative.

“DevOps is the union of people, processes and products to enable continuous delivery of value to our end users.”

  • Azure DevOps is very powerful and more than just CI and CD: Azure Boards, Azure Pipelines, Azure Repos, Azure Test Plans, Azure Artefacts
  • You don’t need to use the whole suite of products as Azure DevOps has many integrations.
  • Azure DevOps Runs any app on any platform and in any language.
  • It’s free for up to 5 users and very cheap for larger teams – around £5 per person a month.

Kieran Marron & Stephen Pope – Sitecore Host: Architecture & Plugin Design

IMG_9787

Kieran Marron & Stephen Pope took us through the evolution of what has now become Sitecore Host. This is something I’ve yet to experiment with and I was keen to learn more.

  • Sitecore Host is a pluggable framework built for improving extensibility on all services by using the same approach for each
  • Identity Server, Universal Tracker and Horizon in Sitecore 9.1 already run on Siteore Host and the publishing service is moving to Sitecore Host in v5
  • Sitecore Host provides: Host Base, IOC, Config, Commands, Diagnostics, Unified File System, Run as Service and Dynamic Plugin Loading.
  • Host Plugins need to be set up with a certain structure to be loaded correctly
  • Use the Sitecore.Framework.Runtime.Build NuGet package to build plugins and ensure they are structure correctly with the right manifest format.
  • NEVER Build your own Host.

Jason Wilkerson – Sitecore Cortex: From Introduction to Extension

IMG_9788

Next up fellow MVP Jason Wilkerson presented on some more new Goodies in Sitecore 9.1: Cortex (Sitecore’s new Machine Learning Brain). I’ve heard a lot about Cortex but didn’t really have a great understanding of how it works and would like to use it on an upcoming project. This was a really informative talk explaining what Cortex does out of the box and using movie suggestions to demonstrate how the Cortex Processing Engine works.

  • Out of the box Cortex provides: Content Tagging &  Personalisation Suggestions
  • It’s pretty simple to set up content tagging by just registering for an Open Calis API key and updating the Sitecore Config with a patch file
  • Personalisation Suggestions are shown as new segments in Content Tests which can be applied
  • The Cortex Processing Engine takes data from an data source such as xDB, Sitecore or a CRM and then processes it and pushes it into a Target Data Store.
  • The Cortex Processing Engine is made up of 3 elements: Message handlers (receive tasks), Agents (task processing) and Workers (data projection/model training)
  • Cortex uses a task chain to break down a complex job into smaller elements to process data, the tasks are executed by the Agents
  • Different Machine Learning platforms can be integrated into the processing engine depending on your requirements.

Nick Wesselman – Helix Mutation & Changing Habitat

IMG_9807

I’ve been keeping a close eye on Helix developments and with the recent Request for Comments on Github around common criticisms/issues with Helix I was interested to see what Nick Wesselman had to say about the direction of Helix (+ some Helix Memes) and I wasn’t disappointed. I had a chat with Nick at the end about refactoring Legacy solutions to Helix as well and it’s great to know further guidance is coming.

  • Online Helix Digital training is coming in June. This will make it easier for Helix training to be carried out remotely.
  • Multiple Helix implementation examples are being worked on including: Simple, Franchise Multisite, Corporate Multisite, Legacy and more.
  • Simpler documentation with easy to understand English is on it’s way
  • Tooling is being improved and the SIF structure will be used for config.
  • Get involved on Slack (#helix-habitat), Twitter and GitHub.
  • Bonus: Visual Studio 2019 has support for Solution Filters which should make it quicker to open Helix Solutions in VS (thanks to George Chang for this tip).

Criss Titschinger – PASS It On: Learnings from a Year of Sitecore on Azure

IMG_9823

This was a really great session. Criss shared his experience of running Sitecore on Azure PaaS for the past year. There were some great tips which I’ll be looking out for given we’ve just started using Azure.

  • Mongo DB is an challenge on Azure
  • With Sitecore 9 there is a lot more roles required and the architecture is quite a bit more complicated than it was with 8.x.
  • Blue/Green slots should be used for CD Web Apps (one active / one cold)
  •  CD Servers can take a while to warm up. There are solutions to this though.
  • Deployments are generally significantly slower to Azure vs On-Prem
  • Considerations should be made for DTUs or Elastic Pools.
  •  Each Web App has a Kudu Site – Kudu can be used to display environment details, debug console and process explorer.
  • Considerations should be made for Auto-Scaling or Load Balanced web apps. Cold starts must be prevented if using Auto-Scaling. Pre-compiled MVC views should be used to help with performance.
  • If budget allows then increase App and Database Resources
  • To debug troubleshooting instance-specific problems use the ARRAffinity Cookie . Use Browser Plugins like Edit this cookie to switch between instances.
  • Keep an eye on MS spinning up/down Web Apps and use App Insights to monitor things carefully.
  • Exclude unneeded fields from in ContentSearch configs to reduce data usage and prevent building of indexes hanging. Consider Solr for local dev to save costs.
  • When upgrading to 9.0.1/9.1 consider additional assemblies required and resource increases for Database for SQL instead of Mongo. Data Migration tool can take a few days to run if there is lots of Data. 9.x will cost more so budget for this.
  • Sitecore 8.2 published topology is ok but 9.0 seems too low. Web Apps really need to be on premium service plan.

Dinner & Awards Ceremonies

IMG_9854

And with that it was time for Dinner and then the Sitecore Hackathon and Sitecore MVP awards ceremony. I was very privileged to pick up my second technology MVP award this year and surprisingly there were less MVPs this year than last year. Then it was time for a few beers and catching up with Friends and other Sitecorians.

Day 2

Pete Navarra – The Wheels on the ReBus go queue ,queue ,queue

IMG_9870
My second day at SUGCON began with Pete’s entertaining talk on the Sitecore Message Bus. Pete split the audience into 4 groups and got volunteers up front to act as message producers, queues and senders to send different coloured balls to to their group. However each sender had a different approach to sending the balls. This was a really simple explanation of how a message bus works. Pete then explained in detail about how Sitecore’s implementation works using a custom EmailBounceMessage implementation for bounced emails.

  • Sitecore uses Rebus.NET for it’s Message Bus. It is an vanilla Rebus implementation with a wrapper around it. Rebus by default uses SQL Server to store it’s data.
  • It is built for scale and is another move away from the existing Monolithic architecture to MicroService based.
  • Other Message Bus providers could be used if required.
  • Producers (or clients) create the message data and route it to a specific queue. Consumers (or handlers) processes the message data.
  • There are 3 key parts to the message bus: Service Bus, Message Queue, Services
  • EXM already uses the Sitecore Message Bus. Other Sitecore services still use the old EventQueue which is essentially an Message Bus implementation.
  • The example Pete showed had the following elements: Service Bus (EmailBounceMessageBus), Message/Model (EmailBounceMessage), Producer (WebhookController), Handler (EmailBounceMessageHandler), Configuration Initialisation (IOC)

Chris Nash & Niels Kuhnel – Automated Personalization Measurement

Chris and Neils took us through how they built an tool to measure the effectiveness of personalization by counting the click-throughs and impressions off all personalised components and Power BI to display the data.

IMG_9897

  • An component wrapper was created which automatically detects and wraps each personalised component.
  • The wrapper detects clicks and impressions using JavaScript and stores them in an SQL database.
  • The page tracker and xConnect Model were used to process the clicks and impressions
  • This allows understanding of what people saw, how they reacted and what they did.
  • The Power BI dashboards looked very comprehensive, provided overviews and summaries as well as allowing drilling down into the data.
  • This is not available currently or open source as is used by their clients.

Jean-François L’Heureux – 16 Tools for Your Sitecore Tool Belt

Jean-Francois took us though a number of well known and not so well know tools which are useful for any Sitecore Developer.

IMG_9914

  • SIM was the first tool discussed. I’ve been using it for a while to install Sitecore locally but I didn’t realise all the powerful options it now has, such as opening key folders and files quickly, config viewing/editing, log file viewing, database and IIS management tasks and much more. I’d urge you to take another look.
  • SPE was listed as number 8 and that should be used in every Sitecore Site in my opinion. It has so many unexpected uses.
  • Two other fairly unknown that I’ve found really useful as a Sitecore Developer are number 7 – Sitecore Icon Search and number 11) Sitecore Extensions.
  • Lastly number 15 Pipeline.Debug and number 16 Universal Debugger were new ones on me but I can see how they would be useful for future projects.
  • You can find the full list on Jeff’s blog here.
  • Also if you are a front end Developer who works with Sitecore then why not get involved with the Sitecore Front-end Friends Community.

Kamruz Jaman – Offline Tracking with the Universal Tracker

Next up was long standing MVP Kamruz from Konobos talking about the new Universal Tracker and how they have been using RFID cards to track attendees at the conference. Akshay (who wrote a lot of the code for the presentation) couldn’t present as he is one of the organisers of SUGCON so a virtual Akshay presented instead which was kinda amusing. The session was really impressive and I can see how I might use Universal Tracker for future projects.
IMG_9920

  • Universal Tracker allows you to collect analytics data from any source.
  • XConnect and Universal Tracker are not the same thing. XConnect is for storing interactions that have already happened and UT is for Live interactions. XConnect will also not scale well for this type of scenario.
  • Each attendee has an lanyard card which has an RFID chip in it. There were 4 types of card (animals) – picked at random.
  • There were 2 scanners over the main conference room door which scanned each attendees card when they passed through the doors to each session.
  • The Azure IoT Hub was used to collect the data and then a request was sent to the Universal Tracker Rest endpoint where the data is processed and eventually stored in an XConnect collection.
  • Universal Tracker runs on Sitecore Host and pipelines are used to pre-filter, enrich and post-filter the data.
  • There is an Universal Tracker Client SDK which is open source and can be used to integrate with Universal Tracker.
  • There are some gotchas such as: needing to enable anonymous contact indexing, remove WebVisitFilter InteractionFilter (or you won’t get none web data tracked), there is a Disconnect of data between Universal Tracker and Sitecore Channels/Goals etc.
  • There is no Live Tracking, no Manual Processing task and you cannot search for interactions.

Adam Weber & Kam Figy – We Released JSS and you’ll never guess what happened next

Kam and Adam have made a habit of announcing and demoing new features of JSS at SUGCON and Symposium and this session was no different. There are a whole bunch of cool new features coming in the next release.

IMG_9946

  • Support for SXA is coming in the next JSS release with basic support for SXA Site management, Page and Partial designs and all the features of JSS.
  • Support for Sitecore Forms using React is in the next JSS release.
  • Sitecore Forms with JSS works fully client site for multistep and the validations.
  • JSS Rendering host is coming soon and will give you more control over remote server-side rendering with Sitecore JSS.
  • Node is not needed on the Sitecore Server and JSS App artefacts don’t need to be deployed to Sitecore Server.
  • There is no official release date yet for these features but I’m sure you won’t have to wait long.

Pieter Brinkman – Sitecore 9.2 The Hidden Bits

It was time to take to our seats for the final time this SUGCON and find out about the new features and functions of Sitecore 9.2. Great to see Customer Satisfaction, Platform Performance, Community Requests and Legacy Debt are a focus.
IMG_9954

  • There will be a new installer called SIA which is an GUI/wrapper for SIF. The first release will be XPO only and will simplify the install process.
  • Active personalisation report will be improved to show all the data marketeers want to see in a single view
  • There will be an API to allow xDB data to be managed to assist with GDPR requirements and allow for the size and build time of xDB to be reduced.
  • Robot detection will be improved to identify new malicious bots. Personalisation rule triggering has been improved. Analytics data filtering has been removed to filter out bot traffic.
  • Rainbow Serialisation (the YAML format used by Unicorn) is now used by default for Sitecore Items in 9.2.
  •  Search Improvements: New Sitecore Search Role, Lucene is obsolete and there is better control over indexing in Azure Search.
  • Tracker Improvements: Reduced number of connections to xConnect. Session end improvements, server role assignments.
  • Key areas of focus: Excitement, Efficiency, Comfort.
  • Sitecore 9.2 will be released at some point this quarter.

It’s a Wrap

sug-close-banner

And with that it was the end of another great SUGCON. I learnt a lot and came away with a lot of new ideas. Thanks to Sitecore and all the organisers and speakers for doing such an awesome Job. Bring on SUGCON 2020!.

Published by

Adam Seabridge

I am a Freelance Sitecore Developer and 7x Sitecore Technology MVP (2024 - 2018). I have been working with Sitecore since 2013. You can reach me on twitter @billyjava or comment below if you have any questions or feedback.

Leave a Reply

Your email address will not be published. Required fields are marked *