SUGCON EUROPE 2025 Belgium – Takeaways part 2

This is a second part of my key takeaways from the recently concluded SUGCON Europe 2025. In my previous blog, I covered the keynotes from Sitecore leadership including the key announcements. In this blog post, I will cover the rest of my key takeaways from the conference.

Key highlight sessions continued

Session: Building the Future: Extending XM Cloud with Marketplace Apps

  • Spyros Misichronis (Marketplace Architect, Sitecore)
  • Liz Nelson (Product Lead of XM Cloud)

Summary: Liz and Spyros gave a high level overview of the Sitecore XM Cloud Marketplace Apps, headlining it as “Extensibility Umbrella” comprising of a Public Portal and Developer Marketplace.

Session key takeaways:

  • Developers can now leverage the CLI, SDK on GitHub to build extensions to integrate with XM Cloud APIs.
  • Developers can embed features into Pages directly or creating standalone tools.
  • Developers can build applications that enhances functionality and streamline workflows
  • Spyros’s live demo of building a sample Marketplace App showcased that we can start leveraging existing the developer tooling right now to build the apps.

Session: Leading in the new era of AI

  • Hans Verbeeck (Technology Manager @ Microsoft)

Summary: Hans session covered the journey of AI to date, highlighting how things have changed from the early days of Scaling Laws that pretty much limited computing capacity. With computing capacity and storage readily available with cloud and data centres, Microsoft has made rapid progress with Copilots, AI platform and Agent Frameworks. He amplified the need to make a choice between Buy or Build in this new era of AI and he was leaning towards “better of Buying” or “consider Buying before Building”.

Session key takeaways

  • When it comes to AI, better of Buying” or “consider Buying before Building”
  • Think of what you can Buy first
  • Copilot is the UX for AI, Copilot is for Humans
  • Agents are for Processes
  • Sitecore Stream is AI-enabled capabilities with Sitecore products, that is underpinned by Brand-aware AI, Copilots & Agents and Agentic Workflows.
  • Sitecore Stream leverage Azure’s scalability, reliability, security, advanced analytics, AI and machine learning
  • Call to action: Read more about Sitecore Stream from official docs

Session: Lessons learned – 2 years after building our first XM Cloud platform

  • Derk Hudepol (Avanade CX Solution lead & Architect and Technology MVP)

Summary: In this session Derk took us through his journey with XM Cloud over the past two years at BDR Thermea. They had started small—with just one site—after building a solid core platform. From there, things really took off as they expanded to support five brands and over ten sites, adding features like eCommerce and search along the way. Derk also shared the lessons learnt and some tips and tricks working with XM cloud.

Session key takeaways

  • Have a solid basis for your CM Cloud solution
  • It is challenging to keep up with a continuously updating platform (XM Cloud)
  • Less is more, XM Cloud provided a lot better adoption compared to XP platform
  • Implement workflows from Day 1 for XM Cloud projects
  • Experience Edge comes with a lot of benefits, but also has challenges around rate limiting, stale content /cache issues and lack of Admin UI
  • You can read more insights on his blog: https://blog.derkhudepol.nl/

Session: Building advanced RAG systems with Sitecore products. Putting AI assistants in Production

  • Sergey Baranov (Technology MVP)

Summary: Sergey’s session was a classic of how to get value from your data leveraging AI. In his well researched and presented session, he demonstrated how to unlock the potential of your data by transforming it into meaningful interactions with advanced Retrieval-Augmented Generation (RAG) systems.

Sergey explored how to design advanced virtual agents using RAG, connecting LLMs with Sitecore tools like CDP, Personalize, and OrderCloud to create personalized, data-driven customer interactions, while also covering optimization, cost-efficiency, and quality monitoring

Session key takeaways

  • Know differences between traditional Virtual Assistants and Naive RAG systems
  • Understand Large Language Models (LLM) limitations when building RAGs, such as limited knowledge, hallucinations, no personalisation
  • Naive RAG versus Advanced RAG: the former improves responses of LLM responses, the latter improves the quality of RAG
  • GPT-40 mini is recommended for RAGs (actually always leverage mini versions in RAGs)

Session: The Future of Design Library for Multi-Site, Multi-Channel Content

  • Liz Nelson (Product Lead of XM Cloud)
  • Eirini Kalampogia (Product Director, Sitecore)

Summary: Liz doesn’t need introduction, but Eirini this was her first presentation. During the session Liz and Eirini shared how a centralized Design Library helps manage components and design across complex multi-site, multi-channel ecosystems. It improves consistency, streamlines workflows, and boosts developer efficiency through integration with client codebases, unified templates, and usage metrics—creating a one-stop hub for scalable, high-quality digital experiences. The session had a live demo that showcased identifying “duplicate” components with new Design Library – a common pain point marketers face today.

Session key takeaways

  • Design system is needed so that we can have consistency across channels, have visibility of components, with faster delivery cycles (and reduced tech debt).
  • Design library gives marketers autonomy they much so need
  • Design at scale is a smarter way to manage components
  • Avoiding fragmentations of components (marketer vs developer), code & no-code means better together
  • Look out for future announcements on Design Library and capabilities available within Sitecore products. Especially leveraging AI component generation, whereby a marketer starts component creation (no-code) and developer later takes AI-generated code and improves it. And marketer plays with it iteratively
  • The vision being “A single platform where devs build structure, marketers bring stories to life and AI scales the creative output across audiences and channels”

Session: Sitecore Stream in Platform DXP

  • Vignesh Vishwanath (Product Manager, Sitecore)

