Fast-forward two days later, his service and a competitor were both featured on Product Hunt. He's now making a profit on the service, as he managed to scale it up very fast, while the competitor buckled and completely lost momentum.
If you're talking about spending _a long time_ preparing a perfect infra, then your argument makes sense. Spending a few hours? It's both a great learning exercise and can literally save your project, so why not?
There’s other ways in other platforms as well (eg if you’re using Kubernetes)
* do i need to factor in experience with VMs?
* do i need to factor in OS and networking theory learnt in college?
* do i need to factor in high school algebra?
* do i need to factor in learning the english language?
Of course you need to factor in learning k8s. Before, it was learning VM's+ {ansible, chef, salt}, before that it was prob something else.
In practice - the application running in the pod has to be aware of this, and the most intensive part are rarely the bottleneck. Most of the time this is an architecture issue, not a resource issue. This takes time and experience, and overhauling a platform to remove a bottleneck is usually very painful if you have a bit more complex setup.
I am sorry but you are really talking about 2 days of time interval and projecting predictions based on that? Unbelievable...
So what's to stop the competitors to do the same thing that your friend did to invest 2-5 hours and catch up on the third day???
I wish I was good at ascii art, then I would draw a nice facepalm here.
I’m not convinced that you need to superscale your infrastructure first. I think it’s normally a waste of time and money. But for the example listed this is a likely benefit.
Pride, a refusal to accept vendor lock-in, misaligned incentives, sunk cost fallacy, etc, etc.
Welcome to the web?
That's an incredible story! Could you please link to the two products on PH?
The few hours you used on infrastructure can be better used fixing a bug, polishing/adding a feature or even giving yourself a break so you can be better focused the next day.
A Heroku-like platform will literally do the scaling for you. The non-financial cost is that you need to develop your application in-line with their framework/platform. If you make this decision at the start, this cost in practically nil.
With the risk of sounding like a broken record: yes in such a case it is better but that is often not the case at hand; this exact argument is used for spending $500/mo after optimizing the software vs $50k/mo autoscaling with ‘0 hours’ invested (between ‘ because ofcourse it takes a lot of time to even get that working, but, for many programmers, it is apparently easier work?).
A few weeks ago I commented here while optimizing a Laravel cloud install, now I am working on a Clojure one. Client is spending $28k/mo on aws, especially Dynamo and the rest on ELB.
Rewriting to Postgresql standard and the dynamo part to postgres columnstore and adding proper indexes has the lastest stress tests down to a few 100$/mo they will spend when they launch this.
The $28k is spent using exactly your argument, and like most of these projects like this I do, it was quite a lot less than 28k (1 month hosting) to optimize this (which had us rewrite a lot of spaghetti from dynamo to psql).
So yes, in some cases you are right, I would say when cloud hosting pops over 3k (especially if sudden), I would hire a me to have a bit of check to see if you are not burning money for nothing.
I am not saying Dynamo could not be used or tuned for this work, but Postgres was a better fix and more far more portable ofcourse.
So I read your comment as $28k dynamo to $100 postgresql.
Let's put your statement on another perspective : it is worth investing a few days/weeks of work of a low power machine (a human) to reduce significantly the long-term power usage of a high-powered machine (a computer or cluster thereof).
That seems a sad view on the value of a person.
Shouldn't the whole point of technology and infrastructure be to allow a person to use more resources so as to better[0] allocate their limited time?
1 kwh on the power grid produces 0.9884 lbs of greenhouse gas: https://carbonfund.org/calculation-methods/
0.1163 kWh of human energy produces 0.64 lbs of greenhouse gas: https://www.washingtonpost.com/national/health-science/runni...
If we even humor this sentiment (I don't buy that we should, 5$ vs 50$ of compute is not why we're struggling with climate change. Compute period is 10% of all electricity production, we're not going reduce that with a few hours of optimization here and there.. It's way too late to be taking such half-measures seriously), the math doesn't work out.
-
Thinking about climate change on a personal level is positive, but I also feel our efforts should be grounded in reality, not just things that feel good.
The hours you spend optimizing your bootstrapped service to reduce it's CO2 footprint... could be spent in plenty of other activities that actually reduce your carbon footprint.
We have people who don't believe it's real (which is silly) and, at the other end of the scale, people who believe we can actually fix it in 50 years (which is just as silly, even 100 years is silly). People are convinced they "know" the "truth" without even bothering to throw a few numbers at a spreadsheet to see if what they think they know aligns with any imaginable version of a non-science-fiction reality.
I am very concerned that politics and ignorance is driving this far more than real science.
5$ to 50$ is not 10 servers on Heroku. In fact, it's not even one server, you'll be sharing resources at that price point.
Let's say you generate approx. 500 lbs of CO2 a year (based of figures for a half desktop PC running 24/7 because you're only getting 2 cores and 1GB of ram)
At this point you're thinking, 500lbs?! That's insane!
But 40 hrs (1 week) is a lot of time, and 500lbs of CO2 is less than it seems.
If you spent 40hrs spread out over an entire year air drying your clothes a total of 20 times, you'd save over 2 Tons of CO2 a year. (You can do the math for a dishwasher if air drying doesn't work where you are)
If you live in a cold climate, the EPA estimates you can save 15%, or almost 1000 lbs of CO2, by weather proofing your home, easily accomplished in 40hrs
-
You might say "I already do all these things!", but the point is there are so many ways to convert time to CO2 savings.
We spend a lot of CO2 trying to save time you could say.
Optimizing your bootstrapped service is not one of the places I would use CO2 expenditure as reasoning in the slightest.
This comment reads you didn't read my reply, humans could make 0 CO2 and spending a week optimizing 10 servers and not make a dent compared to simple lifestyle changes.
I used 1 server because that's the scale thread was about ( saving <50$ of spend on Heroku)
I know you tried to make it about 10 servers to force a point, doesn't end up changing much though...
You found stats on that? I’m surprised
2% projected to reach 8% in a decade (https://fortune.com/2019/09/18/internet-cloud-server-data-ce...)
So using your math, you’ve got humans, which have high environmental costs in order to... well... live... wasting their life and consuming tons of resources doing something that was done better for cheaper.
Humans cost tons of money to operate. More than data centers or anything else. Don’t waste them on stupid projects like writing shitty versions of AWS.
Your own logic should lead you to conclude all the people wasting expensive human lives reinventing javascript frameworks, deployment systems, cloud orchestration systems, database systems and AWS... these are the folks doing true harm to the environment. It is much better for the planet to lock yourself into AWS, Azure, or google cloud and exploit the shit out of everything they do than it is to piss away incredibly expensive resources building your own.
And I am more than happy to boldly assert if you are working on a project that aims to re-invent AWS for your company... you are a waste of human capital.
A startup is a business; a side project may be pure hobby.
Most software engineers make plenty to budget for infrastructure at a side project.
Do not invest time making sure your service runs for $6 a month if it can run for $50 with 0 hours invested. Invest that time talking to customers and measuring what they do with your service.
Most times a few customers pay for the servers.
This is just a friendly reminder. I see a lot of comments talking about running backends for cheap.