I think one of the selling points of Heroku is that if the box you're running on goes down, your service will just be started on another box and traffic will be routed there and you don't need to do anything.
I think one of the selling points of Heroku is that if the box you're running on goes down, your service will just be started on another box and traffic will be routed there and you don't need to do anything.
1. Dokku setup on a new server
2. Deploy your app from a git repository
3. Restore your database from backup
If you aren't comfortable with ansible you can use Fabric [0] or Sup [1]. I think there's even an ansible guide for Dokku deployment on their blog [2].One would think it will get better in newer versions.
But nope..
Didn't try it the last 2 or 3 years though
0: https://cloud.google.com/compute/docs/instances/live-migrati...
* Possibly multiple times. Instances on degraded hosts have a tendency to get stuck and you have to stop, and then stop again to force stop it, and then sometimes even that doesn't work and you have to just wait.
Source: have received lots of "EC2 Instance Retirement" emails
the topic is here is ease of use.
Comparing Heroku to VMs and correctly configured ASGs is fine for me as a sysadmin, but they’re not targeting the same simplicity.
I do see that it shouts 'EXPERIMENTAL!', so I guess it's 'experimental, but official'.
The warning there is more that if the scheduler plugins land in the core (which I hope to do some day), the official usage may change.
For instance, I'd love to abstract our ingress plugin such that it plays nicely with Kubernetes and Nomad (Nomad in particular, since there is no notion of ingress there at all) but that may mean that the ingress controlling functionality in the Kubernetes plugin changes signficantly.
Dokku _also_ has no notion of autoscaling at the moment, though both Kubernetes and Nomad have autoscaling tooling. It would be great to expose this officially somehow vs the plugin-specific method that is exposed in Kubernetes.
Note that at least the Kubernetes plugin is in active usage - even in at least two commercial products being actively sold.
The catch you mentioned has a few caveats:
- You can host the data for the install on a mounted volume, and replace the underlying instance at will (if you're using something like AWS or GCP).
- We support alternative schedulers (Kubernetes and Nomad, with others like Compose, Lambda, and Swarm coming soon). In the case of using an alternate scheduler, your apps won't go down if the build server goes down.
- Since it is self-hosted, your Dokku install's uptime is pegged to your infrastructure's uptime. So yeah, if you are installing it on a Raspberry PI whose uptime is decided by a light switch that is next to your kitchen and you accidentally switch it off every once in a while due to not being able to see the switch at night (very specific example, I know), then yeah, you'll be down for a little while.I may have read your comment wrong but it would be wholly unfair to expect Dokku to provide everything and the kitchen sink gratis.
I've seen tons of "Heroku alternatives" pop up over the past couple months, but they all seem to have (rather large, IMO) downsides of "it does A and B like Heroku, but not X, Y, and Z" (where again, IMO, X, Y, and Z are typically rather core features like redundancy/failover). I know everyone uses services for different reasons, but the general appeal of Heroku that I've seen has been the basically-zero-devops-ever-necessary-for-anything approach they've taken.
(I am co-founder)