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

Reply via email to