Summary: This was a session by Vignesh where he provided a full overview of the Sitecore Stream module within Sitecore Platform DX. He showcased the available features today as well what is in the roadmap.

Session key takeaways

  • Demonstrated Language translation with Stream Translate (which adds new item version)
  • You can use Stream with Content Structure, Content Auditing (review and suggest improvements)
  • You can use Stream for Image to Alt Text
  • You can use Stream for Component Generation (leveraging prompts)
  • Highly recommend further reading from official Sitecore docs

Session: The joys and challenges of managing thousands of websites in a single Sitecore instance

  • Adam Najmanowicz (Developer)

Summary: Adam need no introduction. His session theme was basically lessons learnt, tips and tricks from the joys and challenges of managing a large number of websites in a single Sitecore instance.

Session key takeaways

  • Don’t run in integrated mode for XM Cloud
  • Servers are “cattle not pets”
  • Go headless node from the very start of XM Cloud projects
  • Reusability of content and settings is super important

Session: Better XM/XP deployments with Kubernetes

  • Peter Procházka (Sitecore Solutions Architect @ Accenture and Technology MVP)

Summary: Pete’s session was mostly lesson learnt and his insights using Kubernetes with Sitecore XM/XP workloads. He showcased Kubernetes and how it enables cloud orchestration and self-healing among other features. This session was more valuable for anyone transitioning from IaaS or PaaS, as Pete shared useful reference architectures.

Session key takeaways

  1. Nice recap of what Traditional vs Cloud-based services workloads look like, IaaS vs CaaS
  2. Local developer workflows and process to follow
  3. Docker architecture, Image registry, Docker compose and override files
  4. Why Kubernetes (with declarative vs imperative use cases) and pros/cons for either approach
  5. DevOps /GitOps and tooling (Flux/Helm)
  6. Reach out to Pete or visit his blog for more details: https://tothecore.sk/

Session: Synchronizing Sitecore XM Cloud Content with Azure DevOps

  • Robbert Hock (Technology MVP)

Summary: This was a fast-paced 15-minute lightning talk in which Robbert Hock(who needs no introduction) shared how his team addressed a common challenge with Sitecore XM Cloud: keeping lower Sitecore XM Cloud environments synchronized with production. I will point you to read more about it on Robbert follow up blog post. Robbert actually demonstrated his solution as well as the Azure DevOps CI/CD pipelines his team had built.

Session: Sitecore’s Marketplace roadmap review & Developer program

  • Krassi Eneva (Senior Product Manager, Sitecore)
  • Justin Vogt (Principle Product Manager, Sitecore)

Summary: Already covered this as part of the Key Product Roadmaps announcements in part one post.

Other sessions attended

Below is a high level summary of other sessions I managed to attend

Session: Our Conversational AI future – Predicting the new web by looking to the past

  • Presented by Rob Coyle (Director of Product Design, Sitecore)

Summary: Rob session was on “a speculative future of Web and CMS” where he demonstrated concepts such as: “Show recommendations based on time to go home”. He explored futuristic use cases such as Content remixes and Agent rules.

Session: Unlocking Inclusivity – Alt-Text So Good, Even Robots Can’t Resist

  • Presented by Anna Pokorna (Ambassador MVP)

Summary: In this session, Anna shared how they leveraged AI to automate the generation of Image alt-text and metadata for their client. Thereby enhancing accessibility, SEO, and maintaining brand tone of voice. The solution was implemented over a year ago, well before Sitecore Stream was announced, highlighting Anna’s company forward-thinking approach as the industry now moves toward similar capabilities.

Session: Full Circle – The Architect of XM Cloud builds an XM Cloud Site (as a partner for the first time)

  • Presented Andy Cohen (Honorary MVP)

Summary: Andy Cohen doesn’t need further introduction — the founding architect of XM Cloud, was sharing his own story and experiences as he built his first project on XM Cloud—this time from a partner perspective. It was an interesting session that was well attended.

Session: Diversity in the Age of AI – Why It Matters More Than Ever?

  • Presented by Daniela Militaru (Senior Sales Engineer, Sitecore)

Summary: Daniela’s session was a group discussion in the format of a fire-side chat where the audience explored the vital role that diverse perspectives play in developing ethical, innovative, and effective AI solutions. Very engaging and great to see so many contributions from the engaged audience in this important AI topic.

Session: A walk-through of XM Cloud Content

Round up from Sitecore community

