Hosting clojure web app ( deployment strategies)

202 views
Skip to first unread message

Roman Yakovlev

unread,
Sep 23, 2013, 5:47:37 AM9/23/13
to clo...@googlegroups.com
Hi
Let's discuss some modern strategies to deploy clojure web app, from easiest to heavy ( for heavy traffic apps).
I suggest some ways.
1. Heorku way - the easiest one. I had experience with deploy to heroku it works out of the box, pretty simple really. For toy apps best way i think.
2. Immutant way - JBoss server app. I had no experience with it but as i see it's not so difficult to deploy and run your app this way.
3. Jelastic way- deploy as java app to the cloud.
So as i plan to make pretty heavy app (say 1000-3000+ hits a day) what best strategy i should choose for now ?

What's your experience with this ? Any suggestions and thoughts are welcome.

Michael Klishin

unread,
Sep 23, 2013, 5:52:31 AM9/23/13
to clo...@googlegroups.com

2013/9/23 Roman Yakovlev <feli...@gmail.com>

So as i plan to make pretty heavy app (say 1000-3000+ hits a day) what best strategy i should choose for now ?

As long as you have enough RAM for the app not to swap in/out all the time, 3000 requests per day is child's play
for JVM-based services.
 
 
What's your experience with this ? Any suggestions and thoughts are welcome.


Anything you like. Building an überjar with Jetty and running that is more popular than all of the
above put together.

Waldemar

unread,
Sep 23, 2013, 8:29:47 AM9/23/13
to clo...@googlegroups.com
In my master thesis I used compojure/ring with a jetty adapter.
It's a recommender  engine that runs completely in memory, so no need for external services calls or DB connections.

Deployed it as a jar to a amazon c1.large instance.
It is hit with 800+ request per second from 9 to 23 -> 40,320,000 per day.
The CPU is board at about 35%.

Hope this helps.


All the best,
Waldemar

--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Antonio Terreno

unread,
Sep 23, 2013, 9:57:16 AM9/23/13
to clo...@googlegroups.com
On Mon, Sep 23, 2013 at 10:52 AM, Michael Klishin <michael....@gmail.com> wrote:

2013/9/23 Roman Yakovlev <feli...@gmail.com>
So as i plan to make pretty heavy app (say 1000-3000+ hits a day) what best strategy i should choose for now ?

As long as you have enough RAM for the app not to swap in/out all the time, 3000 requests per day is child's play
for JVM-based services.
 
 
What's your experience with this ? Any suggestions and thoughts are welcome.


Anything you like. Building an überjar with Jetty and running that is more popular than all of the
above put together.

+1, 
to then physically put the uberjar into the live box some tools have been already suggested in this thread: https://groups.google.com/forum/#!searchin/clojure/fabric/clojure/oB9ZAFMdx24/z-KjcPo0IkEJ 
(http://docs.fabfile.org/en/1.8/http://www.ansibleworks.com/)

http://www.capistranorb.com/ or any other popular alternatives such as http://nadarei.co/mina/ will also do the job pretty well. 


--
Reply all
Reply to author
Forward
0 new messages