This post was written for Xperience by Kentico v30.2.0. Please consult the documentation for any feature or API changes when using a different version. Be sure to check the System Requirements in the product documentation.
Unlike previous Kentico products Xperience by Kentico can be deployed into our single-tenant cloud as Xperience by Kentico SaaS, where we manage infrastructure, security, and deployments so technical teams can focus on the real value of enhancing DXP features for marketers.
If you are new to Xperience by Kentico SaaS this guide will help you understand how to start building and then successfully launch a SaaS project.
Here are the takeaways from this guide, all of which build on the others.
- Adopt modern software development practices
- Embrace automation and an evergreen mindset
- Understand your constraints
- Aim for boring production deployments
Getting started
If you’ve worked with previous versions of Kentico, moving to Xperience by Kentico SaaS requires a shift in approach. This guide focuses solely on upgrades to SaaS-specific content, and we assume you have invested time in understanding Xperience by Kentico as a platform first.
If you need to review the foundations or make sure you don't miss future guides and tips, check out these resources first.
📌 Learning Xperience by Kentico as a software developer - Optimal guide to Learning Xperience by Kentico as a developer.
📌 Register and use the Kentico Community Portal - A great resource for teams working with Xperience by Kentico.
📌 Sign up for the Kentico Community Newsletter today - Sign up and stay up to date with the stream of information from the Kentico community.
In this Xperience by Kentico Technical Spotlight you can learn how, in just a couple of minutes, you can be developing solutions with Xperience by Kentico.
Embrace modern software development practices
If you have experience deploying Kentico applications into private datacenter clouds, virtual machines, or even public cloud managed infrastructure like Azure App Services, using Xperience by Kentico SaaS is both surprisingly similar on the surface and different in the details.
In general you will struggle if you don't adopt modern software development practices and you will be rewarded if you do. Let's briefly cover some of these.
- ✅ CI/CD will improve your confidence in deployments by making them smaller and more frequent.
- ✅ Automation accelerates teams, their quality and correctness validation and reduces slow manual checks.
- ✅ Small iterative updates increase team agility for security and align with Xperience's Refresh and hotfix release cadence.
CI/CD improves predictability and confidence
Continuous integration (integrating code changes into your main workstream/branch continuously) and continuous delivery (designing updates to be easily deployed at any time) are common practices to improve time to market (from idea to production deployment) and reduce deployment risk.
Continuous integration is made possible by small frequent updates, like with trunk based development, and high quality automated tests. Every update to a project leaves it functioning even if new features are incomplete. Feature flags can help reduce the risk of a large feature taking too long to integrate back into your main repository branch.
Continuous delivery makes it possible to 1-click deploy an update without needing to plan for large amounts of coordination and planning that can easily be derailed if someone's unavailable on launch day.
Xperience by Kentico has CI/CD features that help you follow these software practices when working in an Xperience solution.
Your team must use Xperience's CD functionality to promote database data and schema changes from one environment to the next in SaaS, so why not take advantage of the CI feature for an improved development experience and follow that up with continuous integration and delivery as described above?
Xperience by Kentico's CI/CD features are powerful and enable your development to build better solutions, faster. But, it can also be a complex topic that relies a lot on how your team collaborates and how your Xperience project is set up. Let's explore some common scenarios developers encounter when using Xperience's CI/CD features.
Automation accelerates teams
The best way to have confidence a code change does what you want and doesn't cause regressions is automated testing. If you want your main repository branch to always be deployable then automated testing is absolutely necessary.
Confidence in code changes also leads to confidence in deployments which means automated testing also impacts your ability to practice continuous delivery.
If you want your team to be able to focus more on feature enhancements and not spend hours with every deployment, a few well placed automated end-to-end (E2E) tests are a great place to start.
Once you author some automated tests you might as well go one step further and automate your builds, and application deployment artifact creation for Xperience by Kentico SaaS's deployment pipeline.
The more you automate the less you need to worry about with every code change and application update, meaning you can move faster and have a greater impact.
Small, iterative updates increase agility
Digital marketing is a fast paced field where marketing professionals deliver the best results when they can pivot to meet customer expectations and align with business goals.
Development teams in the middle of a large, complex updates that has to be deployed with complicated steps end up blocking the work pipeline for other changes. This means marketers have to wait for yesterday's work before they can address the challenge of today. It's even more unfortunate when that previous enhancement has taken too long and is no longer the business priority.
In the worst case, a large change in-progress prevents a team from addressing a high priority security concern. Thankfully Xperience by Kentico's security advisories are publicly documented and also delivered over an RSS feed.
Development teams need to ensure they can address business priority changes and security concerns by becoming more agile. They accomplish this by breaking down large updates into smaller, continuous, and iterative changes and making sure their Xperience project is always ready to be quickly updated and deployed to production.
Bring an evergreen mindset
Kentico has been building CMS and DXP products for over 20 years - that's a lot of history, products, and versions that developers have had to keep track of.
Xperience by Kentico is fundamentally different as an evergreen solution and teams need to look at their build, update, and deployment operations with an evergreen mindset.
- ✅ Stay up to date Xperience's monthly Refreshes and hotfixes to get access to the latest features, help solve issues, avoid workarounds, and stay supported in SaaS.
- ✅ Stay up to date with your dependencies and web technologies because adopting changes in these areas becomes more difficult the longer you wait.
- ✅ No more rebuilds for teams working with Xperience by Kentico because of its foundation of proven technology and versionless design.
Monthly Refreshes, weekly hotfixes
Xperience by Kentico is an evergreen platform, updated through weekly hotfixes and monthly Refreshes. It has a continuously updated public roadmap to help teams understand what's next on the horizon for marketers and developers.
There is no next big update for Xperience, only easy to apply updates on a regular cadence.
To guarantee seamless deployments and support in Xperience by Kentico SaaS, customers must meet the requirements of our support policy. The best way to do this is regularly applying hotfixes and Refreshes to their application.
Additionally, developers can avoid the cost of custom building functionality already present in Xperience by simply watching the roadmap and staying up today. They can also limit the time that comes with identifying the source of bugs by applying hotfixes.
In previous versions of Kentico many customers would only apply hotfixes or Refreshes when something needed fixed. When using Xperience by Kentico and especially when deploying to SaaS, staying up to date (at most 1-2 Refreshes behind) should be business-as-usual.
Manage your dependencies and technologies
Not only do teams need to keep Xperience up to date - they also need to manage their own dependencies and technologies.
Xperience is built on ASP.NET Core which is part of the .NET release cycle and support policy. Teams should incorporate the support lifecycle of frameworks like .NET, smaller libraries, web services with APIs, and the web platform's technology updates into their own application improvement workflows.
There's no guarantees in life except for death and taxes... and that your software library dependencies will probably be out of date next week. Software doesn't maintain itself - at least not yet - so developers need to spend time keeping things functional and up to date. In this Expert Chat, we talk with Jeroen Furst - a long time Kentico MVP and architect at TrueLime a Kentico Gold partner digital agency. Jeroen shares his perspective on how his team keeps their Kentico solutions up to date, why it's never been easier than with Xperience by Kentico's continuous and incremental release cycle, and how he explains the value of this work to his agency's clients.
No more rebuilds
In the past teams would update applications with the understanding that at some point in the future the solution would be rebuilt from the ground up because of outdated technology or difficult to evolve designs.
Kentico's goal with Xperience by Kentico is that it will never need to be rebuilt and neither will our customers' solutions.
Our public roadmap, monthly release cycle, clear product vision, SaaS solution, and excellent engineering and product teams means we will guide customers through the evolving landscape of digital channels, AI, and cloud infrastructure.
Developers should consider each Xperience by Kentico solution as the last one that marketing team will need. Evolve it forward, continuously adjusting and refactoring as needed.
Understand your constraints
Although Xperience by Kentico SaaS is built on the same Azure managed infrastructure that many customers use today for private cloud deployments, SaaS adds a turnkey service layer above this, tailored to Xperience by Kentico applications with its own features and constraints.
Developers need to understand these constraints, their benefits, and where existing assumptions and processes need to change to get the most benefit out of SaaS.
- ✅ No access to SaaS infrastructure increases platform security and eliminates the possibility of non-communicated or accidental infrastructure and configuration changes
- ✅ No parallel deployments or environments so teams cannot deploy different features to different testing environments which requires update planning and smaller, more frequent deployments
- ✅ Diagnose issues with new signals like deployment logs, application logs, and performance metrics
Security says: No access to infrastructure
Customers can view Xperience by Kentico SaaS's security and compliance credentials through our trust center.
Least privilege and secure access are important principles for SaaS infrastructure and deployment management.
This means administration and development teams do not have access to the underlying single-tenant configuration and application components beyond what is exposed through the Xperience Portal.
If developers are accustomed to quick, direct access to production resources they will need to adjust their expectations to a world that prioritizes security and consistency at the cost of ad-hoc changes and undocumented access - two things most customers do not want.
Identify and diagnose bugs early using test automation and your QA environment, adopt small and iterative updates to minimize the chance for regressions, and use scheduled or point-in-time backups to identify production issues locally.
Single stream deployments
Some customers and partners might support multiple streams of features and testing for different teams working on the same project in private cloud environments. This usually leads to complexity at the point of integrating all these streams together and confusion about which changes are in each environment.
Xperience by Kentico SaaS simplifies this by only allowing a single stream of development from Local -> QA -> (UAT, optional) -> Production. If multiple changes need to be validated, teams should adopt the approach of small, iterative updates supported by test automation.
Learn your diagnostic signals
Because Xperience by Kentico SaaS does not allow direct access to underlying infrastructure, developers will need to become familiar with the information surfaced by the Xperience Portal.
This includes deployment logs for troubleshooting deployment failures. Thankfully, Xperience by Kentico SaaS deployments are transactional and we always make a complete copy of the database before running a deployment. This means if a deployment fails no data is lost and no data corruption is possible. Developers can analyze the deployment logs, identify the issue, update the deployment configuration, and run an automated deployment again.
The Xperience Portal also includes an assortment of application monitoring features like application logs, Xperience's Event Log, and performance metrics.
Developers can use these signals for first-line troubleshooting and then contact Kentico support if the issue can't be resolved.
Aim for boring production deployments
Teams should aim for a boring launch of a new Xperience by Kentico application by preparing a launch process, validating requirements, and communicating plans with stakeholders and Kentico support.
By making production deployments a normal part of an application build developers can become so comfortable with the process that no one is scared and it becomes boring!
- ✅ Frequency reduces difficulty so deploy to Xperience by Kentico SaaS regularly and your team quickly grow in knowledge and experience.
- ✅ Understand the differences between SaaS and private cloud deployments you are more familiar with so you can avoid assumptions and have a successful launch.
- ✅ Learn how to deploy to production early, before you launch your application and communicate with Kentico in advance of your go-live date.
Frequency reduces difficulty
Another way to express the concept that frequency reduces difficulty is repeat the thing that hurts.
For Xperience by Kentico SaaS projects teams need to identify the difficult or painful points in their build and deployment process and then repeat the process to refine and perfect it. Avoiding updates to Xperience by Kentico because you initially found them complex or difficult is like avoiding the water because you can't swim when you work on a boat - take swimming lessons instead!
Try adjusting your CI/CD configuration file to deploy different types of schema changes and use migration scripts to make larger database changes in place of direct database access.
These things are part of normal application development. Become familiar with them and do not wait until the last minute to use them.
Understand the differences
Many teams familiar with Kentico have taken more risky approaches to deployments in the past - running SQL migrations manually and applying Kentico Xperience 13 Refreshes to live production environments.
Xperience by Kentico SaaS guarantees no lost or corrupted data from a deployment which means today we require downtime to safely make database changes to an application. We have prioritized roadmap features to reduce and eliminate downtime during deployments, but developers should plan for them today.
SaaS auto-scales applications horizontally when resource usage exceeds a predetermined limit to guarantee availability for high traffic scenarios and your custom feature implementations should be designed to work under these conditions.
Although Content Sync is on our roadmap and coming soon, today developers need to plan for alternative ways to move content changes between environments.
Xperience by Kentico SaaS stores all assets in Azure Blob Storage because the filesystem is not guaranteed to persist between application restarts or deployments.
If you want to learn more, our documentation has an dedicated page comparing SaaS and private cloud deployments of Xperience by Kentico so you can understand the differences.
Deploy to production early
Xperience by Kentico SaaS handles the deployment pipeline process for your application updates and we leave the customer channel and marketer experience customizations up to you. If you want to get those updates to your production environment you need to create a deployment package and understand the deployment pipeline process and requirements.
Because every application is different we highly recommend deploying to production as early as possible and make production deployments a regular part of your initial development process (remember, frequency reduces difficult).
Deploying early and often will help you become more familiar with the Xperience Portal and truly understand the ways SaaS is different than a traditional private cloud deployment. Not only will this benefit application developers - it will also get stakeholders and non-technical team members involved early so that there are no surprises once it's time to go-live.
Wrap up
Our goal with Xperience by Kentico SaaS is to manage cloud infrastructure, load balancing, infrastructure security, and deployment pipelines, reducing responsibility for developers which frees them up to focus on higher value work.
SaaS's constraints have many benefits in consistent process and security and are fully realized when teams adopt modern software development practices, understand Xperience by Kentico's evergreen product design, and have experience with the SaaS deployment process.