Below is a summary of related blog posts from our Sitecore community, whereby Sitecore MVPs, marketers and developers alike are sharing their key takeaways as well. Please note this list has not been presented in any particular ordering.

  1. SUGCON EU Excitement! The most interesting announcements from the Sitecore team, by Jeremy Davis: https://blog.jermdavis.dev/posts/2025/sugcon-excitement (accessed on 8th May 2025)
  2. 10 Highlights from SUGCON Europe 2025 in Antwerp, Belgium – by Rob McGovern: https://remarkable.global/insights/sugcon-europe-2025/ (accessed on 8th May 2025)
  3. LinkedIn post by Anna Pokorna summarizing her key takeaways (accessed on 8th May 2025)
  4. Key takeaways by Nick Allen summarized in 3x blog posts: https://www.thinkfreshfreelance.co.uk/blog/post/sugcon-europe-2025-keynote-insights (accessed on 8th May 2025)
  5. SUGCON Europe 2025: One Platform, Bold Future, by Nikhil Kulkarni: https://techienikhil.wordpress.com/2025/04/10/sugcon-europe-2025/ (accessed on 8th May 2025)
  6. Recap: SUGCON Europe 2025 – Synchronizing Sitecore XM Cloud with Azure DevOps, by Robbert Hock: https://www.kayee.nl/2025/04/11/recap-sugcon-europe-2025-synchronizing-sitecore-xm-cloud-with-azure-devops/ (accessed on 8th May 2025)
  7. My SUGCON Europe 2025 highlights, Jeroen Breuer: https://www.jeroenbreuer.nl/blog/my-sugcon-europe-2025-highlights/ (accessed on 8th May 2025)
  8. SPExAI Report Builder: A Winning Sitecore Hackathon submission (announced during SUGNCON Europe 2025): https://www.sitecoregabe.com/2025/04/spexai-report-builder-hackathon.html (accessed on 8th May 2025)
  9. SUGCON Europe 2025 – Recap, by Simon Hauck: https://sitecore.merkle.com/sugcon-recap/ (accessed on 8th May 2025)
  10. Unlocking the Sitecore Marketplace: A Deep Dive from SUGCON Europe 2025, by Akshay Sura: https://konabos.com/blog/unlocking-the-sitecore-marketplace-a-deep-dive-from-sugcon-europe-2025 (accessed on 8th May 2025)
  11. SUGCON Europe 2025 Takeaways, by Martin Miles: https://blog.martinmiles.net/post/sugcon-europe-2025-takeaways (accessed on 8th May 2025)
  12. SUGCON YouTube Channel with SUGCON Europe 2025 sessions, https://www.youtube.com/playlist?list=PLvwdDTmlDsRy5DRArU-nmWNlWED0vHuJS

Conclusion and next steps

Overall, I observed a positive sentiment during this conference. There was positive energy and buzz throughout the event, and this was echoed in various social media posts as well. I have also provided a round up from Sitecore community for your convenience – I hope you get time to read through the blog posts to corroborate my key takeaways and feedback from other attendees. SUGCON Europe is a key event in Sitecore calendar and there is already talk about next year! We are also looking forward to SUGCON ANZ later in the year and Sitecore Symposium is back again in Orlando during November 2025. In the meantime, stay tuned.

SUGCON EUROPE 2025 Belgium – Takeaways part one

Sitecore User Group Conference Europe 2025 has just concluded. It was held over two days in Antwerp city, Belgium last week (3-4 April 2025) and I was one of the lucky attendees. In this blog post, I will be sharing my experiences and key takeaways from the conference.

Firstly, I would like to thank the SUGCON organizers and the Sitecore community for making the event such a success. The choice of venue was spot on! Held in A Room with a ZOO – Antwerp, Belgium, the venue was most accessible via train seamlessly connected to the adjacent Belle Époque international station, which links to the European rail network. And right next to the Antwerp Central Station, the most beautiful station in the world. The food and hospitality were top notch, with variety of Belgian cuisine and desserts on the menu.

Secondly, the event schedule was the best you could have asked for. It catered for both developers and marketers alike, with keynotes from Sitecore leadership team, Sitecore product updates, great Sitecore community contents and demos alike. This year SUGCON also provided an accompanying SUGCON app to help personalise your sessions, keep track schedule and the room switches! Whether it was the usual ad hoc chit chat along corridors with other attendees, over lunch and dinner everyone was engaged. Including a Community Scavenger hunt app powered by Deckle, that kept everyone engaged and exploring the venue with many prizes won by those on top of the leaderboard at close of the event!

Keynote: Powering the Future of Sitecore Together

  • Dave O’Flanagan (CEO, Sitecore)
  • Roger Connolly (CPO, Sitecore)
  • Danny Robinson(CTO, Sitecore)

Keynote from Dave: This was Dave’s 4th SUGCON, and his first as Sitecore CEO. Dave shared stats that highlighted the key role our Sitecore community in success of Sitecore, such as 100+ user groups with over 30k members across 30+ countries, producing over 1k+ developer artefacts. Keynote was held in the “Darwin Room” which had a huge skeleton of a whale provided a great backdrop of his “Adapt” messaging. He reminded us, to echo famous Darwin mantra, that those who “evolve” and “adapt” thrive and survive. We are at what he called “The AI Inflection point”. His key message was he’s very much building Sitecore as an “AI First” company going forward. We will see marketing significantly change, let’s embrace the “The Intelligent DXP” built on a world-class CMS that is underpinned by AI (Sitecore Stream). With AI capabilities already being infused across Sitecore products and as AI agents are becoming more capable, Sitecore can deliver on their promises such as personalisation.

Keynote from Roger: Roger swiftly picked on from where Dave left and his messaging revolved around Content with Context will fuel the AI future. Content is King. Simple. He challenged whether “Is AI the UX of the future?” as we are seeing UX patterns shifting fast. With AI capabilities already being infused across Sitecore products, you can use Sitecore Stream with DXP 10.2+ and XM Cloud to generate content. As well as Contextual AI tagging and Visual Search in Content Hub which solves the metadata and retrieval main issues he sees within Content Hub. He also touched on the changing face of Search in the AI age and showcased the AI-powered A/B/n testing, personalisation and language translation tools available to us now.

Keynote from Danny: Last but not least, Danny shared his vision and roadmap with his key messaging also revolving around Innovating faster with AI. He re-emphasized Dave’s “Intelligent DXP” by showcasing how he is evolving the architecture for the future. He is also very much driven in improving developer experience by enabling developers with tools and SDKs they need. He sees this as ground-up, embedded AI capabilities, federated content, AI-powered site creation and bringing Sitecore Stream to all products. He promised that on June 4th, 2025 he will be making a significant future innovation announcement, so keep an eye on that date.

