[Progress News] [Progress OpenEdge ABL] Automatic Upgrades: Sitefinity Cloud Goes into Hands-Free Mode

Status
Not open for further replies.
A

Anton Tenev

Guest
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—automatic 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. With at least two feature upgrades a year along with a couple of security patches, we’ve obviously been keeping you busy.

That’s why 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 automatic 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 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 automatic upgrades. Feel free to get in touch with your Sitefinity Cloud account rep in case you have any questions or need more detail.

Continue reading...
 
Status
Not open for further replies.
Top