To edit or add content to this Wiki, you can simply create a new account at http://wocommunity.org/account.
Let's list ideas to make deployment more solid and simple.
One of the most common mistakes in deployment is problems related to permissions. The default permissions on the startup script of the app make it so that only the owner of the file can run it, so either you need to change the owner of the file when you install the app, or you need to change the permissions. By running a SSH server inside wotaskd and people use that server to upload the application, the application's files will be owned by the user who runs wotaskd, so the file permissions goes away.
The other advantage is since it's running under the same user as wotaskd, if someone get access, it will only be able to view or modify files that the user have access too.
This is somewhat related to the built-in SSH server. We need an easier way to deploy applications from Jenkins. I wrote a Perl script to do so, but you need to install four Perl modules to use it, and those four modules have dependencies, and it goes on and on. We need a real Jenkins plugin for deployment that will do the following:
When you deploy the application, it would follow the common convention that many people uses: the new version will be stored with a unique name, and the symbolic link that points to the current version of the app will be modified so that it points to new version.
To show that WO can scale, we need something that can monitor the systems and applications and act if something goes bad. For example, by using JMX if the monitoring tool see that the app is using 95% of its heap space for more than 10 minutes, it could decide to start another instance by contacting the REST APIs in wotaskd to add the new instance. If the host's CPU usage is more than 95% (per core/CPU) for 15 minutes and you are on Amazon EC2 or Linode, it could start another VM so that it can handle the load.
I think we need a "no hassle" deployment service, à la Heroku or Google App Engine. That service would be useful for people who only wants to deploy one or two apps and don't want to bother with managing a OS X or Linux box. We could use OpenVZ on Linux or FreeBSD Jails to do isolation between users.
3 Comments
Gavin Eadie
I was thinking, just this week, that I'd like Monitor to offer an Upload service (like the Tomcat Manager app does) -- you'd give it a compressed version of the app and have it add/replace the appropriate files. Among other things it would ensure "appserver" ownership.
Pascal Robert
The upload could be done over SSH, and would be the easier way to "test" this workflow.
Bastian Triller
why aren't the permissions set to 755 anyway? That only makes things harder and doesn't prevent one from starting the application per direct java call.