Key product roadmaps and announcements 

Throughout the conference, we were given key product roadmap announcements.

a) Delivery on the promise, Sitecore Stream set of AI capabilities are available now.

Sitecore Stream in itself is not a product, but a set of AI capabilities that are already being infused across Sitecore products.

  • Available now on DXP 10.2+
  • Available now on XM Cloud
  • Available now for A/B/n testing/personalisation
  • Available now on Content Hub for Contextual AI metadata auto tagging and AI Visual Search

b) Sitecore’s Marketplace & Developer program

We had two separate sessions around Sitecore Marketplace. First session by Liz Nelson (Product Lead of XM Cloud) and Spyros Misichronis (Marketplace Architect, Sitecore) where they showcased the Sitecore XM Cloud Marketplace Apps, which she called an “Extensibility Umbrella” comprising of a Public Portal and Developer Marketplace.

  • Developers can now leverage the CLI, SDK on GitHub to build extensions to integrate with XM Cloud APIs.
  • Developers can embed features into Pages directly or creating standalone tools.
  • Developers can build applications that enhances functionality and streamline workflows

Spyros Misichronis demonstrated a live demo of building a sample Marketplace App leveraging the developer tooling.

The second session was by Krassi Eneva and Justin Vogt (Product Managers from Sitecore) who took a deep dive into more detail and showcased different use cases for Sitecore’s Marketplace and Developer program. Sitecore Marketplace brings the following benefits: faster time to value, flexibility & extensibility and growth & enablement.

  • Contribute to the community or build for your use cases. Sitecore is providing three models for this
    • Custom Single Tenant – Built for a specific organization & available right away
    • Custom Multi Tenant – Build for selected number of organizations & partner managed
    • Public – Available to any Sitecore customer or partner
  • What can you build? This is about what experience can you tailor for your end-users and not what type of apps. Scope is wide and covers creation of the following:
    • apps to the Sitecore portal
    • apps within XM Cloud
    • apps within custom touchpoints such as panels in Page Builder in context of a page, fields editor and panels within sites dashboard
  • Early Access Developer Program – Sitecore’s Marketplace Early Access Program is currently in progress and Sitecore is actively working with the following:
    • Technology Partners
    • Sitecore Partners
    • Internal Sitecore teams
    • Individual community members
  • Is this like an App store we are used to? Similar analogy if you like. You are responsible for testing your own apps, responsible for supporting them in the marketplace. Apps once submitted will undergo review process before approval to Sitecore’s marketplace

This was a major announcement that brings a solution to plug in gaps currently available in XM Cloud as result of moving from Platform DXP. They demonstrated cool apps like copying content between XM Cloud environments, leveraging third party content translations within XM Cloud UI among others. Interesting space to keep an eye on.

c) XM Cloud Content (previously known as “Content Service”)

Alistair Deneys (System Architect, Sitecore) session focused on showcasing the progress made with the Enterprise-grade, innovative headless “CMS” which we now know will be called XM Cloud Content. He set context by giving the brief history and evolution of CMS from the monolith old days, through headless and a look at the future as XM Cloud Content. He also introduced the XMC Content Architecture, diving into domain models covering the following:

  • Content Types define structure
  • Taxonomies define classification
  • Content is stored in Content Items
  • Fragments allow composition. He highlighted the preference for composition over inheritance in the design

He gave a live demonstration of the core set of APIs that underpin XM Cloud Content, walking through various scenarios on how you can build content using API-first.

Some of the key capabilities from XM Cloud Content are:

  • Entity lifecycle – Draft/Published/Archived
  • Worksets – new concept of publishing
  • Content Delivery – GraphQL endpoints includes tenant name. “IsDirectQuery=false” keeps query cleaner. Persisted queries, restrict query tokens to specific persisted queries, schema pinning
  • Fragments with composition over inheritance enables re-usability of set of fields thus a mechanism of delivering “system functionality and extensions”
  • Separate queries for “Pages” content, say, articles, news, etc
  • Query Token security enhancements such as disabling of Introspection
  • Content management capabilities: environment merging, availability & archive dates on content items, more field types, content collections among others
  • Sitecore Change Logs are running from XM Cloud Content

Developers will be excited with XM Cloud Content, although what was demonstrated is still in early development. Watch this space and future announcements.

d) Modernizing the JSS SDK and Starter Kits for XM Cloud

Liz Nelson (Product Lead of XM Cloud) and Christian Hahn (Technical Product Manager) unveiled groundbreaking updates to the JSS SDK and starter kits, designed to simplify workflows, eliminate legacy complexity, and enhance flexibility.

Welcome the “new” one. In summary, in the new solution

  • Split responsibilities
  • Only get what you really need
  • Reduce complexities and sizes

Some of key improvements shared in the session

  • disk size of the starter kit site folder reduced from 8MB down to 600KB
  • almost halving the bundle size
  • overall improvements in First Contentful Paint FCP metric of 200 milliseconds
  • editorial performance gains, with about 10x as many UI components can be added to an editable page

The SDK and documentation are available now, and currently in “Beta” but confident developers can start building new projects. Watch this space for announcements on the final releases which will be soon.

e) June 4th, 2025 – Future Innovation Announcement

Look out for an announcement from Danny Robinson(CTO, Sitecore) in June 4th

