I'd choose a red/blue/green approach.

Basically it boils down to rotating the three environments (red, blue,
green). The application is served from either separate hosts, directories,
processes. Whatever your isolation level is

The basic assumption is that, just like your application codebase, your
codebase for configuration management is in version control so that you can
jump back in time. It is up to you (or rather the assumptions and
constraints of your business to find a workflow based on branches or
whatever floats your boat)

* red: Old "production version
* blue: Current "production" version
* green: Current "development" version -- this does NOT mean that
development happens here. This DOES mean that the rollout and actual
verification runs against this version (most probably the people who make
the call of releasing a new version have access to it)

As you are ready to release you will simply switch the thing that routes
your traffic (it does sound an awful lot like a service that is reachable
via a network connection) to the "green" environment.

You end up with this state:

* blue: Old "production version
* green: Current "production" version
* red: Current "development" version

After the next deployment:

* green: Old "production version
* red: Current "production" version
* blue: Current "development" version

Now go forth and rotate :)

Yeah it's pretty general, but I can't give you a more specific answer since
your question was stated that way or it could be me simply misunderstanding
what you want.


On Thu, Jun 18, 2015 at 9:02 AM Yassen Damyanov <[email protected]>
wrote:

>
>
> On Monday, June 15, 2015 at 3:38:49 PM UTC+3, skg wrote:
>>
>> How would you get ansible to deal with the following use case:
>>
>> An application, X version 1,  is installed with it's configuration
>> variables for version 1.  Subsequently X version 2 is released with a
>> differnt config variable set. I want to upgrade to X version 2 and preserve
>> old configuration from X version 1. I also want the option to rollback to X
>> version 1 at a later date restoring it to the configuration state it had
>> prior to upgrading to X version 2.
>>
>> How would you go about ensuring this using Ansible?
>>
>
>
> Where the installed app goes into? (what folder(s)?) What is the target
> OS? Where/how are your version-dependent configuration variable sets kept?
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/85636d21-048f-473d-92cd-7abf404a17e5%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/85636d21-048f-473d-92cd-7abf404a17e5%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
-- 
-- 
http://www.xing.com/profile/Martin_Marcher
http://www.linkedin.com/in/martinmarcher
Mobil: +43 / 660 / 62 45 103
UID: ATU68801424

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAK1mKEQQW%3DY2A3-06YMgzTi0MuAkOnaEK01N37M3BetsmfH-GA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to