My own solution was rotation of two DigitalOcean instances using floating IP (you can do the same with AWS, Docker, etc.) whenever I do a deployment. My project doesn't have heavy traffic (in that case, I'd consider some LB-oriented solution, like HAProxy).
Everything, including startup and warm-up, can be easily automated using deployment tools of your choice (for example, I'm using rake). On Tue, Jul 5, 2016 at 4:07 PM, Peter Hvass <peter.hv...@jamesinnes.com> wrote: > Hello all, > > The solution is kind of obvious here though I just wanted to feel around > for any alternatives. > > I'm deploying a small web application to a Tomcat 8 server handled by > Amazon Web Service's Elastic Beanstalk service - load balancers etc. etc. > > This is quite a busy site - so we'll typically see around 100 concurrent > users. > > When I deploy a new version of the web app, the 'first load' is very heavy > - mostly due to LESS compilation (tapestry-webresources, wro4j). When 100 > concurrent users hit for that 'first load' the server immediately falls > over in a 100% CPU death spiral. > > My workaround thus far has been to deploy the new version to a secondary > server, access it for the first load myself and then throw it to the > hordes. This is annoying and time-consuming. > > Ideally it would be great if LESS compilation could occur as part of > building the WAR file rather than live on the server. We never make changes > to files inside the WAR file directly. Has anyone been able to achieve > this? > > Kind regards, > Peter > -- Ilya Obshadko