8 ms·
A simple DIY Heroku replacement to keep your hosting costs down
- pritambarhate 9y agoA blog post by the author of the project is here: https://medium.com/@kasra85/how-i-cut-my-heroku-cost-by-400-5b9d0220ce13 https://medium.com/@kasra85/how-i-cut-my-heroku-cost-by-400-...
- jacques_chester 9y agoThe usual counterargument is that DIY keeps your costs down if your time is free. Disclosure: I work for Pivotal, we have some overlap with what Heroku does.
- whack 9y agoThe great thing about CaptainDuckDuck is that it expressly aims to address your argument. I haven't used it myself, but from reading his blog post (linked below), his goal is to build something 75% cheaper, but just as easy-to-use. > My goal was to enable a typical web app developer create a Heroku-like server instance in less than 10 minutes. I am happy to say, I did it!
- jacques_chester 9y agoI think I worked out what my actual problem is here: pride. I work on a platform partly inspired by Heroku and which consequently deals with many of the same problems. I am intimately aware of how much work has been required to build that platform and expand its capabilities. It is hard to read someone saying they have replaced Heroku and not feel annoyance, because it downplays the enormous amount of careful engineering that Heroku and its competitors represent.
- tedmiston 9y agoAlso, infrastructure and support.
- gitgud 9y agoWell, Dokku [1] is already a good solution to the heroku cost problem. All the power and convenience of heroku commands with the freedom and low cost of docker deployment. It has lets-encrypt ssl support too! [1] https://github.com/dokku/dokku https://github.com/dokku/dokku
- StavrosK 9y agoI'm using Dokku to serve a bunch of sites and love it, it has made deployments a breeze. I did run into some Docker problems (used too much CPU and couldn't connect to its socket, etc), but I don't think it was Dokku's fault, but Docker's. I want to see if I can use Kubernetes as a Dokku replacement (hopefully a more stable one), but I don't think Kubernetes has all the niceties Dokku has (automatic reverse proxying, Let's Encrypt support, etc).
- Sevrene 9y agoKubernetes can have automatic reverse proxying and let's encrypt via an Ingress controller. I don't doubt Dokku has some nice plugins that Kubernetes doesn't though, especially for developers.
- StavrosK 9y agoAh, thanks, I'll try that. Dokku does have nice plugins, but they tend to be things I can write Dockerfiles for. The other big thing Dokku does is that it builds the image on the server, so it doesn't need a Docker registry, you just push the code directly to Dokku and the image gets built and deployed.
- jacques_chester 9y agoYou might look at Red Hat's OpenShift, which builds on top of Kubernetes. Or Deis, which has adopted buildpacks. Cloud Foundry has buildpacks too, but it's usually seen as a heavyweight solution -- the light footprint variant is 6 VMs, the standard variant is 20-something. Disclosure: I work for Pivotal, we contribute a lot to Cloud Foundry. Red Hat is a competitor.
- nkkollaw 9y agoSo cool, but the name makes it needlessly hard to adopt it. So, I have to tell my client I'll move his apps from Heroku to a CaptainDuckDuck install..?
- pbreit 9y agoShouldn't something like this be deliverable with a set of Fabric or similar scripts?
- mikewhy 9y agoI wrote a thing that uses fabric to do docker-compose based deployments. It also handles static sites. I've used it internally at a couple of companies and it works well for us. https://github.com/mikew/b3cmd https://github.com/mikew/b3cmd https://github.com/mikew/b3cmd-server https://github.com/mikew/b3cmd-server
- cies 9y agoThis but based on Kubernetes/Deis would be a huge thing. This project feels like may be fun, but not industrial strength. A bit like Dokku and Dokku-alt some times back. There something called Minikube also right? Maybe that would also be great to integrate. Maybe OpenStack's interface could even be used as a starting point. Oh, and I frown at the use of JS where it is not mandated. Looking at the K8s/Deis community it seems Go is the favorite, and I find it a much more defendable choice for serious infra projects. (sorry will stop about JS now) Reading back I gave some comments (and even a JS nag), but I mostly want to say that I love the project from what I see on the README. Very well done REAMDE. And I love this LetsEncrypt feature (Deis has is identified as cool feature as well -- https://github.com/deis/workflow/issues/708 https://github.com/deis/workflow/issues/708 )
- phantom_oracle 9y agoHow does this compare with Flynn ? https://flynn.io/ https://flynn.io/
- y0ghur7_xxx 9y agoThe first thing that comes to mind is that captainduckduck is free and opensource and the product you linked to is a closed source service you pay ($3,499/month) for.
- ytcs 9y agoFlynn is also free and open source, the pricing is for their management services -- that's explicitly stated in the first paragraph of their pricing page
- michaelbuckbee 9y agoThis, Dokku, Flynn, that 1000+ line bash/chef/ansible script that the guy who used to do your job before he left are all legitimate solutions for deploying apps (and all better than FTP'ing up whatever the developer happens to have on their laptop). But, I feel like the comparison to Heroku isn't great. Heroku saves you from having to do and worry about significant amounts of (I would argue) extremely important admin and security work. How are datastore backups handled in this scenario? How do you handle updating redundancy? Can you in a couple clicks add a secure Postgres, MongoDB, Memcached or Redis server to your app? Setup CI? Or even just secure these things properly. This stuff gets complex and it's extremely easy to accidently set up something that's much more open to the world than you would want. To sum up: Heroku -> A way for developers to put up much more robust sites than they could otherwise. Scripted Setups -> a (very positive and cool thing) for those with devops/sysadmin skills to more rapidly setup a site. Full disclosure: I do a lot of work in the Heroku ecosystem and could well be defending the platform out of greed. But, I've also seen first hand some of the wild misconceptions and mistakes that were caught by the built in systems and limits to the platform.
- timewarrior 9y agoWhile I agree that a script can't match what Heroku does, in the end Heroku shouldn't be used for anything serious. I love Heroku for it's simplicity. They give you very few levers, making it less likely for you to screw up. When we had a production add we faced following issues with Heroku: 1. Frequent downtimes. Heroku would have a 3-4 hour downtime every 2 months. In some cases, site would be down. In most cases you couldn't deploy and add machines. 2. There is an end user impact in terms of performance. After moving to Elastic Beanstalk, we had a 20% decrease in response time and 5% increase in revenue. 3. In the end Heroku is very simplistic. They don't have features like rolling deployment or Blue-green deployment. They had some beta version of rolling deployment, however that was buggy and caused version issues with deployment. With Elastic Beanstalk we have a health check based rolling deploy, which has caught production issues many times. 4. To do custom things, you need to deal with buildpacks etc, which is not very convenient. 5. Thought it wasn't an issue for us, Heroku can be expensive. Our server costs went down 80% while giving better performance. So, in summary - Heroku is great to get you started quickly. However if you are doing anything serious but do not want to get deep into DevOps, consider something like Elastic Beanstalk. Eventually we managed our environments using CloudFormation. That allows us to create repeatable Elastic Beanstalk instances. Once we got the CloudFormation template right, it was easier to maintain Elastic Beanstalk vs Heroku.
- nbrempel 9y agoI haven't used this, but if you're considering this I would highly recommend taking a look at https://flynn.io https://flynn.io.
- squid3 9y agoNodeChef is a Heroku alternative which is cheaper that DIY https://www.nodechef.com/ https://www.nodechef.com/
- steventhedev 9y agoJust playing with the sliders on the pricing page show I'd pay almost double (~130/m) what I pay now for Heroku (~70/m). I see you're the cofounder of NodeChef. You need to rethink either your pricing or your market position. Also, it's customary to be upfront about conflicts of interest, by declaring "I am the cofounder of NodeChef". Better than trying to hide it (which comes off as scummy), or expecting people to dig through your comment history, which is just lazy.
- techupcian 9y agoPritambarhate I will advice you to go with the script that a professional black hat will make yoo understand and he to the matching of Heroku, you just have to contact hackerdanielssmith@gmail.com ,stay safe
- ufmace 9y agoI think that products like this occupy a tricky space. Heroku won't win any contests for price, but we know what they do offer - a simple setup, and you can trust that they have experts behind the scenes working to keep everything up-to-date and secure. That's one extreme. The other extreme is, I set up my own servers by hand or with a handful of custom scripts. Cheap in price, but time-consuming, and I might miss something. The advantage is that I know how every bit of it works if I need to add a feature or set up something weird. Either extreme makes sense when used for the right purpose, but I feel like it's harder to find a place for things kind of in the middle like this. It has a bunch of nice, handy features, but how much can I trust the maintenance on it? If some sub-item has a security alert, how quickly will it get updated? Will I have to dig into the guts of this thing to fix it? Will that still be true 3 years from now? If I want to do something weird and custom, how hard is that?
- samwillis 9y agoAs a relatively late Heroku convert (we moved to it maybe 18 months ago from managing everything ourselves) all of these DIY Heroku replacements may cover deployment and scalability well but they miss two very important aspects of using Heroku. 1. Heroku will manage the underlying os and software, ensuring its all update and patched. We don't need to worry about the security of the bottom of the stack, that is their responsibility. 2. Backups, Heroku have a fantastic backup system for Postgres, it has already paid for itself. I will find it hard to move to any other system after they saved me after accidentally deleting half our db... My only "complaint" about Heroku is cost, it is quite expensive for memory heavy processes (we have a few of these), jumps from $50 for 1gb to $250 for 2.5gb?! But the ease of use far outweighs that. Just hoping that there is a pricing update with more ram coming soon, I think its very overdue...
- cutler 9y agovi ~/.bashrc alias cdd=CaptainDuckDuck
- seanwilson 9y agoSome of the big sells about Heroku for me are: - Heroku takes care of patching the OS for you. - You can scale easily to more than one server. - If a server goes down or becomes unresponsive, Heroku will essentially destroy and recreate it. - There's lots of simple options for backups, rollbacks, logging and alerts. How does this and other solutions like Dokku compare? If your project isn't making much money I can understand wanting to keep costs low. If you're building something for a client or are making a profit though, trying to save something like $1K (a few days of a developers time) a year doesn't make a lot of sense. To get all of the above, you're going to have to spend significantly more in developer time and end up with something less robust which will likely have lots of growing pains. Heroku lets you just get on with the coding.
- eggie5 9y agoanother option that is a pretty good Heroku clone is to deploy to a Deis stack. https://deis.com https://deis.com I set up a deploy on kubernetes a year ago and it was very close to Heroku -- impressive.
- yebyen 9y agoYeah, Deis! I have been a big proponent of Deis even as Microsoft has acquired the team and they've gone more hands-off with the project. It's harder to make the case for Deis when there is nobody you can buy support from... (Is there anyone left that you can buy support from? I heard the easiest way to get an answer on the internet is to start by "being wrong"... secretly hoping there's still someone out there in the business of providing support to Deis) I'd also settle for someone who has continued to use Deis in production after the end-of-life date was set, and currently has no plans to move away. (I know you're out there...) I've been looking at Convox the last few days, because my team actually wants to insist on doing something with ECS. We've used Deis with our developer laptops with a middling degree of success. The best part of using Deis now IMHO is that when they ask "what are you going to do when you need support and you can't get it," ... or "what are we going to do if you leave, and nobody knows how it works?" Well there are a lot of 12-factor PaaS and hosts. Pick another one and move on. Or you can roll your own. It's not that hard, there is even a step-by-step guide (12factor.net)!
- jacques_chester 9y agoI think the two major platforms for PaaS into the foreseeable future are going to be OpenShift and Cloud Foundry. Both have large engineering professional organisations involved, large community footprints and a lot of sales to pay for all of the above. There is what I call the "kambrian explosion" of PaaSes being built on top of kubernetes. Most of these will, I think, shake out over the coming years and again, the heavy-duty PaaS market will largely be dominated by the two existing platforms. Disclosure: I work for Pivotal, we're the leading contributor to Cloud Foundry. Red Hat is a competitor.
- yebyen 9y ago
- maxehmookau 9y agoIt's been said already, but the idea that Heroku is expensive is provably incorrect. They're not providing hosting, they're providing a service. If I want self-hosted platforms, I'll manage my own docker containers on a GKE cluster or something similar. As it turns out, I want to write code and scale it to millions of people. Heroku lets me do that, and I don't need to hire an SRE team.
- diggan 9y agoWell, maybe provably incorrect for you but I can see that if you're a company outside the Silicon Valley bubble, Heroku would be way too expensive compared to other solutions. Even for me personally (living in Barcelona) I think it would just be too expensive to use for anything without feeling like I'm bleeding money.
- maxehmookau 9y agoI am not (and have never been) inside the Silicon Valley bubble. I live in the UK and work outside of London. I'm as far from the SV bubble as you can get and still work in tech.