Automated Upgrades: Sitefinity Cloud Goes into Hands-Free Mode

Automated Upgrades: Sitefinity Cloud Goes into Hands-Free Mode

Posted on June 16, 2020 0 Comments
Sitefinity-Cloud-Auto-Upgrades-b-large

Simply put, keeping your software up to date just makes sense. Improvements are shipped with every Sitefinity release to enhance productivity, security and performance.

But hey, you already know that. So, this blog is less about the why and more about the how. It’s a first-look, hands-on sort of piece that sets off a series of posts introducing new features and enhancements, which our engineering teams are adding to Sitefinity. Keeping it short and simple, let’s get right to it—automated upgrades in Sitefinity Cloud.

Cloud Clicks into Gear

Obvious though it seems, getting the latest Sitefinity version just makes things better. We ship new functionality with each product release to deliver a tangible performance boost, superior tools, smarter workflows and tighter security.

For DevOps and Sitefinity admins out there, we made upgrading Sitefinity Cloud as smooth as possible. Here’s how…

Our main goal was to speed up a time-consuming process, reduce the overhead, minimize the margin of error and resolve potential hurdles. Updating the web.config is a case in point. It’s handled by the NuGet itself but occasional failures to update the binding redirects have been an issue.

The automated upgrade procedure has this resolved but, equally important, we’ve managed to reduce the time and make it an overall more straightforward and less error-prone routine. The table below sums it up nicely.


Task


Who’s Responsible

Old Flow

Automated Flow

Check for available updates

 Sitefinity Dev / DevOps

Pipeline

Get source code from master branch

Sitefinity Dev / DevOps

Pipeline

Upgrade project

Sitefinity Dev / DevOps

Pipeline

Build and deploy package to new environment

Sitefinity Dev / DevOps

Pipeline

Create new branch

Sitefinity Dev / DevOps

Pipeline

Commit/push updated files and configurations

Sitefinity Dev / DevOps

Pipeline

Run set of tests

Sitefinity Dev / QA

Sitefinity Dev / QA

Merge upgrade branch into master

Sitefinity Dev / DevOps

Sitefinity Dev / DevOps

Run sanity tests

Sitefinity Dev / QA

Sitefinity Dev / QA

Promote to production

Sitefinity Dev / DevOps

Sitefinity Dev / DevOps


OK, let’s break down the steps of the upgrade procedure and see how Sitefinity Cloud is living up to its tagline by letting developers code and create instead of fretting over the infrastructure and maintenance. The process below will be executed every time there is a new Sitefinity release—and daily automatic checks for a new version of the Sitefinity NuGet Package are part of the pipeline.

  1. Clone the project master branch
  2. Update Sitefinity NuGet packages to the latest version
  3. Execute build operation
  4. Deploy upgraded project
  5. Execute runtime upgrade using DB backup from Staging
  6. Push changes to an upgrade branch and create pull request to master
  7. Send email notifying customer of the upgrade (and the pull request awaiting approval)

So, once the pipeline kicks in and the steps above are executed, the following notification will be delivered to your inbox.

Cloud-Upgrades-Email-Pull-Request

The pull request is available for you to review, merge and run your test suite on prior to promoting to production.

Cloud-Upgrade-Quantum-Demo-Pull-Request

Now, that’s the most straightforward scenario where the automation sees the entire sequence almost all the way through. It’s important to note still, that you have the final say on whether and when to release the upgrade.

Depending on your setup and level of customization though, the automated pipeline may detect breaking changes and stop short of executing a build. Needless to say, you’ll be duly notified.

Cloud-Upgrades-Email-breaking-changes

The automated upgrade process obviously doesn’t handle breaking changes in the code or APIs. This is where you need to intervene and resolve the breaking changes.

I guess you know the drill. The local setup involves restoring the production DB to your machine, checking out a new branch, updating the connection string in the web.config to point to your local SQL server and DB. Then you build and resolve any breaking changes. And you only merge after all the essential tests are passed.

The main point of PaaS is it takes care of a lot of stuff that’s common sense even if not too exciting. Keeping the software version up to date is now on the list as well.

We’ve started rolling out the automated upgrades. Feel free to get in touch with your Sitefinity Cloud account rep in case you have any questions or need more detail.

AntonTenev

Anton Tenev

Anton Tenev was a Sitefinity Product Marketer.

Comments

Comments are disabled in preview mode.
Topics

Sitefinity Training and Certification Now Available.

Let our experts teach you how to use Sitefinity's best-in-class features to deliver compelling digital experiences.

Learn More
Latest Stories
in Your Inbox

Subscribe to get all the news, info and tutorials you need to build better business apps and sites

Loading animation