I currently have a challenge around the deployment side of Umbraco - the original intention was to use courier for this however we feel that the product still has a few defects that prevent it from being usable in the short term ( although hopefully in the long term we can utilise courier )
So the situation broadly speaking is this - I have a complete end to end environment set up...
Developers all have individual instances of Umbraco on their local machine pointing at a shared dev DB and version controlled under Git - Tick works fine
The dev instance is connected to a staging environment - which is a replication of the live environment, currently its a load balancer in front of a little cluster - This works fine also Tick
This is all in the internal network... now lets hop over the firewall into production
Here I have an admin server, connected to the live cluster - content administrators make changes on the admin server which then foiolows the internal workflows - tick that would also work fine
So the real challenge here is how do we keep the developer environment in synch with the live environment?
What is the best practise approach with no constraints
What is the best practise approach in a scenario where we are not permitted make any holes in the firewall ( in other words the live servers cannot see the internal network - therefore cannot access the Git or replicate the DB )
Is a public git repo an option? How do we keep the databases synchronised?
"You can get started with Umbraco directly from umbraco.com with a click of a button and because of the convenience of automated upgrades, you can focus entirely on making sites rather than installing, upgrading, patching, deploying and all the other time consuming frictions that we’ve come to take for granted in our industry."
It will also handle deploying for you. You can't use it yet, but I think a lot of developers will like it.
I'd like to know about options other than Umbraco as a service also, as great as it will be I'm sure. Managing multiple versions of large Umbraco installations has always been challenging.
Definitely for us managing the deployment of database held information - doc types etc.- in Umbraco is the trickiest part of using the product - like you we have evaluated Courier but aren't currently using it due to not being able to be 100% confident in it's accuracy.
One technique we used recently which worked pretty well was to create a package from our dev environment containing all the changed or added doc types, macros etc. and then install that on the production environment. We had a lot to deploy, so doing it manually would have been very timeconsuming and error-prone, so we were pretty happy with how well that worked.
There were a few gotchas though (thanks to my colleagues Neil and Ali):
Doc type tab order is forgotten. If you've got any custom tabs, and if the order matters, you'll have to go through and manually set this.
Unlike manually creating templates when a file of the appropriate name already exists, in which case the alias is given a different name and a new file created, templates were created correctly - this means you can deploy files first, which you can't do for manual creation.
Document.New is run when content is imported. This means, for example, if you've got an event handler which creates default children when a document is created, and such children already exist in the content you're importing, you'll get multiple copies.
Content is created as a child of the root node of the content tree - so you'll need to move it to the appropriate place - even if the same parent exists on both sites.
You'll need to go through /all/ content pickers and reassign values - both in content and in datatypes such as the multinodetreepicker. You can't really get round the content thing, but you may want to think about using more xpath in your multinodetreepickers if you're going to do this.
The latter also applies to Public Access settings. These are stored under node ids in access.config and will need to be reconfigured.
In terms of code files that's more straightforward, you can use whatever method your servers permit (XCOPY, FTP, Web Deploy etc.). Our preference here is to use a CI server (Team City) and configure that to pull from our git repo and deploy using Web Deploy to the server.
Umbraco in enterprise deployment scenarios
Hi,
I currently have a challenge around the deployment side of Umbraco - the original intention was to use courier for this however we feel that the product still has a few defects that prevent it from being usable in the short term ( although hopefully in the long term we can utilise courier )
So the situation broadly speaking is this - I have a complete end to end environment set up...
Developers all have individual instances of Umbraco on their local machine pointing at a shared dev DB and version controlled under Git - Tick works fine
The dev instance is connected to a staging environment - which is a replication of the live environment, currently its a load balancer in front of a little cluster - This works fine also Tick
This is all in the internal network... now lets hop over the firewall into production
Here I have an admin server, connected to the live cluster - content administrators make changes on the admin server which then foiolows the internal workflows - tick that would also work fine
So the real challenge here is how do we keep the developer environment in synch with the live environment?
What is the best practise approach with no constraints
What is the best practise approach in a scenario where we are not permitted make any holes in the firewall ( in other words the live servers cannot see the internal network - therefore cannot access the Git or replicate the DB )
Is a public git repo an option? How do we keep the databases synchronised?
Many thanks in advance for any advice on this
SP
Hello,
Soon you'll be able to use Umbraco as a service: http://umbraco.com/future
A little more info here: http://umbraco.com/follow-us/blog-archive/2013/8/15/finally-a-fall-worth-waiting-for.aspx
"You can get started with Umbraco directly from umbraco.com with a click of a button and because of the convenience of automated upgrades, you can focus entirely on making sites rather than installing, upgrading, patching, deploying and all the other time consuming frictions that we’ve come to take for granted in our industry."
It will also handle deploying for you. You can't use it yet, but I think a lot of developers will like it.
Jeroen
I'd like to know about options other than Umbraco as a service also, as great as it will be I'm sure. Managing multiple versions of large Umbraco installations has always been challenging.
Definitely for us managing the deployment of database held information - doc types etc.- in Umbraco is the trickiest part of using the product - like you we have evaluated Courier but aren't currently using it due to not being able to be 100% confident in it's accuracy.
One technique we used recently which worked pretty well was to create a package from our dev environment containing all the changed or added doc types, macros etc. and then install that on the production environment. We had a lot to deploy, so doing it manually would have been very timeconsuming and error-prone, so we were pretty happy with how well that worked.
There were a few gotchas though (thanks to my colleagues Neil and Ali):
In terms of code files that's more straightforward, you can use whatever method your servers permit (XCOPY, FTP, Web Deploy etc.). Our preference here is to use a CI server (Team City) and configure that to pull from our git repo and deploy using Web Deploy to the server.
Hope that helps.
Andy
Sorry to jump on an old thread but I'd be keen to hear if anyone has had any more luck recently with deployment scenarios.
Like everyone else, we're incredibly dubious over the reliability of Courier and every method seems to be long winded and manual.
is working on a reply...