- State is stored on the filesystem across a bunch of XML files, rather than in a DB.
- Configuration of Jenkins itself happens primarily from the UI rather than in config files. This makes it very difficult to provision automatically.
- No HA story. Or there is a workaround and it relies on NFS. Which is basically the same as no HA story. For a piece of critical infrastructure this is very bad.
- Startup time is horrendous. If you build an AMI and put it in an autoscaling group to attempt to get some vague approximation of HA, boot times often tend to be so long that you need to increase your warmup health check a ton so the autoscaling group doesn't kill the server in an infinite loop.
Sure, you can ssh into your server and apt-get install it, but really you should be writing automation and not doing setups by hand.
So while it's nice to see some effort focused on the UI, since Jenkins relies on it almost exclusively, there are a lot of other fundamental problems.
I always try to use anything other than Jenkins unless forced to.