f) November 3-5, 2025 – Sitecore Symposium Orlando 2025

Sitecore Symposium 2025 is back and will be held at Walt Disney World Dolphin Resort, Orlando, the week of November 3, 2025. Ready to start your submission and step into the spotlight at Sitecore Symposium 2025 in Orlando, they are currently calling for speakers.

Key highlight sessions

With a total of about forty (40) sessions, it is impossible to attend them all. Below are some of my key highlight sessions that I attended. I will complete the list in a follow up blog post.

Session: XM/XP to XM Cloud Best Practices – Free Workshop

Summary: This was an early bird free workshop sponsored by Brimit which covered the best practices, decisions and considerations when migrating to XM Cloud. If you thinking of making the move, this session amplified what a migration path could look like. Sitecore provides XM/XP Migration Navigator as well and you can reach out directly to them.

Session: Optimizing your Content Hub development – Free Workshop

Summary: Another early bird free workshop sponsored by Brimit highlighting the productivity gains by leveraging Content Hub CLI in your workloads. A live CLI demo for developers and key takeaways in terms of best practices and optimising Content Hub DevOps journey.

Conclusion and Next steps

I observed a positive sentiment overall during the conference. There was positive energy and buzz throughout, and this was echoed in various social media posts as well. I look forward to reading and reviewing more feedback from other attendees. SUGCON Europe is a key event in our calendar and there is already talk about next year! We are also looking forward to SUGCON ANZ later in the year and Sitecore Symposium back again in Orlando during November 2025, with call for speakers now open.

You can continue with part 2 where I am covering more key highlight sessions.

Please give us any feedback or comments.

My Sitecore contributions in 2024

It is that time of the year once again, and the Sitecore MVP 2025 applications are open.

Below is a summary of my contributions for 2024:

Content contributions

This year I mostly created content within Content Hub, Sitecore Experience Edge and Sitecore Personalize space. This is where I felt there were gaps based on industrial client work I have done this year. I believe I have produced content that meets expectations in terms of quality, quantity, and visibility and more importantly, adds value to our community. This has been through blog posts, code sharing via GitHub, YouTube content, Product Feedback via Gartner Peer Reviews among other social channels:

Gartner Peer Reviews:

Sitecore Hackathon 2024:

Code and architectural artifacts:

In person events

I’m a regular attendee and an active member of Sitecore User Group London. Include a chance to attend the in person event post Symposium hosted by Sitecore in their London Paddington office.

Engagement

I have continued online and offline conversations and driven Sitecore community engagement throughout 2024 in order to amplify the content I have created.

Next steps

For 2025, I look forward keeping up producing more valuable content in terms of quality, quantity, and visibility to our Sitecore community. I will be putting myself forward for public speaking events throughout the calendar year. I intent to continue identifying any gaps and filling them, providing product feedback, improvements, and references

Stay tuned and best of luck with those submitting the Sitecore MVP 2025 applications.

Content Hub tips & tricks: How to securely share your DAM assets with external users by leveraging collections – part 2

Background

On the previous post, I looked at how to securely share your DAM assets externally by leveraging collections. Among other things, we covered four options you can use to secure the asset collections. One of the options involved defining a permissions policies on M.Asset (model for your assets) based on M.Collection (model for your asset collections). However, this option seems to come with some nuances and will not work by default. I will carry on the conversation to demonstrate how to make this option to work.

Why doesn’t the policy definition work?

In simple terms, the above policy states that we would like to allow all assets belonging to our collection named “External” to be downloadable. Simple. But it doesn’t work.

But why?

This is because the “Inherits security” setting for the CollectionToAsset relation is turned off by default. In other words, this means security related metadata (from the parents towards the children) can not be inherited while this setting is turned off.

M.Asset is a child of M.Collection (as shown below in the schema details for M.Asset definition). To access M.Asset schema page, click on Manage -> Schema -> then search for M.Asset

How do I turn on “Inherits security” for the CollectionToAsset relation?

Short answer is you can’t modify this by yourself. You will need support from Sitecore Technical Support to make this change for you. Please note CollectionToAsset is a system relation and is locked down to Super users as well.

You can raise Sitecore Support Cases using the Support portal and request the team to enable the “Inherits security” on CollectionToAsset on your environments. This should be actioned swiftly after which your policy definitions can start to work as expected.

Next steps

In this blog post, we have looked at how to make user group permissions policies on M.Asset based on M.Collection work. We looked at nuances that make this not to work by default and how to resolve and get it working. I hope you find this useful for your similar use cases.

Stay tuned and please give us any feedback or comments.

Sitecore Zero-downtime deployments – Part 4

Sitecore PaaS/AKS blue-green deployments

With modern and mature DevOps, we all want smooth, sleek and painless automated deployments with zero-downtime. Sitecore deployments are no exception. Have you embraced zero-downtime deployments? This is not a new topic. If you look around Sitecore community, you see an odd question popping here and there regarding this topic.

The journey towards achieving zero-downtime deployments for any application in fact starts with your code base. So, in this series of blog posts, we will refresh ourselves on concepts like “Code Freeze” and the CI/CD process before deep diving into implementing Sitecore zero-downtime deployments.

Sitecore XP PaaS Blue-Green architecture

Sitecore XP PaaS reference architecture

The infographic above shows a typical Azure PaaS architecture for Sitecore XP scaled topology. In summary we have:

  • our Sitecore XP application roles such as CM, CD, ID among others
  • these role have access to Sitecore databases (master, web, core among others)
  • access to rest of the services such as Azure Key Vault, Azure Redis cache, App Insights, Azure Search among others

