top | item 40456959

Show HN: Porter Cloud – PaaS with an eject button

258 points| sungrokshim | 1 year ago | reply

Hi HN! Porter Cloud (https://porter.run/porter-cloud) is a Platform as a Service (PaaS) like Heroku, but we make it easy for you to migrate to AWS, Azure, or GCP when you're ready.

Like Heroku, Porter takes care of a lot of generic DevOps work for you (like setting up CI/CD, containerizing your applications, autoscaling, SSL certificates, setting up a reverse proxy) and lets you deploy your apps with a few clicks — saving you a lot of time while developing. However, as you probably know, there’s a downside: platforms like this become constraining if and when your app takes off and you need to scale. The time you saved while developing can get pretty expensive once you’re paying for a lot of users — and the platforms tend to try to keep you locked in!

Our idea is to give you the best of both worlds: use Porter Cloud for as long as it saves you time and development cost, but at any time you can press the “eject button” to migrate your app to your own AWS, Azure, or GCP account as you please. We make it seamless to break out, so you’re no longer subject to the rigid constraints of a conventional PaaS. You can migrate in a few simple steps outlined here: https://docs.porter.run/other/eject.

A bit of background: we first launched on HN almost 3 years ago with our original product (https://news.ycombinator.com/item?id=26993421, https://porter.run), which deploys your applications to your own AWS, Azure, or GCP account with the simple experience of a PaaS.

Since then, we’ve helped countless companies migrate from a PaaS to one of the big three cloud providers. Most of them had gotten started on a PaaS in the early days to optimize for speed and ease of use, but ultimately had to go through a painful migration to AWS, Azure, or GCP as they scaled and ran into various constraints on their original PaaS.

Interestingly, we learned that many companies that start on a PaaS are fully aware that they’ll have to migrate to one of the big three public clouds [1] at some point. Yet they choose to deploy on a PaaS anyway because outgrowing a cloud platform is a “champagne problem” when you’re focused on getting something off the ground. This, however, becomes a very tangible problem when you need to migrate your entire production infrastructure while serving many users at scale. It’s a “nice problem to have”, until it isn’t.

We’ve built Porter Cloud so that the next generation of startups can get off the ground as quickly as possible, with a peace of mind that you can effortlessly move to one of the tried and true hyperscalers when you are ready to scale.

We are excited to see what people build on Porter Cloud. If you’ve ever dealt with a migration from a PaaS to one of the big three cloud providers, we’d also love to hear about your experience in the comments. Looking forward to feedback and discussion!

[1] By “big three clouds” we mean the lower-level primitives of each cloud provider. We don’t mean their higher level offerings like AWS App Runner, Google Cloud Run, or Azure App Service, since those run into the same PaaS problems described above.

95 comments

order
[+] jedwhite|1 year ago|reply
We migrated microservices from Heroku to Porter, and also from standalone VMs and K8s running on AWS to Porter. As a coder trying to do both dev and devops on a tiny team, it was life changing for me.

The key benefits for a small startup team are:

1. Effortless CI/CD: Deploying services on K8s clusters across different clouds becomes trivial. Setup a dockerfile in your repo, point Porter at it, deploy. We mostly run APIs behind AWS API Gateway.

2. Startup credits: You can use your existing credits on AWS, Azure etc.

3. Zero lockin: You can deploy in parallel and switch service providers.

4. Devops expertise: The Porter team have given us next-level hands-on support and help to figure out how to run things optimally. A lot of sensible defaults are built in. As a coder, they have knowledge of how to scale services effectively that (to be blunt) I couldn't match no matter how much time I spent trying to learn it as a lay person.

If you're a K8s and devops master, you probably don't need this. If like me you're a programmer with limited devops skills looking for the fastest and easiest way to just solve deployment and scaling, Porter is close to magic. Plus they have one of the most helpful and friendly teams I've worked with anywhere.

(edit for typo)

[+] taspeotis|1 year ago|reply
> Devops expertise: The Porter team have given us next-level hands-on support and help to figure out how to run things optimally

How long until they’re victims of their own success and can’t give every customer bespoke support…

[+] hahahacorn|1 year ago|reply
We migrated from Heroku to Porter at work (at my behest). Still one of the better bets I’ve taken.

There is definitely still some more devops overhead compared to Heroku, and I wish the product was a bit more mature. But even at ~$18k/mo on Heroku spend we’re now spending less than half with Porter. Other than myself and the other engineer who were responsible for the migration, the rest of the team really got to keep their work flows and there was little impact except for swapping some tools.

We had a messy, poorly documented web of micro services and shit too, the Porter team made the migration surprisingly easy all things considered. I’ll work with them again if I ever scale past a $10k/mo Heroku bill (post enterprise contract) with another team.

[+] sungrokshim|1 year ago|reply
Great to hear that!

> I’ll work with them again if I ever scale past a $10k/mo Heroku bill (post enterprise contract) with another team.

We built Porter Cloud so you can just start on us from day 1 and migrate to the Porter you're used to when you're ready, without spending much effort on the migration :)

[+] emilio2601|1 year ago|reply
> the Porter team made the migration surprisingly easy all things considered

As the second engineer who worked on this migration I'd like to add on to this — the Porter team went above and beyond for us on this process and made it so easy for us.

At first I was wary of all the moving parts we'd have to manage but they took care of a lot of complex things for us and let us have our site running over on Porter very quickly. Even at our not sky-high Heroku spend, the ~3 engineer-months we spent on this are probably paid back by now. Can't recommend them enough.

[+] latchkey|1 year ago|reply
I personally don't get it. You can start on GCP today, without being tied to GCP much at all. It isn't even expensive to do so. Is there something I'm missing here?

Cloud Functions are just a http handler with no hard dependencies on GCP.

Cloud Tasks are just a handler and the tasks just hit your Cloud Functions.

Cloud SQL is just postgres.

You connect your github with actions that CI/CD auto deploy to the above.

If you do it that way, you're pretty much dependency free and can move anywhere else if you need to.

[+] sungrokshim|1 year ago|reply
As long as the cloud providers of the world keep inevitably converging to, often against their own will, a single standard for each piece of the infrastructure (e.g. k8s, postgres, S3), most things that you deploy on the cloud will remain portable. You are never truly locked-in.

Similarly, if you want to, you can move away even from a PaaS that is explicitly designed to lock you in to another cloud provider. And as I mentioned in the post, this is exactly what we've done for countless companies that wanted to move from a PaaS to the big 3 cloud providers.

The more important question is: what is the switching cost? Why do companies so rarely switch hosting providers and if they do, why does it take months and sometimes years for them to move?

We want the process of moving from Porter Cloud to one of the hyperscalers as arbitrary as a click of a button.

[+] oooyay|1 year ago|reply
> Is there something I'm missing here?

Your statement on the ease of migration really depends on your skill set. An increasing number of software engineers do not have to deal with real infrastructure whatsoever. Most of the "big" companies I've been at have pretty ready made platform abstractions for their engineers.

[+] jusrhee|1 year ago|reply
Cloud providers (particularly the hyperscalers) are ultimately bundles of multiple services. Given that the hyperscalers do almost everything, you could extend this point in a variety of ways: why do companies already on AWS bother to use MongoDB, Snowflake, or even GitHub when DynamoDB, Redshift, and CodeCommit exist?

The answer tends to boil down to a combination of developer experience, performance, and pricing. Fwiw the actual platform offerings on GCP are also more intuitive than the equivalent services on AWS + Azure where most businesses/startups are hosting services

Edit: cloud vendor lock-in is also a very real phenomenon regardless of how much it just "looks like" all cloud providers should be easily interchangeable. Needless to say, the incentives when you make money selling compute are to keep people on your stuff

[+] dangoodmanUT|1 year ago|reply
You're just like the dropbox launch just use ftp guy
[+] zackify|1 year ago|reply
I agree, people act like these big providers are so difficult. Almost all of them offer some form of container deployments that takes 30 minutes to setup a GitHub action workflow for, and as long as you keep using open source stuff, like postgres on cloudsql, you are never locked in
[+] neeleshs|1 year ago|reply
Cool concept. In my experience, the biggest headache/expense is data migration, and not software migration. As long as the stack is vendor neutral, it's not the long-poll, though it is gruntwork.

In the SaaS world, maybe this will be useful to run managed cloud services? (That is, customer A wants a private instance in AWS and customer B wants it in Azure)

[+] mushufasa|1 year ago|reply
I looked into porter at the time we were migrating from Heroku to AWS! I thought it would have been a great solution if it was mature when we first started on heroku.

At this point, I have to ask: what's your business model? The reason heroku never made it easy to migrate is the incentive you point out.

What's yours?

[+] mushufasa|1 year ago|reply
To wit, I ask because:

1. key to a buying decision: I see the documentation for Eject and it looks good, though like any product you'll only able to support it over time if it makes business sense for you

2. I'm interested in this challenge generally cross-industry for companies that sell 'get off the ground' services to startups, on a high margin usage-based model. It's a business model with a constant sword of Damocles, because if your customers do well they would have to leave.

AFAIK the only real solutions

- technical lock-in, either by making it concretely hard or "soft" hard (introduce a whole training regime for employees based on your systems with idiosyncratic concepts and terminologies, so the human skills aren't transferrable)

- build out a kitchen sink featureset including niche products specific to enterprises (a lot of GRC stuff), so they'll keep paying you high margins at scale (this is AWS's journey.)

- invest/take equity in your customers (this is only a partial solution but if they leave at least you'll capture some upside. See: Peak6/Apex & Robinhood)

- capping your fees to a flat upper rate (this will destroy your own expected customer LTV though you keep the customer)

- lock-in long multiyear contracts (this is also a partial solution)

- become an IP troll (e.g. oracle badgering it's legacy customers)

- deliver revenue or addressable markets to your customers that they wouldn't otherwise be able to get (no iOS developers choose it *because of* Xcode or Swift; it's the marketplace)

[+] theturtletalks|1 year ago|reply
They charge for managing the kubernetes instance that’s running on your infrastructure. What’s cool is that you can stop using Porter once everything on AWS/Azure/GCP is set-up and you’re not locked in. You just have to manage the cluster yourself.
[+] scottmessinger|1 year ago|reply
Very cool! As someone pointed out, your github repo says it was archived: https://github.com/porter-dev/porter-archive Naively, I would think Porter cloud would just be a managed version of your porter-dev/porter-archive. Could you talk about how it's a different product than before? Did the code base change significantly?
[+] jusrhee|1 year ago|reply
Our archived repo functioned as more of a Kubernetes-centered dashboard - Porter Cloud is intended to offer a more complete PaaS experience including spinning up non-application resources like databases
[+] pil0u|1 year ago|reply
Hey thanks for sharing.

You mention 3x cheaper than Heroku, but the pricing page specifies $10 per month GB RAM, $20 per month vCPU.

I'm having a hard time to compare with Heroku with that information. Also, what about Postgres hosting?

[+] jusrhee|1 year ago|reply
Founder here - the "up to 3x cheaper than Heroku" depends on the exact compute profile, but as a point of reference, Heroku pricing starts at $250/mo for a single 2.5 GB RAM instance on their Performance tier (https://www.heroku.com/dynos). Generously assuming that you get 2 dedicated vCPU cores, the equivalent Porter cost is ~3-4x cheaper

Edit: Porter Cloud also supports Postgres and our in-your-own-cloud offering just uses RDS under the hood for AWS

[+] seffect|1 year ago|reply
I think your natural competition here is:

1. Things like Digital Ocean that make it easy and can scale up

2. The PaaS offerings of the major clouds for example Microft Azure Appspaces.

I think your advantage might be that you could eject into something more enterprise ready perhaps with Terraform/k8s etc. You could also sell consulting time to help the ejector transition to cloud. Because rearchitecting is part of the issue but the new devops and maintenance load is another issue people will need to deal with.

[+] z33k|1 year ago|reply
I think you're right. In fact, that's the stack I would recommend right now to a new (web) app developer. Write your own Dockerfile, some terraform to spin up a docker host on DO, and a bit of GH Actions yml to pass secrets, build dockerfile, upload to container registry, terraform apply. It's a fun weekend project. It's interesting how many ways there are to "build your own PaaS".
[+] zackify|1 year ago|reply
Fly.io is too good and no reason to leave it. I am enjoying it much more than DO too
[+] michaelmior|1 year ago|reply
Sounds like an interesting tradeoff. I noticed that the link to GitHub in the footer 404s however. I was hoping this was OSS.
[+] malyk|1 year ago|reply
At HomeLight we migrated from Heroku to Porter and it has been great. The team has been super helpful, the platform as stable as you can get, and the cost savings have been tremendous.

I’d highly recommend Porter as the place to go to get started these days. I don’t see any reason that we will migrate away in the next few years, if ever.

[+] schappim|1 year ago|reply
This is a great idea.

For our startup, we instead use Hatchbox [1]. It provides us with that one-click PaaS experience while allowing us to run on your preferred platform (AWS).

[1] https://hatchbox.io

[+] bkitano19|1 year ago|reply
Had this exact problem (Heroku Postgres to RDS) at my old co. Data migration went as bad as it possibly could (dropped indices, foreign keys, everything but the data itself). This would have saved us months of pain.
[+] tmaier|1 year ago|reply
I wonder how that category of services, which Porter provides could be called.

I would put the following services in that category:

- Porter - Cloud66 https://www.cloud66.com - Hatchbox https://hatchbox.io

They all manage infrastructure on your behalf within a larger Cloud Service Provider.

Terms I could think of are "DevOps as a Service" or "Platform Engineering as a Service".

How would you call this?

And what alternatives do you see?

[+] dockerd|1 year ago|reply
I don't understand the developer's pricing (new offering) which is as below:

$10 per month GB RAM

$20 per month vCPU

As compared to standard pricing which is:

$6 per month GB RAM

$13 per month vCPU

Isn't the developer pricing for small project expected to be less than standard? If its costly than standard pricing then what is the benefit of developers pricing?

[+] dockerd|1 year ago|reply
The standard pricing doesn't include underlying cloud provider cost. The pricing page can be more clear.
[+] wmab|1 year ago|reply
Congrats on the launch guys! This is a great feature, in a world where most companies try to increase lock in!

Huge fans of Porter, we've been using them for a number of years at Woflow and they've helped us scale effortlessly.

[+] sosodev|1 year ago|reply
Is the eject button the only thing that makes Porter more appealing than something like Fly.io or Render? They too automate a lot of stuff but for a better price.
[+] mst|1 year ago|reply
I think it's not just the eject button, but Porter's service automation model being designed to move elsewhere with equivalent moving parts underneath.

I wouldn't be surprised if as a result migrating from Porter to elsewhere without using the eject button would probably be easier than migrating from fly.io - a sensible architecture on fly is likely more different to a sensible architecture on a 'normal' cloud platform.

(I could be completely wrong about all of this and would want to see worked examples before I get more certain than "wouldn't be surprised")

[+] highmastdon|1 year ago|reply
Would this be something to use over Docker containers when running a single host homelab server? What would be the cons/benefits?
[+] MobileVet|1 year ago|reply
I have never quite understood this value proposition (maybe I am not the target audience?) The point of PaaS is to avoid DevOps... making a PasS with an eject just feels orthogonal to the value prop of the main business. Ejecting seems like a low probability event as they CHOSE PaaS in the first place. (unless the money got really high)

We included Porter in our post-Heroku research and chose Render. We have loved Render and expect to be with them for quite a while (as we were with Heroku). If they happen to go south as Heroku did, we will find another PaaS... we will not 'eject' to bare metal or self configuration on AWS.

[+] re-thc|1 year ago|reply
> maybe I am not the target audience

There’s a point in which the hosted PaaS is too expensive.

And what will you do when there are millions to be saved?