-
Notifications
You must be signed in to change notification settings - Fork 11
Platform Options
jducoeur edited this page Oct 30, 2012
·
16 revisions
We might run on any of several possible platforms.
- Looks easy to set up nodes
- Very flexible
- A bit more "bare metal" than some of the options, so more work
- Pricing plans are not that flexible -- looks like, to get double the RAM, you have to take double the disk. That doesn't necessarily match our desired setup well.
Heroku homepage
Getting started with Scala on Heroku
Heroku Scala Support
Akka and Heroku example
Like many of the Java-specific systems, Heroku doesn't appear to expose raw Apache. This is a bit of an issue, since we would like to have the browser do URL rewriting for us, so that space 12345 could have a notional subdomain "12345.querki.net". (Thus making the browser do most of the hard work of preventing XSS attacks.) They do provide wildcard domains -- "*.querki.net" -- so we can allow this, but we'd have to do the URL rewriting ourselves. Which begs the question: how easy is that in Play?
- Fairly native for Play.
- Small heap size will force me to architect well for horizontal scaling.
- Apparently has solid integration with Facebook -- indeed, it looks like Heroku is FB's preferred hosting provider for apps. (And we will be in at least some senses a Facebook app.)
- 750 free "dyno-hours" per month, which should do decently well for initial prototyping.
- Strictly limited to 512M heap per instance. That's probably usable, but slightly risky.
- Postgres-centric; MySQL is just an add-on. Probably not a big problem.
- Isolation policies are very extreme: "Individual dyno processes of the same process type (e.g. the web process type) cannot communicate directly with each other. For example, they cannot replicate state between them. Heroku is a share-nothing architecture where each node is completely isolated." You can use message queuing (like CloudAMQP) to get around that, but it may be more hassle than it's worth.
Jelastic homepage
ServInt Hosting Service Homepage
- Looks to be more flexible than many competitors. Provides root access to the machines.
- Reasonably flexible about vertical scaling, up to 32 cloudlets (4 Gig RAM) per node.
- Usage-based pricing, instead of upfront decisions.
- Prices look plausible.
- Explicitly runs most of what we need, including MySQL, Postgres, Scala, Play.
- Relatively vanilla, so not much lock-in risk.
- A tad more primitive, with fewer services than most of the competitors. Would likely require more manual support from us.
- Documentation looks a bit weak.
- Only scales to 8 nodes? Really? That would mean that we could only use it for a little while.
- Web server comes out of your memory allocation, which drives up costs. Costs several "cloudlets" just to run the server.