You will notice in this architecture, we have Blue-Web and Green-Web databases, which are corresponding to the BLUE-GREEN deployment slots for the CD App Service. We need separate web databases to enable us achieve content-safe deployments

The CM App Service also has BLUE-GREEN deployment slots specifically for code deployment, but with a shared master database. There is no compelling reason to have BLUE-GREEN master databases purely on basis of complexity introduced by such architecture (although it is not impossible to implement if you prefer this approach).

The rest of our XP scaled topology resources are shared

The Azure DevOps organisation typically will have access to run the CI/CD pipelines, is also included in the architecture.

How to manage settings

App Service Settings section can be leveraged to manage your Sitecore configuration settings including Sitecore connections Strings

Sitecore XP PaaS CI/CD process summary

Sitecore XP PaaS CI/CD process

Required steps:

  1. Tigger CD process
  2. Make copy of your web-db – this is for content safe deployment. Both CM and BLUE CD pointing to original web-db at this point. BLUE CD still in production with our live users accessing it
  3. Now deploy your new version to both CM instance and GREEN CD Staging slot instance – pointing them to use copy of web-db. Perform content deployment as usual, publish, rebuild the Sitecore indexes and perform any tests. This will not affect your BLUE CD at this stage.
  4. Once happy with deployment, then Swap CD production and staging slots. The GREEN CD with our new version is now production and our live users accessing it now. Zero down time achieved! Our previous version is still running in BLUE CD. If we have issues, we swap again to roll back.

Some notes:

 This example doesn’t have BLUE-GREEN for the CM instance, as I want to keep it simple – This though means your content editors will have to wait for deployment to finish to use the CM. If you really need CM zero down time, then you need to deploy CM BLUE-GREEN deployment slots as well. Alternatively, you can keep the deployment time to CM to a minimum and avoid BLUE-GREEN

You can be more also be creative with your Sitecore templates changes such that your changes are always backward compatible between successive releases  (e.g. don’t delete fields immediately, mark them as obsolete) This means you can safely rollback your changes without breaking the application

Sitecore XP AKS Blue-Green architecture

Sitecore using Containers makes use of Azure Kubernetes Service. This infographics shows a very simplified AKS blue-green strategy allows us to achieve zero downtime deployments.

Kubernetes Blue-Green strategy

How does it work?

  1. You will define a blue deployment for v1 and apply it to your desired state of your cluster.
  2. When version 2 comes along, you define a green deployment, apply it to your cluster, test and validate it without affecting blue deployment
  3. You then gradually replace V1 with V2
  4. Version 1 can be deleted if no longer needed.

Below we have a typical Sitcore XP Azure Kubernetes Service architecture for Sitecore XP scaled topology – the AKS cluster containing various pods running our containers.

Sitecore XP AKS Blue-Green reference architecture

You can see the scaled out Sitecore XP application roles running as individual Pods within this AKS cluster backed by a Windows Node Pool.

We also have access to Sitecore databases as well as other services such as Azure Key Vault, Azure Redis cache, App Insights among others.

I am showing our Azure DevOps organisations which will typically have access to run the CI/CD pipelines

Similar to the Azure PaaS architecture, AKS zero downtime deployments will make use of BLUE-GREEN deployment strategy for CD or CM instance

AKS Zero downtime deployments process

How do we do that? we don’t need to provision a separate cluster for GREEN environment. Instead, we define an additional GREEN deployment with its corresponding service and then label it accordingly, alongside our BLUE deployment.

For content-safe deployments, we will also be pointing to a copy of web database (Green) as shown.

Once we have tested and are happy with our new GREEN deployment, we switch traffic or routing to point to GREEN. We do this by updating our Ingress controller specification

Sitecore AKS Blue-Green (Green deployment)

In the above infographic, you can see now our end-users can access V2 in the GREEN deployment

BLUE deployment is on stand-by in case of roll back. And can be deleted if no longer required.

Note as previously discussed in PaaS deployments, you can implement BLUE-GREEN for the CM if required

Sitecore XP AKS CI/CD process

Sitecore XP AKS CI/CD process

Steps summary

  1. Trigger release pipeline process
  2. Make copy of your web-db – this is for content safe deployment. Both CM and BLUE CD pointing to web-db at this point. BLUE CD still in production with live users accessing it
  3. Apply your green deployment desired state onto the cluster. This creates the green pods with new version of docker images, and our Sitecore deployment including content deployment. This will use the copy of web-db we created earlier.  Publish and Rebuild indexes as usual and test and verify the deployment
  4. Once happy with deployment, Update traffic routing in Ingress Controller and live users can now access our new Sitecore version. In event of roll-back, update traffic routing in Ingress controller. If BLUE deployment no longer needed, clean it up to save on resources

Next steps

An this is a wrap. This post concludes this series of blog posts where we looked into implementing Sitecore Zero Downtime deployments. I hope you found this useful and can start your own journey towards achieving Zero Downtime deployments with your Sitecore workloads. If you have any comments or queries, please leave me a comment at the end of this post.

Sitecore Zero-downtime deployments – Part 3

Blue-Green Deployments

With modern and mature DevOps, we all want smooth, sleek and painless automated deployments with zero-downtime. Sitecore deployments are no exception. Have you embraced zero-downtime deployments? This is not a new topic. If you look around Sitecore community, you see an odd question popping here and there regarding this topic.

