5 ms·
That's OK for a side project, but Heroku's selling point is that it's both easier to setup than that, and also has the resiliency, scaling and features you need
by jordanthoms 6y ago
That's OK for a side project, but Heroku's selling point is that it's both easier to setup than that, and also has the resiliency, scaling and features you need for a proper production app. What happens if that EC2 instance dies suddenly or your EBS disk disappears, do you have point-in-time recovery for that DB? What about if you get an influx of traffic and suddenly need to scale beyond what a single server can do (which is admittedly pretty high). How about logging, deploys of a live copy of your site for each feature branch, etc? You can of course solve all those problems, but to solve all of them and do it as well as Heroku does will be a lot of work.
That said over time as the hosted k8s solutions have gotten better Heroku has comparatively become less compelling, plus while Heroku can get to a large scale, you will eventually start to run into limitations with what you can run inside a dyno which would force you to move to something else. Since you'll have a 12-factor app though, it's relatively easy to migrate, the hard part is finding a new platform which doesn't feel like a massive downgrade vs Heroku.
- danielheath 6y ago> What happens if that EC2 instance dies suddenly or your EBS disk disappears, do you have point-in-time recovery for that DB? Nah, and that's a bit of a hassle. Yesterdays data will do in a pinch (they'll have to manually rekey a days worth of data and some might get forgotten, but that's what stocktake is for). That said, it's been running continuously for 3.5 years without downtime so far. > What about if you get an influx of traffic and suddenly need to scale beyond what a single server can do (which is admittedly pretty high). This particular app serves a small business, and I'm quietly confident they'll contact me before adding more than 100x their current staff overnight. It's currently running on a t3.micro, but I'd expect upgrading to a p4d.24xlarge with 1tb ram, 8gb NVME storage and 96 vCPUs will handle it if they do. > How about logging If I want to read the log files, I ssh in and read them. Sometimes I even scp them to localhost. > deploys of a live copy of your site for each feature branch I don't need that for a project with one developer and one stakeholder - I can just share my screen and walk him through what I'm changing.
- woah 6y agoSounds like you two are in agreement
- whatsmyusername 6y agoIf you want a value add for your resume, add sumologic. 500mb/day + 7 days retention is free for a non-gmail account and the insight you can get out of it is enormous. Especially if you json your logs (it busts all the fields out and does mouseover statistics all for you). And it can become the brains of your alerting system (no logs for x time? Email me, etc)
- irjustin 6y agoThe key point being, you know how to do all that. Managing it is easy for you. If you didn't know all that, how long would it take vs `git push` to deploy your website? Startups live and die by the ability to rapidly test ideas and go with the ones that stick. Heroku removes the absolute need to have devops knowledge.
- kaliszad 6y agoHaving at least a tiny bit of DevOps knowledge can save you a ton of money. Actually setting up GitHub Actions with a special SSH key-pair just for the deploy in GitHub Secrets took me a few hours from 0 to full deploy of code. I haven't seen the code to build before as I was at that time just consulting, I was sick and haven't known GitHub Actions until then. The same setup runs for a year already, I joined the company in the meantime :-) We can push to production or staging (different machines) and it just works for what we need. Heroku is great, if you just want to start with something and show a proof of concept. As soon as you are doing more than just that you will probably get the first steep bills (at least from my point of view). We actually migrated from Heroku just a bit more than a year ago.
- deleted 6y ago[deleted]
- kaliszad 6y agoIt doesn't have better resiliency, when you just need more RAM than it can offer at reasonable cost. I mean a comparable VPS is more than an order of magnitude cheaper. It is not the best advice to burn money on infrastructure, if you don't need to. Yes, start on Heroku and get some users first. Migrate to something else as soon as you cross the $50 mark or so, you will get much better performance and most likely stability for the same money. Most companies I know wouldn't really profit from k8s much if at all. A handful of VPS's setup half automatically using Ansible and a few clicks will be probably just enough. You will know, when you need to scale out to many servers when k8s is probably the better approach. You will probably have people doing just that full time at that point.