Upgrade strategy for Guacamole

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Upgrade strategy for Guacamole

Suncatcher16
The only reasonable tread on this topic I found is that, however it doesn't seem detailed for me and covers only DB issues.
I have Guacamole installed on AWS and authentication based on Postgres (as Docker container).
What are the proper steps to upgrade Guacamole to the next release? Should we upgrade only WAR or guacd too?
What is the proper upgrade sequence?
1. Postgres -> guacd -> WAR
2. guacd -> Postgres -> WAR
3. WAR -> Postgres -> guacd
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade strategy for Guacamole

Suncatcher16
Well, does anybody have some experience? How should switch to 0.9.13?
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade strategy for Guacamole

Nick Couchman-2
I would do them in this order:
1) guacd
2) Postgres
3) WAR/Extensions

guacd should be completely backward-compatible, so you shouldn't have any problem using older Guacamole client with newer guacd (in general).  Updating the Postgres DB schema before upgrading the WAR and extensions also should not cause any problems.

-Nick


On Monday, July 31, 2017, 3:49:45 AM EDT, Suncatcher16 <[hidden email]> wrote:


Well, does anybody have some experience? How should switch to 0.9.13?



--
Sent from the Apache Guacamole (incubating) - Users mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade strategy for Guacamole

Mike Jumper
On Mon, Jul 31, 2017 at 6:12 AM, Nick Couchman <[hidden email]> wrote:

> I would do them in this order:
> 1) guacd
> 2) Postgres
> 3) WAR/Extensions
>
> guacd should be completely backward-compatible, so you shouldn't have any
> problem using older Guacamole client with newer guacd (in general).
> Updating the Postgres DB schema before upgrading the WAR and extensions also
> should not cause any problems.
>

There have been cases where the schema has changed in such a way that
the older version of the webapp would fail to execute certain queries.
In general, the above will likely work, but as upgrading guacd
necessitates restarting guacd (which will kick off all active
connections), and upgrading the webapp requires restarting Tomcat
(which will log off all users), I'm not sure it makes any sense to try
to keep things running during the upgrade.

For any upgrade, I'd recommend the following as good practice:

* Schedule the upgrade during a maintenance window when you can
stop/restart Guacamole-related services with minimal impact.
* Backup your database, so you can safely revert if things do not go as planned.

As for the process itself:

1) Stop the Tomcat and guacd services.
2) Install the latest version of the webapp and guacd, overwriting
what is currently installed.
3) Apply the database upgrade script, if provided with the release.
4) Start the Tomcat and guacd services.
5) Do a quick run through and make sure things work.

With the services stopped, the process is predictable and order of
upgrade does not matter.

If you are going for absolutely zero downtime, the safe method would
be to serve Guacamole through a reverse proxy, clone the Guacamole
server, perform the upgrade on the clone only, and then switch the
reverse proxy to point to the new server once it's confirmed working.
Active users will still be logged out and disconnected, but the
service itself remains continuously available.

- Mike
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade strategy for Guacamole

Suncatcher16
Do the same recommendations apply if I want to switch from manual installation to Docker? My postgres DB already was in the Docker container, so I need to (re)install only guacd and Tomcat. What is the proper order?