[web-devel] Haskell web application hosting

Greg Weber greg at gregweber.info
Sat Mar 26 20:14:25 CET 2011


Heroku is a tremendous asset for ruby developers, but it is also very
restrictive. Heroku has infrastructure components to satisfy 90% of web
apps, but when you want to use something they don't support you need an
alternative deployment solution. Also, some apps need better
disk performance then amazon can provide.

So LambdaEngine would be awesome, but the haskell web community still needs
a general purpose deployment tool. Unfortunately there isn't even a haskell
SSH library available right now.

As you outlined: We can deploy a production binary to a free micro instance.
To modify the idea of a compiler instance slightly, I would call it a
staging server. it would not be brought up by the production instance, but
instead by the user as part of the deployment process. That way the
production instance can stay dumb, and the staging instance can also be used
to test the application before deploying it to production. And of course,
the staging sever can be shut down and spun up on demand to save cost.
Here is a ruby deployment tool with amazon integration to give an idea of
what I am shooting for: https://github.com/wr0ngway/rubber/wiki/Quick-Start

In my mind, general deployment tools could provide a springboard for making
LambdaEngine, although there would certainly be some amount of divergence.

On Sat, Mar 26, 2011 at 10:32 AM, Michael Snoyman <michael at snoyman.com>wrote:

> Hi all,
>
> JP Moresmau recently sent me an email asking for recommendations on
> hosting a Yesod app. I think a number of you have heard me mention the
> idea of setting up a WAI web hosting system (code named Lambda
> Engine). I think it's time to start hitting this idea hard, and I'd
> like community involvement as much as possible.
>
> I think we have two extremes we can approach this from: at the one
> end, we can provide a complete hosting solution, similar to Heroku[1].
> People would simply "cabal sdist" their project, type "lambda-engine
> upload mytarball.tar.gz" and their site would be live. Lambda Engine
> would automatically handle database server configuration, DNS setup,
> and so on.
>
> At the other extreme, we could simply provide a set of shell scripts
> for setting up a vanilla Ubuntu (or Debian, or Cent, or FreeBSD...)
> install to support compiling a WAI application, provide an nginx
> setup, etc. The user would be responsible- and have the freedom to-
> set up his/her own server however he/she wants.
>
> There are lots of in-between points on that spectrum. For example, I
> was thinking of perhaps providing a central compilation server that
> everyone could use. In my experience, Haskell applications take very
> few resources to run, but actually building the things take a while.
> Compiling on a local system and then uploading is painful because (1)
> you have to deal with architecture issues and (2) you might have a
> slow upload speed.
>
> Anyway, I'm very interested to hear what other people think about all
> this. I'll enumerate a bunch of random thoughts on this topic:
>
> * Should this be a for-profit venture, bankrolled by a few members, or
> a community, non-profit approach? (I'm favoring the latter.)
> * If we decide to provide some serious hosting power, we might be able
> to make a deal with a hosting provider, stating that we're
> representing the "entire Haskell web community".
> * I don't really think this needs to be WAI specific: assuming we just
> use reverse HTTP proxies, this will work for any app that uses
> standalone hosting. We could also support FastCGI if we wanted.
> * Remember that Amazon is now providing a free tier, which provides a
> micro EC2 instance (available as either 32 or 64 bit). I think the
> micro instance should be sufficient for running a few web apps, nginx
> and PostgreSQL.
> * Since starting up and shutting down instances is so easy with
> Amazon, we could provide both a "web host" image and a "Haskell
> compiler" image. The web host could automatically start up a compiler
> instance as needed.
> * Are we going to provide email sending support, with all of the
> complications of dealing with spam lists, or simply offload to
> external services (like Amazon SES[2])?
> * Does anyone have a good recommendation on who to use as a host?
>
> Michael
>
> [1] http://heroku.com/
> [2] http://aws.amazon.com/ses/
>
> _______________________________________________
> web-devel mailing list
> web-devel at haskell.org
> http://www.haskell.org/mailman/listinfo/web-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/web-devel/attachments/20110326/adffbb4a/attachment.htm>


More information about the web-devel mailing list