- The PaaS space is getting squeezed on all directions; from the bottom by CloudFoundry and from the top from people like Heroku, Amazon and from startups like Parse chopping off verticals. Building a proper PaaS platform is a lot of work - tons of little edge cases, security concerns, scale concerns. All of it is very non-trivial and you can't just focus on one little scenario and hope to get away with it.
I suspect you'll see more people going the Phpfog->AppFog route, give up the general PaaS platform to CloudFoundry/Amazon/Heroku and try and move up the stack to provide value on top. I have no idea how DotCloud is doing but I'll be very surprised if they're doing well. I I love the team but I think they are in a tough spot.
Obviously, we have an interesting view on this whole problem. I'm personally of the opinion that PaaS is still not quite the right solution - there's certainly some progress, but there's such an murky boundary between what a platform and an app provides that it's hard to make something that doesn't surprise people in some way.
It's interesting to note that as a PaaS platform you do get an advantage over IaaS - you can share resources and box-pack apps a lot more efficiently when you control memory and disk access at that higher level, so it's not like IaaS is certain to win either.
I probably need to compose my thoughts into something more intelligible and write a full blog post about how I think deployment should evolve, but I have a migration to shepherd first.
We launched the first multi-language PaaS in 2010, when it was considered a stupid thing to do. We raised $10m from investors who agreed with us that you can't build a sustainable business by only focusing on one stack - you have to focus on solving the hard problems that are the same for everyone and that people pay to solve: scale, security, change management, support for future components, customization. We have 24+ months of runway and already make more money than Heroku did when they were acquired. Now single-stack platforms are running for high ground, as we correctly predicted.
How exactly does this put us in a bad spot?
This may sound unglamorous, but that is how our discovery process works, and it's allowing us to build a real business. And in the long run you need a business in order to avoid selling out and letting your customers down.
On top of that, epio seemed to be much easier to get started with for a basic django project, than both dot cloud and heroku, possibly because of the multiple platform issue.
interesting situation, the whole thing (i'm saying this as someone standing completely outside, looking in)
"I love the team" -> we love you too! :)
Indeed PaaS is an extremely tough market with tons of external competitive pressures. Right now there are two major strategies. The first is the notion of a 'polyglot' platform (Heroku, DotCloud, CloudFoundry) which is multiple languages/databases. The second, and our strategy, is focusing exclusively on a stack (node for us) and building tools and systems which work exclusively for the stack. Essentially, I believe it comes down to company resources which strategy to choose. When Heroku started they focused exclusively on Rails, and did it really well. Not until recently after growing the team and dominating the rails hosting market, did they make the huge shift to polyglot.
I'm interested to hear what you feel your business advantage is. Is it branding (e.g., someone wanting to host a nodejs project is more likely to head your way), or does the focus really give you a lead in the arms race against the 'polyglot'-er services.
These days everyone wants a streamlined, Heroku-style workflow. And yet it's interesting that despite the benefits of PaaS, many engineers just aren't willing to give up control of underlying infrastructure.
IaaS orchestration offers a different approach that provides many of the benefits of PaaS (auto-scaling, streamlined deployment workflow, etc) using raw IaaS building blocks. IaaS orchestration is also a challenging problem, but the space is less crowded.
Disclaimer: I'm the CTO of OpDemand and IaaS orchestration is what we do.
Yet we keep having to roll our own mini cloud on root servers because our clients fear for data security (and rightly so) when putting stuff on servers of US-based companies because of the Patriot Act.
Where are you based?
People drastically underestimate the effort required to make a PaaS platform and drastically overestimate people's willingness to pay. It's a dogfight of a market with brutal economics.
If a PaaS can't beat the internal price (including time, hiring ops people,etc), they're fighting a losing battle.
Even worse, most internal measurements drastically underestimate the competence required.
I went VPS because:
1. I'm more familiar with configuring my own web apps then trying to use someone else's admin console. (Low opinion of said consoles that I've seen in the past, but haven't tried Heroku or other new services.)
2. I need to run Node.js, PHP, and Ruby all on the same server. (Actually, just PHP and Node.js, which are in the same web app and so need access to a shared database. Ruby could be elsewhere at the moment.)
I'm still on VPS because:
1. Already paying for it, hasn't been a year yet
2. I still don't understand the new PaaS thing
3. PHP + Node.js PaaS host? Preferably with name recognition on par with Heroku, but at least lots of good reviews.
Complications of VPS are numerous, so I won't enumerate them. Lots of things to configure, update, and keep alive. Also it isn't the same OS as my dev machine plus I have to manage security for a public server but not for my desktop machine.
EDIT: just thought of one more reason I use VPS, I actually like ssh shell access. Ability to edit files and run arbitrary commands, many innumerable uses of this.
When I was in their beta program when they first started out they also gave you shell access to the machine so you could see what was being deployed, and run arbitrary commands (perfect for having an Python app that required running paste for upgrading the DB to the latest version).
In my experience with them I had absolutely no issues, it was fast to configure and set up and their command line tools were fantastic. It used git if you wanted it to, or could use any arbitrary directory and upload the contents.
Not only that but you could modify the nginx config file to change redirects and set static directories that shouldn't be handled by WSGI so that you could take a load off the Python app from serving up requests for static content.
I haven't used dotCloud in over 8+ months now, if not longer, their pricing just didn't make sense for me, and I found it cheaper with all the sites I host to just go with a single dedicated server rather than use their services so maybe a lot has changed, but they sound like what you need.
PaaS sounds like it could make my life so much simpler. I've tried out Ep.io, Heroku and DotCloud, and have test apps continuing to run in all of them but none of them are quite right yet for me to trust a client's production site in, so I'm yet another person replicating using Linode VPSs and a custom build and provisioning script.
Best of luck to all involved with Ep.io, and it's commendable to see their dignified plan including working with helping their customers move away to other services.
In our case, we use Brunch (node.js-based tool) to build client-side code. With Ep.io, we'd just build the code locally and then do `epio upload`. While Heroku requires everything to go through repository. Since it's impossible, I think, to run a Node.js tool directly on Heroku, we'd need to `git push` compiled code. It is not nice.
One thing you may be interested in is heroku-buildpack-multi which lets you run multiple buildpacks. You could theoretically use this to include the standard Python and Node.js buildpacks plus a small custom one that just installs and runs Brunch.
I definitely agree with other comments in this thread that paas and orchestrated-iaas are on a collision course. Exciting times!
In the long run, though, it's probably better to include the Brunch step as part of your build. With the new version of the dotCloud Python service, you can hack the build script to do whatever you want. For simple build tasks, there's one version of Node already installed, but you could also poach part of the Node build script to install another version, if you need it.
I've been using Ep.io for a number of apps, but one of them is http://laserey.es, which uses openCV. Andrew installed it on epio without a hitch, but I haven't found any other cloud hosting that offers it. Does anyone have suggestions where I could migrate it to?
Last time i checked it was in beta as well and we could't migrate media and database to and from the apps there - might be fixed now, maybe time to review them again (and checking if they finally got some servers in europe).
They were at PyCon and it sounded interesting. I tried openshift and heroku, and heroku was easier for me to get up and running with, but I am still interested in OpenShift.