13 ms·
I am so glad to see this. I was looking to deploy an app and the choice is either Heroku or manage your own server which I don't want to do. Heroku gives insta
by user5994461 6y ago
I am so glad to see this. I was looking to deploy an app and the choice is either Heroku or manage your own server which I don't want to do.
Heroku gives instant deployment for the most common types of apps (python/java/ruby). It's PaaS done right, it's fantastic. You should really have a look if you're not aware of it, it's only $7 for a starter app.
Problem is, scaling up is about $50 per gigabyte of memory which makes it a dead end for anything non trivial. You're forced to go to digital ocean / Linode / OVH instead to have something affordable.
That leaves Digital Ocean as the only alternative (don't trust Linode) and it sucks because it only gives me a server to manage. I don't want to manage a server I want to run a (python) application. It's 2020 this sort of things should auto deploy from GitHub without bothering me to manage an operating system.
- ksajadi 6y agoThere is also Cloud 66 which works with not only digital ocean but many other cloud providers, like a Heroku on top of any cloud.
- joemclarke 6y agoI use cloud66, it works great!
- leoplct 6y agoCloud66 it's really a great service! I have been using for almost a year to deploy a rails stack and it works good.
- throw49477721 6y agoHow does Heroku and these app hosting services handle updates to the underlying OS and other dependencies? Do they only patch non-breaking updates? Or are you on their schedule to ensure your app will run on the latest version?
- user5994461 6y agoWho cares? The point is that it's their problem, you don't need to think about it, it's done for you. =) In practice your application restarts at least once a week. It's transparent because a new instance is started first and takes over. The provider can move applications around to add/drain servers and perform maintenance.
- tomwojcik 6y agoAFAIK Dyno is alive for 24 hours or less +-1h, not a week.
- rsanek 6y agoYou are indeed "on their schedule" -- see eg https://devcenter.heroku.com/changelog-items/1603 https://devcenter.heroku.com/changelog-items/1603. But that's the trade-off you deal with, so that you don't have to manage all this stuff yourself.
- 076ae80a-3c97-4 6y agoIt's probably worth looking into the big cloud providers rather than the little guys. In Azure you can have an app service (a deployed app in any one of loads of languages without looking after the machine it sits on) with 1.75GB RAM for about $12 a month. Obviously your usage may vary and that will effect the price. But I get the feeling that the big players are cheaper than people think they are for small projects.
- user5994461 6y agoThe big players have separate charges for bandwidth and disk and other hidden stuff. They are way more expensive than Digital Ocean / OVH all inclusive. Worse, the costs is unpredictable which makes them a no go for a side project, I can't risk accidentally getting a $1000 bill. As a real world example, I run a personal blog. If it were running on S3, my personal finance would have been obliterated when it got featured on HN and served 1+ TB of traffic.
- earthboundkid 6y agoCan HN really deliver enough traffic to a static site to cost a significant amount? I've had mildly popular posts on HN for my Netlify blog (John Carmack tweeted about it!) and not had to pay for bandwidth.
- donmcronald 6y agoNo. I don't think so. The concern for me is a lack of hard limit on spending on GCP, Azure, and AWS. If I screw up and allocate a bunch of resources unintentionally, I'm left holding the bill. That's a terrible setup for PaaS because all programming involves mistakes eventually, especially for new users learning the system. Granted, there are likely limits on accounts, but those are to protect the services from fraud, no to protect the user from overspending. The limits aren't well defined and it's not something you can rely on because MS might consider $10k / month a small account while it's a ton of money for me. Azure customers have been asking for hard limits on spending for 8 [1] years with radio silence for the last 5. There's a difference in goals I guess. If I spend more than expected I WANT things to break. Microsoft, Google, and Azure want me to spend unlimited amounts of money, even if I don't have it. At least AWS can be set up using a prepaid credit card so if I screw up they have to call me to collect their money and I negotiate. 1. https://feedback.azure.com/forums/170030-signup-and-billing/suggestions/3238796-spending-limit-or-maximum-cost-cap-for-azure https://feedback.azure.com/forums/170030-signup-and-billing/...
- isaac21259 6y agoWhy don't you trust Linode?
- ohashi 6y agoGuessing due to multiple security incidents
- woogley 6y agoNot only that, but outright lying about the breaches. When I used them in early 2010s, they managed to expose two different virtual CC numbers (which I _only_ used for Linode) to fraudulent charges. But both times they insisted I was not part of the breach they were suffering at the time ...
- fuster 6y agoOh wow I think I just figured out how a VERY limited-use card number got stolen around that same time.
- user5994461 6y agoYou can search HN for top articles mentioning linode. The comments speak for themselves. Basically Digital Ocean is better in every aspect you can think of.
- pqdbr 6y agoStrongly disagree. Very been a customer for years before DO was launched. I've always benchmarked the same apps under the same load in both of them over the years and Linode has beaten DO every single time. Never had any issues with them.
- stickfigure 6y agoDon't forget Google App Engine! Though, it's even more expensive than Heroku.
- bastawhiz 6y agoHas GAE sorted out secrets management? Last I checked, they required you to commit secrets to the repo you push, which necessitates your secrets being on whatever computer (or whoever's computer) does production deploys. Contrast this with DO/Heroku/etc. which lets you set environment variables. Some folks suggest using a DB to store secrets on GAE, but this is (IMO) just obfuscation.
- praet 6y agoYes, they added Secret Manager early this year: https://cloud.google.com/secret-manager https://cloud.google.com/secret-manager
- ypeter 6y agoAnd before this you could implement Cloud KMS in your app to decrypt the encrypted secrets you can store in your repo.
- bastawhiz 6y agoThis still seems ridiculous. Why did I need to keep secrets in my repo to begin with? GAE, as far as I can tell, has been the only major PaaS that hasn't offered a solution for this. It's so easy to get wrong...it contradicts one of the biggest rules of version control: keep your secrets out of your repo.
- stickfigure 6y agoThere are a million ways to do it that don't require Google? Your CI system builds the production image, it can get secrets from anywhere.
- pier25 6y agoThere are more options than Heroku: - Google App Engine (PaaS) - Google Cloud Run (serverless containers) - Fly.io (serverless containers with a minimum of 1 container running per configured region)
- hacklivelove 6y agoalso Jelastic PaaS, and the price is more flexible there
- dubcanada 6y agoFortRabbit.com Platform.sh There is probably a good hundred of them at this point.
- iagovar 6y agohttps://scalingo.com/ https://scalingo.com/ too.
- ledgerdev 6y agoFly.io is more exciting for me because it's edge app servers and it terminates web sockets. I've been envisioning a live-view like framework, or heck even a regular old rest api, where the client connects to the fly.io server with a single request then the app server makes a request to N number of back end processing servers using an efficient protocol like grpc.
- Existenceblinks 6y agoThe only missing piece for fly.io is data layer. The given redis is only for caching purpose. Once there is a managed distributed data store add-on, it's done. It's very likely liveview will need to hit database. Right now pubsub with redis adapter is the easiest solution for cross-region phoenix application (well, phoenix IS my application!)
- frafra 6y agoIt is cool, but it does not scale to zero, so if you have N services you will end up paying for at least N instances.
- NOGDP 6y agoThe digital ocean volume pricing of $1/10GB per month seems very steep... I can literally buy fresh SSDs every month for that money. The container pricing is reasonable though.
- TylerE 6y agoYou're reading it wrong. For $5/month you can get 250GB of storage with 1TB outgoing. Additional is $1/100GB and $10/TB
- NOGDP 6y agoI must be missing something: https://i.imgur.com/3PNqSt5.png https://i.imgur.com/3PNqSt5.png Edit: You're talking about spaces[1], I'm talking about volumes[2]. [1] https://www.digitalocean.com/products/spaces/ https://www.digitalocean.com/products/spaces/ [2] https://www.digitalocean.com/products/block-storage/ https://www.digitalocean.com/products/block-storage/
- gen220 6y agoIn digital ocean, I believe you get a volume for free with your $5/month instance/droplet (it's not added separately, which differs from most other cloud providers). The screenshot you shared is attempting to add additional volumes to a droplet. See the pricing for droplets, it includes 25GB of SSD and 1TB of transfer. https://www.digitalocean.com/pricing/#basic-droplets https://www.digitalocean.com/pricing/#basic-droplets
- names_are_hard 6y agoThis is the approximately going rate for all the major cloud providers (links [0]). Sure, you could buy your own SSDs, but how are you going to connect them to the VMs? I suppose this might be where their profit is, especially because these are logical volumes anyway. But it's not like you can just go out and beat this price at home with minimal effort. [0] Amazon ($0.1/GB): https://aws.amazon.com/ebs/pricing/ https://aws.amazon.com/ebs/pricing/ Azure ($0.075/GB): https://azure.microsoft.com/en-us/pricing/details/managed-disks/ https://azure.microsoft.com/en-us/pricing/details/managed-di... Google ($0.17/GB): https://cloud.google.com/persistent-disk/#section-7 https://cloud.google.com/persistent-disk/#section-7 edit: formatting
- emilsedgh 6y agoThis is spot on, except for one thing: Google Cloud Run. It's the closest offering I've found to Heroku and am planning to migrate all our services to it due to significantly better pricing. Make sure you look into it.
- blaisio 6y agoGoogle Cloud Run doesn't provide nearly the same features as Heroku. For example, there is no easy way to manage secrets with Cloud Run. There is no way to run a worker process. Integration with other Google Cloud things like Cloud SQL is clunky. Cloud Run is okay to get started but almost all apps will need more.
- fdweitendorf 6y agoHow would you like to see the integration with Cloud SQL improved?
- jsmeaton 6y agoWe've been successfully using Cloud Tasks and firing payloads right back at our HTTP cloud run service to solve for the lack of background workers. We had to build a mini-framework around it, but it works surprisingly well. https://cloud.google.com/tasks https://cloud.google.com/tasks
- manigandham 6y agoIt's built around everything being an HTTP request, and billing for the continuous seconds of time the app needs to run to service those calls. You can run worker code by moving them into individual HTTP calls, triggered by whatever workflow you want. Cloud Tasks, PubSub, Cron, etc.
- tomd 6y ago> there is no easy way to manage secrets with Cloud Run See https://cloud.google.com/secret-manager/ https://cloud.google.com/secret-manager/ I recommend this community-maintained FAQ on Cloud Run: https://github.com/ahmetb/cloud-run-faq https://github.com/ahmetb/cloud-run-faq
- noodle 6y ago> Problem is, scaling up is about $50 per gigabyte of memory which makes it a dead end for anything non trivial. That isn't exactly true, for a few reasons. First is, the top tier public sticker price is roughly $35/GB. Second is, at higher scales, you'll sign a contract with them that discounts your rates further. Third is, this is presuming you're paying $ for memory alone. While that might be relevant for individual apps which need that specifically, on the whole you're paying for the ecosystem, the standardization, the PaaS. You're trading money for your time back. The product you're buying is not simply GB.
- anamexis 6y ago> Third is, this is presuming you're paying $ for memory alone. While that might be relevant for individual apps which need that specifically, on the whole you're paying for the ecosystem, the standardization, the PaaS. You're trading money for your time back. The product you're buying is not simply GB. Except when the only thing you need over the $7 hobby instance is more memory.
- wolfgang000 6y agoWhat problem did you have with linode? I had been using them for a couple of months and the experience so far has been great
- ledgerdev 6y agoThey have a history many years back, of not being fully truthful with customers about hacking incidents. Do a google search. relevant: https://news.ycombinator.com/item?id=5667027 https://news.ycombinator.com/item?id=5667027
- fishywang 6y agoI've been using Google App Engine as the backend of my scratch-my-own-itch Android app. Granted it only has 60+ active users (according to Google Play Console) but my monthly bill for that has always been <$1 (the parts that's not free are secret manager and storage to store my deploys). You can even run multiple App Engine apps for mostly free, because their free tier is calculated based on the actual instance-hours running, and with App Engine you can configure it to that when you don't get any traffic there's no instance running (they spin up a new one when there's a new request in that case).
- ausjke 6y agoWhat about just write golang-one-static-binary app and you don't need a deployment platform at all? rent some cheap VPS and put a nginx in front for load-balance. To update it just stop the binary and copy over a newer one, and restart, that's it. The way to deploy java/python/ruby/node.js is complex on their own, I feel golang can fix that part by the language design itself.
- dvcrn 6y agoWhy not take the initial complexity cost and learn k8s and containerization? That's what I've been doing as a step-up from Heroku and have been very happy with it. My project currently runs on Digitalocean managed k8s and setting it up really wasn't hard. I had everything already in containers for dev/prod anyway, and having those run on k8s just meant I had to write the deployment manifests that pull the containers and setup the pods. What I love about managed k8s (and also shared a couple times in comments on HN) is that it's separated from the servers below. I can have 20 containers (that can be separate things all-together) running on the cheapest Droplet and would only pay whatever that droplet costs, so under $20. Then when I need more power, I just scale the Droplets used for the k8s cluster and my pods/containers get shoveled around the available resources automatically. I liked this approach so much that I now have a private 'personal projects cluster' that runs on digitalocean with the cheapest/weakest droplet avvailable, and whenver I have a small hobby project that needs to be hosted somewhere, I just add that container to the k8s cluster and be done with it.
- nojvek 6y agoI’m waiting for digital ocean to have something like google cloud run. Google cloud run is essentially here is a docker image that listens on the $PORT env variable. Spin it up when you get requests. It will handle X queries per second (you can set limit). If more than X, scale it up to this many replicas. I pay about 10 cents for my site. Zero maintenance. I push code to GitHub, GitHub builds an image, pushes to GCR and tells cloud run to use new image. This is how things ought to work for simple web server like functionality. “Here’s a dockerfile and source tree, build it, run it and auto scale it with this https domain” Boom!
- mcintyre1994 6y agoWhat sort of cold start time do you get with that out of interest?
- chishaku 6y agoNot sure about exact numbers on the cold start but we avoid it altogether with a keep-warm request every minute.
- wastedhours 6y agoThis is why if you're in the Rails world, I'll always recommend Hatchbox [0]. It takes the PaaS layer from Heroku and applies it to generic nodes on DO or AWS - I'm grandfathered into a really good plan price, but even as it stands today, if you're building Rails apps, it's a great option. [0] https://www.hatchbox.io/ https://www.hatchbox.io/
- nijave 6y agoNot exactly cheap but run.pivotal.io (cloud foundry) and openshift online are both $25 GB/min which is a little more accessible. I'm not sure about Pivotal's online platform but PCF has some pretty simple autoscaling plugins that could spin down instances during low usage A lot of Fortune 500 companies have Cloud Foundry setups and it's built on some of the same tech as Heroku so it's fairly accessible
- jacques_chester 6y agoUnfortunately, Pivotal Web Services will be closing down: https://blog.run.pivotal.io/pivotal-web-services-end-of-availability-announcement-and-timeline/ https://blog.run.pivotal.io/pivotal-web-services-end-of-avai... Disclosure: I work for VMware via the Pivotal acquisition.
- sneak 6y agoYou shouldn’t trust Digital Ocean, either. They’ve a history of being shady liars about platform security. https://github.com/fog/fog/issues/2525 https://github.com/fog/fog/issues/2525 https://news.ycombinator.com/item?id=6983097 https://news.ycombinator.com/item?id=6983097
- names_are_hard 6y agoI read that thread, it's quite concerning. Now I'm wondering how to determine if other providers are doing the same thing. I suppose I can test on a new instance, but that can only tell me definitively if they are doing it, not if they're not.
- sneak 6y agoThe thread is 7 years old, and DO hired competent people along the way. The issue is not that it happened, or that they had clueless staff; the issue is that their board and senior management thought that the best way to respond to their own error was to blatantly lie in their blog that there was no problem at all. It seems to have worked; they're massively valuable now.
- ensignavenger 6y agoYou might take alook at PythonAnywhere? https://www.pythonanywhere.com/ https://www.pythonanywhere.com/ I hear good things about it.
- mikestaub 6y agoserverless.com is perfect for this use case. Easy to setup, but can scale infinitely in the future. Here is an example: https://github.com/mikestaub/slack-lunch-club https://github.com/mikestaub/slack-lunch-club
- magicbuzz 6y agoEr..no. Lookup Dokku