Konabos

Xperience by Kentico – release process considerations and deployment on the SaaS environment

Lukasz Skowroński - Senior Solutions Architect

23 Aug 2024

Share on social media

Xperience by Kentico (XbK) is a new product from Kentico that is a fully .NetCore-based application which can be deployed on-premise or on the SaaS environment provided and managed by Kentico. In this article, I will focus on the second case, and I will share with you some of the details that you should be aware of when you select that path. 

Overview and a few facts 

Kentico usually provides well-prepared documentation, examples and videos sharing details of the product that you are interested in. XbK documentation is not different – you will find there all of the info that you may need to run your first SaaS deployment.  

What is also nice about it is that Kentico provides some of the scripts that you can use and modify to your needs. But it is it – if you want to build your own process you need to have some experience and understanding of what the ideal release & deployment process would look like.  

You will not find it in the documentation – but we have you covered. 

Before we move forward to what you can do, you need to know that: 

  • XbK uses packages to deploy the changes 
  • XbK packages are not different that the artifacts that you are probably familiar with if you ever had to work on the automated CI & CD processes 
  • XbK packages contain serialized data (content items, pages, settings, assets) and the code (.net core) 
  • Maximum size of the package is 2GBs, if you exceed that size, you need to prepare multiple packages and install them in particular order 
  • You can prepare package locally and install it via xperience portal only on the QA environment 
  • You can prepare package locally and send it to xperience portal via api or curl command, again only to the QA environment 
  • You can prepare the package with any automation tools like AzureDevOps, Jenkins, Bamboo etc and deploy the package to the QA environment 
  • You cannot deploy package with any of the previous actions to PROD environment, production deployment can be triggered only manually from the xperience portal as it releases package deployed previously on the QA environment 
  • Packages can contain all of the data that you want to deploy or only changes (for instance prepared locally serialized data) 

 

Artifact preparation 

To prepare the artifact or as Kentico names it – ‘package’ you can use scripts prepared by Kentico.   

Export-DeploymentPackage script has been added to cloud project template in version 22.1.1.  

Export-DeploymentPackage script publishes your .NET application and copy your serialized data and assets from the CD Repository (not CI Repository) and then put all of that in the structure that can be later tackled by the SaaS environment deployment. 

The script does not require connection to the database – which makes it also very practical and allows you to add it as a part of your automated deployment.  

The script at the end generates a zipped file – which is a package that you can manually upload through Xperience Portal.  

Based on the script provided by Kentico we built our own Azure Pipeline that uses Ubuntu image and consists of the steps: 

  • Build .NET core project 
  • Publish .NET core project 
  • Copy the output of the publish to the specified temporary folder 
  • Copy the CD Repository (serialized items) to the specified temporary folder 
  • Do some clean-up (the same way Kentico does) 
  • Prepare some metadata information (the same way Kentico does) 
  • Publish temporary folder as an artifact to Azure 

Then when the artifact is created in Azure – we can deploy it from there with a simple two-step process.  

The first step of the deployment is to zip the artifact folder: 

The second step sends the package to Kentico’s Xperience Portal: 

As you can see this is a simple curl command. Authorization Bearer and all the URLs must be configured in the Xperience Portal – section “Personal access tokens”: 

When you release artifacts from Azure you will find all of the releases listed in Kentico.  

It is not possible to deploy from Azure directly to production, to finalize the process you must access Xperience Portal and promote the already deployed on QA package into Production: 

Production deployment ends the release cycle.  

Summary 

As you may have noticed, even though Xperiece by Kentico is a very new tool, it has been built in such a way that everyone who knows the best standards on the market will find it easy to learn and use. For some people it may be surprising that it is not possible to fully automate deployments and changes can be promoted to production only manually from the Xperience Portal, when other teams will find it an advantage due to security reasons. It only shows how different can be companies that use the tools available on the market. 
 
Curious about how Kentico Xperience can streamline your processes while enhancing security? Get in touch today to schedule a demo and see how this powerful tool can elevate your digital experience! 

Sign up to our newsletter

Share on social media

Lukasz Skowroński

Lukasz Skowroński

I have been awarded with the Sitecore MVP award seven times (the first time in 2017) for my continued support of the Sitecore Community. Besides blogging, as a Sitecore Community member, I organize all of the Sitecore User Group meetups in Poland. Since 2021 I have helped to organize the Sitecore User Group Conference (SUGCON) as one of the co-organizers.


Subscribe to newsletter