Try our conversational search powered by Generative AI!

Elias Lundmark
Feb 9, 2022
  5915
(8 votes)

Developer Preview: Migrations to .NET 5 on DXP Cloud Services

Major upgrades can be daunting and carry risk in many areas; data corruption, breaking integrations and can require downtime. On the other side of the coin, lagging in adopting the latest upgrades carries the risk of poor security posture, obsolescence, incompatibilities and potential software rot. Due to this, we set ourselves a goal when we planned the release of Content Cloud 12 and Commerce Cloud 14 customers that are running in our DXP Cloud Services – make the transition as smooth as possible and minimize risk with the upgrade. This blogpost will give you an insight into our thought process behind our new development and give you a preview of what’s to come.

The first step of this is upgrading the software itself. For this, we created the .NET Upgrade Assistant extension specific to Optimizely scenarios that allows users to go through a guided experience to reduce time and difficulty in the task of modernizing codebases. But how do you actually go about deploying this to production in a manner that carries the least risk?

To tackle this in our DXP Cloud Services, we have been working on a similar guided experience to let existing Content Cloud 11 and Commerce Cloud 13 users deploy sites in parallel to existing environments.

Starting a migration

In the DXP Management Portal, you’ll be greeted with a new tab called Project Migration. This will act as your main hub for administrating the migration process.

Kicking of the migration will provision a parallel project that is completely decoupled from your current environments – complete with integration, preproduction and production environments (including Search & Navigation indexes). This allows you to start deploying your new Content Cloud 12 and Commerce Cloud 14 solutions without affecting status quo.

Migrating environments

Once your new project has been provisioned, you will be able to start deploying to it using the DXP Management portal UI or the deployment API. During any development process, it’s also convenient to access production data to test with “real” data and make sure everything works as expected. Navigating back to the source project in the DXP Management Portal will allow you to copy content from any environment in the source project to any environment in the target project on demand.

Going live

Once you are satisfied that the sites work as expected running on the newest version of Content and Commerce Cloud, it’s time for the moment of truth – going live. In this move, there’s a balance to be struck between incurring downtime and managing data consistency. We want to keep the source site(s) available as long as possible, but at the same time make sure we haven’t left any data behind. As such, kicking off the go live process will do a couple of things,

  • Put the source site(s) in maintenance mode to make sure no more data is written to Azure resource local to those site(s)
  • Start a final data transfer over to the target environment
  • Switch the origin in the Content Delivery Network (CDN) to the new environment for all hostnames coupled with the source environment

And that’s it – your sites should be running on .NET 5 at this point.

We’re still working hard to finish this tooling to allow seamless transitions to our latest software but wanted to put together this preview to convey our thought process and plans. If you have any feedback, we’re happy to receive it through our feedback portal. Contact your Customer Success Manager if you are eager to get started as we are currently running an Early Adopters program for this feature.

FAQ

I have multiple sites and wish to upgrade them one at a time, is that possible?

We are working on how to support this scenario.

Are there any DNS changes involved with this transition?

You may be asked to create some TXT records to validate the domain for the new DXP project, but the final go live event is handled through the CDN.

Is there any risk with starting a migration?

None at all – the source environments are not affected by this until the go live phase, and it is possible to abort a migration at any point.

Is a similar migration required in the future for .NET 6?

No, the new project will support both .NET 5 and 6. We also have mechanisms to detect the targeted .NET version based on the deployed source package to select appropriate version.

Feb 09, 2022

Comments

Drew Douglas
Drew Douglas Feb 9, 2022 03:17 PM

Excited to try out the process!

Mark Everard
Mark Everard Feb 11, 2022 08:02 AM

Wow. This promises to be super slick, and has considered all of the technically complexity for such a migration. Great work.

I guess the cost advantages to running all DXP clients on Linux are so significant for Optimizely that investing in great tooling to help you realise that, is worthwhile :)

Happy days all round

Vladimir Vedeneev
Vladimir Vedeneev Feb 15, 2022 12:59 PM

Those linux envs for migrating project - will it be additional environments, or new separate master environments?

Reason I'm asking - after site on CMS 12 is live on linux env, we will need to delete / decomission previous CMS 11 environments; and looks like now it is not possible to decomission master environment on its own.

Elias Lundmark
Elias Lundmark Feb 15, 2022 01:07 PM

@Mark thanks for the kind words! We're looking forward to getting this tool in the hands of our customers and partners.

@Vladimir - we base this on the source project. E.g., if the source project is called abcd01mstr, the target project will be called abcd02mstr and also be of type master. The same goes for additional environments.

Vladimir Vedeneev
Vladimir Vedeneev Feb 15, 2022 03:09 PM

Thanks @Elias that sounds really great!

Please login to comment.
Latest blogs
Do not upgrade to EPiServer.CMS.Core 12.21.4 without reading this!

Todays update of EPiServer.CMS.Core 12.21.4 alters default sort order in an unexpected way, when you are working with muligple languages and have...

Tomas Hensrud Gulla | May 14, 2024 | Syndicated blog

Upgrade Optimizely CMS From v11 to v12

Why Upgrade? There are many improvements implemented in version 12, but most importantly is that the whole framework is migrated from .Net Framewor...

MilosR | May 13, 2024

Configured Commerce - Infrastructure Updates Ahoy!

I'm very happy to share an important milestone - we no longer have any customers in our legacy v1 environment!  This means that the Configured...

John McCarroll | May 10, 2024

A day in the life of an Optimizely Developer - Enabling Opti ID within your application

Hello and welcome to another instalment of A Day In The Life Of An Optimizely developer, in this blog post I will provide details on Optimizely's...

Graham Carr | May 9, 2024

How to add a custom property in Optimizely Graph

In the Optimizely CMS content can be synchronized to the Optimizely Graph service for it then to be exposed by the GraphQL API. In some cases, you...

Ynze | May 9, 2024 | Syndicated blog

New Security Improvement released for Optimizely CMS 11

A new security improvement has been released for Optimizely CMS 11. You should update now!

Tomas Hensrud Gulla | May 7, 2024 | Syndicated blog