Tridion Sites 9 - How to upgrade?

As you may know, SDL has announced that Tridion Sites 9 will be released by the end of this year. The prepare us for the upcoming release SDL has scheduled a series of webinars. The first one is about Technical Readiness: what is required and what are the options to upgrade?

There are a lot of improvements: better cloud support (DB), experience optimization (XO) and rolling upgrades scenarios with zero downtime.

Requirements & software versions

As always, there are two sides:

  • Content Manager side (windows only)
  • Content Delivery side (now a.k.a. Unified Delivery Platform / UDP)

Start with CM requirements: Windows 8.1 (and higher), .NET Framework 4.7.2, Java 8.

The CD requirements: same as CM, but also including support for Linux RHEL 6.9/7.4.

Both sides support the following DB storages: SQL Server Azure, Amazon RDS, MS SQL Server 2016SP1 / 2017

XO: Experience Optimization

On the UDP side, there is a new module available: eXperience Optimization. XO enables prescriptive personalization with relevant content. There will be a webinar around this topic. For now, all you should know is that you need to install Elastic Search (5.5 and higher) on UDP side to make it available.

Upgrading to Sites 9

SDL really wants to make it easier to upgrade to reduce risk and costs with zero downtime. Upgrade paths available from Tridion 2013SP1 HR2 and up.

Staged upgrade scenario is changed (including rolling upgrades). This was CD first and CM later. Now it is switched to CM first, since CD is often out-scaled and can be run side-by-side. Upgrading mainly consists of these steps: upgrade CM datastore, upgrade CM instance. Install Elastic Search for XO. Upgrade UDP datastore and UDP microservices. 

Rolling upgrades is now supported and has major benefits:

  • no downtime
  • no content freeze
  • upgrade CM database from web 8 to sites 9. Database keeps working with web 8 due to backwards compatibility.
  • upgrade a single CM instance to Sites 9 to test for issues
  • upgrade CD database and keep microservices running on web 8. And upgrade service by service to sites 9.
  • easier and less costly to upgrade

Important facts to keep in mind:

  • Upgraded CM database is backward compatible with Web 8.5
  • UDP microservices can do rolling upgrades from Web 8.5 to Sites 9
  • SDL is working on Docker container support

Other improvements

There were several other improvements mentioned:

  • High availability support for CM: removed local file storage dependencies (like MM types, Custom Pages and AM)
  • Audience Manager synchronization
  • Out-scaling the deployer service in active/active mode. (AFAIK was already part of SDL Web 8.5, but has now more performance)
  • SAML 2.0 Support in Web UIs for single-sign-on

Publication Administration right. Did you know?

Since SDL Web 8.5 there is a feature available that hasn't got a lot of attention. It is minor but can improve the lives of many content managers (and system admins): Publication Administration right.

When this right configured for a user it allows them to check-in any versioned item in that Publication that another user had checked out. This is particularly useful when people go on vacation and they forgot to submit their work. So no more e-mails to system admins to resolve versioning issues!

Before setting such rights, please take note of the other operations possible. From the SDL docs

  • creating, reading, updating or deleting any item in the Publication
  • publishing any item in the Publication
  • checking in any versioned item in the Publication that another user had checked out
  • undoing the check-out by another user of any versioned item in the Publication
  • reading, unlocalizing or deleting non-checked-in items

Tridion Hackathon story with Alchemy

Last week I participated in a Hackathon for our client. It all started with a kickoff meeting with business users. They shared their daily experience of the Tridion system and implementation. Likes and dislikes were discussed and also where they lose time working with cms (amount of clicks). It was a fruitful session, I must say. After voting about business value and guestimates on developer effort we got an ordered list of issues to tackle.

Hackathon development phase

After the business users left the developers brainstormed about possible solutions. To name a few:

  • Additional user training
  • Installing existing extensions from the Alchemy Webstore.
  • Developing new Alchemy extensions
  • Automation via the event system
  • Extend DD4T rendering
  • ...

During the next couple of days, we started building. At the end of our available time, we developed 3 very useful Alchemy extensions (and some other improvements). The extensions itself are too much targetted for the customer implementation, but what I can share are some very useful tips and tricks.

Top 5 Alchemy developer tips

#1 - Starting and learning Alchemy

The best way to start with Alchemy development is to read the docs, install the VS project templates.

To learn about development, clone and inspect the BigBox of Samples plugin. Also, browse the Alchemy gallery to see what is there for inspiration. Also to not reinvent the wheel. Most plugins are open source and have a source code link. In case you wonder, how did they do XYZ... If no source available you could opt for downloading the A4T, rename the file to .ZIP and browse it. Javascript is easy, for the server-side code you need a decompiler to peek.

#2 - Custom configuration settings in client-side javascript

It is possible to create custom configuration settings for your extension. By default, you can use them in your serverside controller. Optionally, you can use them in your javascript command file. Then you must not forget to add the client=true attribute in a4t.config:

<settings>
    <InitialSize client="true">400px</InitialSize>
</settings>

#3 - Disable Alchemy Webstore popup 

By default everytime you do a build in VS, you will be prompted with an upload-to-alchemy popup window. While developing locally you do not need it and luckily there is a way to turn it off. Right-click the project and unload the project. Then right-click again to edit the project file and search for:

<AlchemyUploadDialog>DEBUG|RELEASE</AlchemyUploadDialog>

If you remove DEBUG| it will only prompt when building in release mode.

#4 - Deploy on VS build

Peter Kjaer developed various very useful Powershell modules for Tridion. There is a stable Alchemy module available to install, update and uninstall Alchemy extensions. If you install it, you can configure you VS project post-build event to install/update your plugin automatically. Then you only need to refresh the GUI for loading you extension.

#5 - Choose between client- and server-side

Working with the minimal documented Tridion Anguilla javascript framework can be a very time-consuming experience. Sometimes certain logic can be implemented with Tridion Core Service, so use the Controller to implement logic there. It is easier to get things done server side.

Hope this helps. If you have anything to add, please let me know!