Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Chris Keyes 6 posts 26 karma points
    Dec 12, 2012 @ 13:04
    Chris Keyes
    0

    Umbraco hosting and website release strategy How do you do it?

    Hi All,

     

    I’ve been looking around for more information over the past few months hopefully there are some people in a similar role out there who may be able to offer some further input.

     

    Firstly I’m a member of the Infrastructure team. I work with servers, hosting, and similar, so I’m not a developer and I don’t really have an in-depth understanding of how Umbraco works under the covers. I do however work with a team of Umbraco developers and over the last year have had growing exposure to Umbraco.

     

    Another feature of my role is to deploy updates to our site(s). These can be Umbraco code base updates, package updates, custom code updates and content updates. As the site is a work in progress and is expected to remain so for many years this is hopefully something that can be done regularly.

     

    The question I have for people is how do you do it?

    How are others releasing updates, changes, and functionality to their live sites?

    Does everyone go offline for the duration or are there other tricks and techniques in use?

    How about releasing to multiple servers in a load balanced cluster?

    Is anyone using automation to push updates automatically to their live environment?

     

    It has been suggested that we release to an ‘offline’ copy of the site, switching round the content and the database during the release-go-live phase, this is something we are considering but is this the best compromise? With a site of around 5GB plus database the process of copying the site will take some time.

     

    We have also been using Courier, though with somewhat mixed success.

     

    We are also interested on how to simplify the process, but perhaps most of all to find out how others have things configured and how to improve what we have.

     

    Kinds regards,

    Chris.

  • Bo Damgaard Mortensen 719 posts 1207 karma points
    Dec 13, 2012 @ 22:18
    Bo Damgaard Mortensen
    1

    Hi Chris,

    I can only tell you what I have experienced (I'm sure there's a hundred ways of doing this) For the most part I've been involved in projects running on some sort of versioning service like Bitbucket (bitbucket.org) where developers can make push/pulls to/from the service and work locally on their machine. Normally, you'd have a staging environment aswell where larger chunks of code/functionailty and/or design is being pushed out both for testing and for customers to review. The staging server thus should only make pull requests from the versioning service and not push.

    Often the /media/ folder is being excluded from the push/pull to/from the developers local version since this folder can easily take up a lot of space! As for database, developers tends to work in small scale, meaning that they/we do not need a full, running version of the website to test our code locally, so often times a copy of the latest staging database will do.

    Code and/or design should never be pushed out to the live environment without tests on the staging environment and before the accept test has passed.

    Another solution that might be worth keeping an eye on is the Concorde project which gives us Umbraco as a service - this could make for some easier versioning control, but I'm not entirely sure at which stage the development is at the moment.

    Hope any of this makes sence. If not, please let me know and I'll try to elaborate :-)

    All the best,

    Bo

  • Chris Keyes 6 posts 26 karma points
    Dec 19, 2012 @ 17:22
    Chris Keyes
    0

    Hi Bo,

    Many thanks for your thoughts

    That certainly sounds familiar, our team use TFS but same idea.

    We have three environments after Dev, UAT, Beta and Live. UAT for functional test and sign off, beta for deployment test and testing in a load balanced environment, and then Live.

    The requirement is really how to release with 'zero' downtime. In the old asp.net days it would be a case of taking a server out of load balancing by draining it, then updating and testing, then putting back into live, draining another node and updating that. Unless the change was a breaking change at a database level then this process is transparent to the user.

    Umbraco is a different animal and the process here is something we are trying to work on. For example our initial attempt at 'deploying' to the live environment took several weeks and in the end we had to take a copy of beta and use that. We've since had some updates made to courier and haven't attempted a release to a blank site since so I don't know if this would be easier now.

    I'm really wondering about the going from a release package (in our case a set of DLLs, other files and release notes) to having them applied to the live site, along with Courier package deployment if there is an update to the site content or maybe even an umbraco version update.

    Are there any other tips / tricks people are using?

    We're hopeful there's a good solution we are missing somewhere.

    Thanks,

    Chris

Please Sign in or register to post replies

Write your reply to:

Draft