cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wido den Hollander <w...@widodh.nl>
Subject Re: [DISCUSS] Moving to embedded Jetty and fatjar CloudStack
Date Thu, 10 Aug 2017 15:23:59 GMT

> Op 10 augustus 2017 om 14:09 schreef Rohit Yadav <rohit.yadav@shapeblue.com>:
> 
> 
> All,
> 
> 
> Distro provided tomcat6/7/* has caused production issues for few users in the past. Due
to this, the ACS deployments are inconsistent with the version/jars of tomcat in use. By allowing
exploded war to be shipped, can allow admins to sometimes overwrite cloudstack jars causing
production issues. I think moving to a CloudStack uber/fat jar will make it easier to deploy
CloudStack in environments and write custom init/systemd scripts and fix cloudstack setup
databases/management scripts without assuming the distro we're on.
> 

Yes, I agree. A flat jar makes things a lot easier.

> 
> With this discussion thread, I would like to engage with the community if they've any
reservations from moving away from tomcat to embedded jetty + fat/uber jar based packaging.
Please share your thoughts and comments.
> 
> 
> On very high level the packaging will provide the following:
> 
> - A ServerDaemon class that can accept custom location of UI (webapp directory), logging,
and other environment options, part of the fatjar.
> 
> - A config file (xml/yml or otherwise) where you can configure keystore/SSL-certificates,
paths (/client), ports, logging etc.
> 
> - Default libraries/plugin path at /usr/share/cloudstack-management/lib, UI path at /usr/share/cloudstack-management/webapp
> 
> - A default file (available at /etc/default/cloudstack-management or symlink at /etc/sysconfig
etc) where you can specific custom variables, java options, classpath etc.
> 
> - Refactored init.d/systemd scripts to be commonly used b/w rpm/deb build scripts
> 
> - A new/improve logrotate file
> 
> - Logging will be handled by log4j (the same xml/config file you normally use)
> 
> - Currently we're using jsvc to handle mgmt server process, however we may move to java+systemd
completely
> 

I suggest that we only use init.d on RHEL 6 and Ubuntu 14.04, but on RHEL 7 and Ubuntu 16.04
(any distro that runs with systemd) we should try to avoid using jsvc.

That way we don't have to daemonize the MGMT server and keep it attached to systemd. Also
makes it easy to just print logs to stdout and have journalctl take care of them.

> 
> Marc-Aurèle (ExoScale) and I have collaborated on this problem and we finally have a
PR (not complete) where we can show this actually works, please have a look:

Awesome work!

> 
> https://github.com/apache/cloudstack/pull/2226
> 
> 
> Once the PR is accepted, we can include a topic page in the 4.11/future release notes
docs about upgrading in-place and setting up ssl certs etc.
> 
> 
> Regards.
> 
> rohit.yadav@shapeblue.com 
> www.shapeblue.com
> 53 Chandos Place, Covent Garden, London  WC2N 4HSUK
> @shapeblue
>   
>  
>

Mime
View raw message