7 ms·
Come on startups, you should be technically skilled and able to optimize in order to spend little money. If you sum EC2 and Heroku you are going to pay like 10x
by antirez 14y ago
Come on startups, you should be technically skilled and able to optimize in order to spend little money. If you sum EC2 and Heroku you are going to pay like 10x what it takes to run the same machines power in a dedicated server, all this because you can't handle the operations? This is absurd IMHO.
Also people that want to start a business, there is a huge opportunity here, create software that makes managing Apache, Redis, PostgreSQL, ..., in dedicated servers very easy and robust. Traget a popular and robust non-commercial distribution like Ubuntu LTE, and provide all is needed to deploy web nodes, database nodes, with backups, monitoring, and everything else trivial.
Startups can give you 5% of what they are giving now to EC2 and Heroku and you still will make a lot of money.
"I can only write my Ruby code but can't handle operations" is not the right attitude, grow up. (This is what, in a different context, a famous security researcher told me in a private mail 15 years ago, and it was the right advice)
- Adirael 14y agoIf your Ruby code deploys to X you should know X, if it's part of your stack it should be part of your toolbox. "create software that makes managing Apache, Redis, PostgreSQL" Like Plesk, but better, faster and less resource hungry.
- ig1 14y agoThe primary bottleneck for most startups isn't money, it's time. Also for most startups (assuming you're not doing something CPU/bandwidth heavy) the actual cost of hosting is going to be a relatively small part of the budget. If your burn rate is a million dollars, reducing 10k of hosting costs to 1k isn't really worth the effort.
- fauigerzigerk 14y agoMoney can buy time in various forms. I think PaaS is one abstraction level too much to remain flexible and efficient as you grow.
- raverbashing 14y agoKind of depends There's the "two guys in a dorm eating ramen" and there's the YC backed "startup" that already has a couple of hires So if your monthly budget is of hundreds of dollars, using a VPS instead of Heroku makes sense
- ig1 14y agoLet say your average http request takes 200ms to serve, then with 5 heroku worker dynos you can serve about 10 million requests a day which should comfortably cover the requirements of most startups. How much do those dynos cost ? - $143/month. That's less than three hours salary for a developer. If your monthly budget is hundreds of dollars I'm guessing your traffic is low enough you can just use the free tiers of heroku, appfog, etc.
- tolas 14y agoWell the point of all this is that simple scaling math like that doesn't add up because of the queuing latency introduced by heroku's routing layer. But still at that scale your point is valid.
- raverbashing 14y agoYes, but there's a step before $143 is money that is missed by a college student, for example. Better go with something cheaper or the free tiers of Heroku, AWS, etc You're probably still developing the system, or having only a small amount of requests.
- antirez 14y ago10,000,000 requests each day are 115 requests per second. I don't follow your math here with a 200ms CPU time per request.
- badgar 14y agoHeroku customers don't typically do math when they do capacity planning. That's part of the Operations toolchest they're buying. They just up/down dynos.
- tijs 14y agoThat business model is basically what Cloud66 seems to be doing: https://www.cloud66.com/ https://www.cloud66.com/ Looks pretty decent, would make sense to see something similar for other stacks.
- sleepyhead 14y agoI run a startup that is hosted on Heroku. I write Ruby code but can't handle operations (I have and can set up servers but if shit hits the fan I wouldn't have a clue. Also I don't have the time). My startup is a one-man show. And you suggest I should grow up? By grow up you mean that I should watch my customers face days of downtime because I don't know how to fix the server, how to secure the server probably, how to scale or have money to hire someone who can? Of the "ShitHNSays"-stuff I read here this surely takes the cake.
- oellegaard 14y agoDefinitely. This is possible with e.g. puppet already - where I work I've setup puppet modules for provisioning everything automatically for developers, they just need to enter the customer name and whether they need dev, stage and/or live for that customer - the rest is automated. We use http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-ex http://www.hetzner.de/en/hosting/produktmatrix/rootserver-pr... for hosting - let me just say that I can buy an entire rack with 64 GB ram in each server, for the same cost as one amazon instance :D
- oellegaard 14y agoWe're also looking into Cloud Foundry - basically Open Source Heroku - with support for buildpacks. If the installations gets easy enough, this could be the new thing.
- lucian1900 14y agoIt's more like 10x from Heroku to AWS, then another order of magnitude to metal. AWS has other advantages in addition to convenience, though.
- Rooki 14y agoIs Canonicals Juju along the lines of what you mean? https://juju.ubuntu.com/ https://juju.ubuntu.com/
- nthj 14y ago> Also people that want to start a business, there is a huge opportunity here, create software that makes managing Apache, Redis, PostgreSQL, ..., in dedicated servers very easy and robust. Traget a popular and robust non-commercial distribution like Ubuntu LTE, and provide all is needed to deploy web nodes, database nodes, with backups, monitoring, and everything else trivial. So the pitch is: clone Heroku, which has taken dozens of very smart engineer man-years to build and refine, then charge 5% of what the market will bear? > "I can only write my Ruby code but can't handle operations" is not the right attitude, grow up. I handled ops for 120+ Rails apps while managing a team of juniors and making time to write code. What a stupid waste of my time: ops is forever & never-ending, while implementing & delivering a new feature to 100K customers can bump sales' conversions permanently. If I can outsource relatively-linearly-increasing Ops costs and instead focus on delivering value that multiplies compounding-interest style, that's not childish. It's great business.
- derefr 14y agoNo, presumably the pitch is: clone Heroku's software stack as an OSS project, then get the server/VPS sellers to let people opt to install it as a package when they rent out a node, the same way things like Wordpress can automatically be installed.
- nthj 14y agoSure, see OpenStack: http://www.openstack.org/ http://www.openstack.org/ [that said, comparing automated scaling of a Ruby on Rails SaaS app with 100K+ users to a one-click WordPress install is kinda humorous. Even WordPress has a market for expert DevOps guys to manage your site: http://wpengine.com http://wpengine.com]
- derefr 14y agoWell, Herouk's stack may indeed be way more impressive in sheer scope, but for any one individual user, there's no difference. As long as bringing up more than one node in your "application" gets them to start talking to one-another and auto-distributing load between them [including sometimes just electing one of them to serve as a router node that doesn't actually have apps running on it], your experience will be identical to paying Heroku, save for the fact that when one of the machines goes down--although the load will be redirected away from it--you'll have to "manually" fix it if you want it back. In the default case, this just means dropping the IaaS node responsible and provisioning a new one [possibly on a different IaaS provider, if there's a lot of failure in one provider]. Though if you did pay for physical hardware, there can be some pain here. ;) Basically, what I'm suggesting is a software stack that is to computation as Tahoe-LAFS is to storage. Just give it a set of machines that resemble Unix boxen--with more separate providers and regions = more better--and it'll give you something that looks like Heroku in exchange. It could even have an optional provisioner service running atop it, that globally aggregates known IaaS providers and gives them ratings based on machine response times from the perspective of various other components, then lets you just say "okay, you're allowed $N/mo more to scale me up" and it'll find places around the globe where your users are being underserved, find well-rated API-compatible IaaS providers in those places, and provision nodes in those locations, adding them to your mesh. And then dropping them back out for alternatives if they start to suck :) --you know, if this doesn't already exist, I might be willing to put in some time...
- nahname 14y ago>"I can only write my Ruby code but can't handle operations" is not the right attitude, grow up. How is such a condescending post at the top? Everyone running a startup is an idiot because they choose not to waste their time on your priority? Heroku isn't 10 times more and it wouldn't matter even if it was. Talented people are hard to find and spending time on operations when you might not be around in 4 months may not be the most important thing to focus on. On a 6 to 8 month time scale, heroku would be 10 times cheaper that taking the hit of setting up everything to emulate it. Deployments, backups, monitoring. Those things take a lot of time to setup correctly.
- jonny_eh 14y agoThe annoying thing about that post is that it derails the conversation. The top post should be analyzing Heroku's response, whether it was sufficient or not. Or how developers can mitigate Heroku's dumb-by-design routing issue.
- Strshps1MoreTim 14y agoRight, I'm interested in XYZ, so that is what the top post should be ...
- spitfire 14y agoI'm honestly surprised there aren't tools available now replicating what Heroku does. We should have puppet scripts to deploy, instrument and manage all the popular infrastructure choices by now. The same way originally Linux was a build it yourself box of parts, we ought to have "cloud infrastructure" distributions, from bootup to app deployment. The neat thing here is that as people improve the distribution you get cumulative savings. Back in the 90's you needed a skilled individual to setup a Unix/Linux system. Now, even an MBA can do it. The same could happen with infrastructure on a higher level.
- pytrin 14y agoMy thoughts exactly. Like you don't outsource dev, you can't outsource sysops, it's a core competency to a tech startup.
- ansgri 14y agoIs it not more like you can't outsource customer support and product development, but you'd better outsource everything else if it's economically viable? Thus if your product is some kind of hosting (i.e. blog or image hosting), the reliability is your product, so you don't outsource sysops, but if you offer some project management software... Well it's almost certainly hosted so reliability is your product again and you better have your own sysops. So the only viable conclusion seems like you limit your trust to the PaaS provider and have some plan for the rare case when they get screwed. Or you could bet on technology not requiring such monstrous resources as Rails and host your entire MegaCorp on a single server rack.
- doktrin 14y agoThis feels like a distraction. How about instead of pontificating on how someone else chooses to do business, we discuss the actual merits (or lack thereof) of Heroku's routing issues.
- rubyrescue 14y agoNot to mention I'd bet that they do have someone spending all their time dealing with Heroku ops... and my sense is it's not just because of this bug. Inaka has a combined total of close to a billion pageviews/month across all our EC2-hosted apps for all of our clients and we have zero full time operations staff - we have 2 guys that spend (much less than) part time on it.
- snowwrestler 14y agoThis seems to me like the server admin version of "build a website like Amazon." http://news.ycombinator.com/item?id=5222581 http://news.ycombinator.com/item?id=5222581 What's more likely, that everyone else in the world is too dumb to see this opportunity, or that perhaps you have underestimated how hard it is to do?
- thenomad 14y agoFail fast. I can perfectly well install, set up and maintain my own Ruby servers - but it takes time. Alternatively, I can pay someone else to do that, and remove that timesink from the elapsed time between "start developing" and "find out how well we've achieved market fit". I can always optimise later - move off Heroku, develop our own load balancing, all that stuff. Once I've got a working product/market fit, I probably will. But doing that before I know if I'm going to chuck the entire infrastructure in the garbage and move on to idea #2 (and #3, and #4...), or indeed pivot so wildly that we'll have to reorganise all our server stuff anyway, is a waste of time. And time is valuable.
- namidark 14y agoChef/Puppet/Stackscripts/Salt/etc, and develop your own load balancing? Why on earth would you do that instead of just using HAProxy?
- thenomad 14y agoMisspoke - when I said "develop our own load balancing", I meant "test and pick the best existing load balancing solution, then implement that on our servers". That's as opposed to "use whatever our hosting provider offers".
- scottschulthess 14y ago" If you sum EC2 and Heroku you are going to pay like 10x what it takes to run the same machines power in a dedicated server, all this because you can't handle the operations? This is absurd IMHO." It really depends. My current experience with heroku is that it is absurdly cheap - at least, for our use cases. We would have to do a lot more traffic for us to ever consider moving to a colo.