The journey towards achieving zero-downtime deployments for any application in fact starts with your code base. So, in this series of blog posts, we will refresh ourselves on concepts like “Code Freeze” and the CI/CD process before deep diving into implementing Sitecore zero-downtime deployments.

Blue-Green deployments architecture

Blue-green deployments strategy

In software engineering, blue-green deployment is a method of installing changes to a web, app, or database server by swapping alternating production and staging servers

Wikipedia

Key Concepts

In its purest form,  true BLUE/GREEN deployments means that we need two separate but identical environments, one is live (BLUE) and the other is on stand-by (GREEN). When you have  new version of your application, you deploy to the staging environment (GREEN) , test it without affecting BLUE. When you are happy with this new version, you can then swap it to be LIVE instance.

However, in practice, it doesn’t always make sense to run a copy of every resource. Furthermore, this may introduce some complexity to the process.

This is why we now have some shared resources as you can see in the infographic above, while others belong to BLUE or GREEN environment.

As part of this architecture, we need some way of switching or routing incoming traffic between the two environments.

Blue-Green deployment strategy effectively enables us to achieve zero down time deployments. This is because your users will not notice any downtime during deployments.

CI/CD process for Blue-Green deployments

CI/CD process for Blue-Green deployments

On the top part of the infographic above, – BLUE is currently production environment and our users accessing this environment. When we have, a new version of our application, it is deployed to GREEN environment, without affecting our users.

On the bottom part of the infographic above, – now GREEN is the production environment and our users are accessing this environment.  This leaves the BLUE environment available for us to deploy the next version of our application

We deploy to BLUE and GREEN in turns, this achieving zero downtime deployments. The process repeats in each deployment cycle.

Some benefits of Blue-Green strategy

If you haven’t already adopted the cloud for your Sitecore workloads – be it PaaS or Containers, then perhaps you need to start thinking about this seriously as there are benefits you will get.

“Blue-green deployments made easier with the cloud.”

fact

The cloud provides tooling you need to:

  • Automate your provisioning and tearing down of environments
  • Automate starting or stopping of services
  • Kubernetes simplifies container orchestration for us,  the Azure Kubernetes Service (AKS) provide a Control Plane for free
  • The flexibility and cost reductions the cloud offers makes blue-green deployments within everyone’s reach at this time and age, please embrace them.

Next steps

Hopefully, these blog post help you understand key concepts about BLUE-GREEN deployments.

In the next blog post in this series, we will look at implementing Sitecore Zero Downtime deployments.

Sitecore Zero-downtime deployments – Part 2

Sitecore Container based CI/CD Flow

With modern and mature DevOps, we all want smooth, sleek and painless automated deployments with zero-downtime. Sitecore deployments are no exception. Have you embraced zero-downtime deployments? This is not a new topic. If you look around Sitecore community, you see an odd question popping here and there regarding this topic.

The journey towards achieving zero-downtime deployments for any application in fact starts with your code base. So, in this series of blog posts, we will refresh ourselves on concepts like “Code Freeze” and the CI/CD process before deep diving into implementing Sitecore zero-downtime deployments.

Sitecore container based CI/CD flow

Sitecore Deployment options

Sitecore can be deployed to the cloud using IaaS, PaaS or Containers.  Microsoft Azure cloud  is preferred, although you can deploy to other providers like AWS

  • IaaS makes use of Virtual Machines
  • PaaS makes use of Azure App Service to run Sitecore web apps
  • Containers makes use of Azure Kubernetes Service (AKS)

How working with containers is different

When working outside of containers, you would typically build your application and then push it directly to the IaaS or PaaS instances hosting them. Using Containers changes this process slightly. The infographic below captures this process in detail

Sitecore containers CI/CD process summary

Explanation of the CI/CD process

  1. So developers make changes to the codebase.
  2. They then commit their changes into the repository, in this case stored in GitHub
  3. An Azure DevOps Pipeline monitors this repository and triggers a new image build each time there is a commit into the repo
  4. These images are built by Azure DevOps and the new image version is pushed into an Azure Container Registry (ACR) instance
  5. We have Other triggers for a base images that might have changed. For example, an update to the base Windows image or Sitecore image that can also trigger a new image build to occur. This is where the CI part of the process ends. We now have our new images built and available for deployment.
  6. So this is where the CD element starts. A release element is going to execute to start the deployment process.
  7. The first thing the CD element does is to push the new version of the k8s Specs into AKS, including pinning the deployments to the unique tag of the new images.
  8. AKS will now connect to the ACR instance to pull down these new images and build new deployments based on them.
  9. Of course any Sitecore deployment isn’t complete without a push of the content changes. Once the specs have been deployed the content is then also pushed to the CM instance running in AKS and a publish is executed.
  10. Once this has happened your end users can now browse the site and interact with the new containers running in AKS.

Hopefully, these blog post help you understand how to manage Sitecore Container based CI/CD process going forward. If you still struggling, engage your digital partners to look for long term solutions.

Next steps

In the next blog post in this series, we will look at BLUE-GREEN deployments and how to leverage this strategy to implement Sitecore Zero Downtime deployments.

Sitecore Zero-downtime deployments – Part 1

Why Zero-downtime deployments?

With modern and mature DevOps, we all want smooth, sleek and painless automated deployments with zero-downtime. Sitecore deployments are no exception. Have you embraced zero-downtime deployments? This is not a new topic. If you look around Sitecore community, you see an odd question popping here and there regarding this topic.

