Hosting Providers

287 views
Skip to first unread message

Adrian Mowat

unread,
Apr 18, 2014, 6:36:05 AM4/18/14
to clo...@googlegroups.com
Hi Everyone,

I am currently looking at hosting providers for Clojure for my company.  We are using Engine Yard for our Ruby applications and we looking for something comparable in terms of providing an easy path to getting started and easy ongoing maintenance (they allow you to apply OS patches with zero downtime by simply clicking a button for example).  We also need 24/7 support for server issues.

I was wondering if anyone here could share any experiences and/or recommendations?

Many Thanks

Adrian

Jason Stewart

unread,
Apr 18, 2014, 8:13:59 AM4/18/14
to clo...@googlegroups.com
Hi Adrian,

The only hosting provider that comes to my mind, thinking of your requirements is heroku. Applying patches is usually as simple as making an empty commit and pushing to heroku. Not every application will fit into the "heroku" way of doing things, but in my experience the ones that do are easy to manage without having to worry too much about devops.

Cheers,
Jason

Mike Haney

unread,
Apr 18, 2014, 8:43:31 AM4/18/14
to clo...@googlegroups.com
In addition to heroku, there is Amazon Elastic Beanstalk, which lets you deploy a WAR file on EC2 without having to setup the infrastructure yourself. Both are great ways to go.

I lean towards using Heroku for it's simplicity, but Amazon makes sense when you need to use other Amazon services like Dynamo DB (which looks like a great option for a Datomic backing store).

Adrian Mowat

unread,
Apr 18, 2014, 9:26:44 AM4/18/14
to clo...@googlegroups.com
Hi,

Thanks for the advice.  I should have mentioned that are are going to use Datomic but I'm not sure of the tradeoffs around different storage platforms.  Have I understood correctly that Heroku only offers Postgres as a storage option?

Many Thanks

Adrian



On Fri, Apr 18, 2014 at 1:43 PM, Mike Haney <txmik...@gmail.com> wrote:
In addition to heroku, there is Amazon Elastic Beanstalk, which lets you deploy a WAR file on EC2 without having to setup the infrastructure yourself.  Both are great ways to go.

I lean towards using Heroku for it's simplicity, but Amazon makes sense when you need to use other Amazon services like Dynamo DB (which looks like a great option for a Datomic backing store).

--
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 a topic in the Google Groups "Clojure" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/rdV-idmmGh0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mike Haney

unread,
Apr 18, 2014, 11:11:30 AM4/18/14
to clo...@googlegroups.com
I know they also have Mongo and Neo4j available on Heroku, but neither of those are supported as a Datomic back end. Postgres will work with Datomic just fine, though. The only hitch with Heroku is that I'm not sure how to go about deploying a transactor. Maybe someone has done it and blogged about it (i haven't looked), otherwise you'll have to figure it out on your own.

If you go the AWS route, there is good documentation for configuring Dynamo and deploying a transactor on the Datomic site. Then you could deploy your peer through Beanstalk and you're good to go.

That's the route I'm planning to take, but I'm still weeks away from setting up a staging environment. When I do get to that point, I can share my experience and any "gotchas" I encounter. If you get there first, or especially if you figure out how to do it on Heroku, maybe you could do the same?

Adrian Mowat

unread,
Apr 18, 2014, 11:13:48 AM4/18/14
to clo...@googlegroups.com
Hi Mike,

That would be really helpful. Thanks!  

We're much earlier in the process than you at the moment but I would be delighted to share anything that comes up 

Cheers

Adrian


Richard Watson

unread,
Apr 24, 2014, 9:51:08 AM4/24/14
to clo...@googlegroups.com
Hi Adrian,

You don't have far to look ... Engine Yard now supports Java, and by extension, Clojure.  If you can package up your Clojure app into a WAR file (using Leiningen's 'lein ring uberwar', for example) you can deploy it onto a Jetty or Tomcat server in an Engine Yard Java environment.

This is a post I published recently on the Engine Yard blog describing the components of a basic Clojure Web app and how to deploy onto Engine Yard.
https://blog.engineyard.com/2014/clojure-web-app-engine-yard

I'm Richard, Product Manager for Java at Engine Yard. Please, drop me a line if you're interested in trying your Clojure code on Engine Yard, or just go ahead and try it out at http://ui.engineyard.com . We're offering a $100 credit to try out the Java platform and give us feedback.

Richard.

Adrian Mowat

unread,
Apr 30, 2014, 6:27:05 AM4/30/14
to clo...@googlegroups.com
Hi Richard

Sorry for the delay.  We'll check that out!

Having said that, my inclination would be to avoid the compile step if we can and just run on top of the leiningen project (e.e. analogous to ruby apps).

Putting Engine Yard aside, it raises an interesting question so I am wondering what other people on this list do.  Do you compile your code or just run from the sources as you would in development?

Many Thanks

Adrian




--

Jarrod Swart

unread,
May 1, 2014, 8:27:48 PM5/1/14
to clo...@googlegroups.com
As Richard said most places that run Java, will run your Clojure.  Google App Engine and Engine Yard appear to take a WAR file.

lein ring uberwar (in your project dir)

While heroku pushes your code to the "server" and then does its magic.

git push <git of project_name>

If you run on your own servers most people do one of two things (from what I see):

1. They are familiar with Java app servers and so they use a WAR file
2. They do not have a dependecy on java servers and they create an uberjar, fronted by another server.

In the case of #2:

lein ring uberjar (in your project dir)

You then push up the uberjar to your server and put a proxy in front of it such as nginx.  This is what I do on digital ocean VPS for more trivial apps.

Mike Haney

unread,
May 1, 2014, 10:32:24 PM5/1/14
to clo...@googlegroups.com
One thing to keep in mind since he's using Datomic - there is currently no way to restrict access to the transactor, so it needs to be run behind a firewall. This can be done easily on AWS by creating a VPC where only the peer is exposed to the net.

Outside of AWS, you're pretty much on your own. This can be done on most hosting platforms, you just have to figure out the configuration for yourself. I'm not sure about Heroku - because of the way they build their dynos, I'm not sure how or even if a transactor could be deployed there.

It would probably be a good idea to start collecting info on deploying Datomic to different platforms as people try it and find what works (or doesn't). Maybe a community wiki or something.

Reply all
Reply to author
Forward
0 new messages