The journey towards achieving zero-downtime deployments for any application in fact starts with your code base. So, in this series of blog posts, we will refresh ourselves on concepts like “Code Freeze” and the CI/CD process before deep diving into implementing Sitecore zero-downtime deployments.

Code freeze? “Thing of the past”

A Code freeze is an adopted milestone from the Waterfall days.

“No changes whatsoever are permitted to a portion or the entirety of the program’s source code. Particularly in large software systems, any change to the source code may have unintended consequences, potentially introducing new bugs”

Wikipedia

Typical Code Freeze Challenges:

  • Complex Sitecore solution with several dependencies
  • Very large code bases possibly with legacy code
  • Multiple teams from multiple geographies
  • Complex and painful code merges
  • Dedicated QA testing window
  • Multiple languages and frameworks

All these challenges may mean you introduce some “code freeze” when preparing for your deployments. Naturally, this is not where you want to be. If not managed properly, this becomes a blocker, a barrier from a true CI/CD process and your journey to your Sitecore zero down time deployments. Let’s refresh ourselves on some tips to help address some of the issues.

Solving Code Freeze Challenges:

  • Adopt a code branching strategy
  • Adopt “clean code” principles
  • Adopt microservices architecture
  • Embrace modern CI/CD processes
  • Embrace containers

Git Branching Strategy

Git Branching Strategy
  • use of feature branches off the main branch – this will isolate work in progress from completed work, avoiding “code freezes” sessions when preparing for a release. Always use Pull Requests to merge feature branch into main branch. Make use of descriptive naming of your branches as best practice
  • use of release branches off main branch when close to your release, at end of your sprint or cycle. Make use of bugfix branches for any bugs fixes in your release and merge them back to release branch
  • There are other branching options available, such as the Release flow branching strategy

Embracing Microservices

Diagram of a CI/CD monolith
CI/CD monolith v Microservices – courtesy of Microsoft Docs

Let us now look how Microservices make life easier.  A traditional monolithic app on the left, there is a single build pipeline whose output is the application executable. All development work feeds into this pipeline. If team B break, the whole thing breaks. In contrast with microservices philosophy on the right, there should never be a long release train where every team has to get in line. The team that builds service “A” can release an update at any time, without waiting for changes in service “B” to be merged, tested, and deployed.

Next steps

Hopefully, these tips help you address “Code Freeze” problem going forward. If you still struggling, engage your digital partners to look for long term solutions.

In the next blog post in this series, we will look at Sitecore CI/CD processes to support Sitecore Zero Downtime deployments.

Using Facebook Login with Sitecore Identity 9.3

Facebook for developers

Today we will walk through steps about extending your Sitecore Identity Server 9.3 to work with Facebook sub-provider. We will be creating a Sitecore Host plugin, which you should be familiar if your have read my previous blog on Sitecore Host Plugins.

Why Facebook Logins?

The scenario is that you would like your front door visitor to your Sitecore based website to be able to authenticate using their Facebook logins.

The good news is that Sitecore Identity Server can be configured as a federation gateway which means we can leverage Facebook as external provider with little effort.

What steps are needed?

  1. Register your Sitecore Application on the Facebook For Developers Portal. This process is to get an Application Identifier and Application Secret, that are needed in your Sitecore Instance. I will walk with you on how to do this process.
  2. Create and deploy a Sitecore Host Plugin that extends Sitecore Identity Server to support Facebook Logins. I will walk with you on how to create this plugin, with full access to the source code in my GitHub Repository

Register your Sitecore Application

Head to Facebook for Developers portal. On the portal, follow the link to create a new application. This will require you to specify the application display name after which, you will get a dashboard similar to this below.

Application Dashboard

Ensure you configure a redirect URL for your Sitecore Identity Server instance and save your changes. This will be of the format below:

https://Your_SI_Base_Url/signin-facebook

For example, my SI redirect URL is https://sc93identityserver.dev.local/signin-facebook

Creating Sitecore Host Plugin for Facebook Login

Sitecore Host Facebook Plugin

I have previously blogged on how to create a Visual Studio project for your Sitecore Host plugin. I will recommend you have a read before proceeding further.

We need to reference the Microsoft.AspNetCore.Authentication.Facebook package needed for Facebook login functionality for ASP.NET core applications. This is it.

Facebook AppId and AppSecret configuration

Within our Sitecore Host Plugin configuration file, we will define two properties as follows:

AppId – This will be mapped to the Application Identifier available from Facebook for Developers portal

AppSecret – This will be mapped to the Application secret availabe form Facebook for Developer portal

Provide definition of ConfigureServices for the Plugin

As per Sitecore Host Plugin requirements, we need to configure services for the subprovider according to the instructions for this provider, and specify the SignInScheme  setting as idsrv.external

To use authentication middleware, we must have an object of the type Microsoft.AspNetCore.Authentication.AuthenticationBuilder

To initialise this object, we must use 

new Microsoft.AspNetCore.Authentication.AuthenticationBuilder(services) 

instead of services.AddAuthentication()

Notice how we use AuthenticationBuilder(services).AddFacebook() pipeline below, which is available to us via the Microsoft.AspNetCore.Authentication.Facebook package we referenced earlier.

Facebook Plugin – ConfigureServices code listing

Facebook Plugin in Action

After successful deployment of this plugin to your instance of Sitecore Identity server, you should see the Sitecore Identity login screen below.

Please note you will need to re-start your IIS to pick the plugin changes.

Source code

This is it. You now have a working Facebook Plugin that you can deploy to your Sitecore Identity Server 9.3 instance. The full source code for this plugin is available on my public GitHub Repository.