Hacker News new | ask | show | jobs
by spookthesunset 2378 days ago
> Or a barebones box from Vultr or Linode then log errors out to stdout

So instead of talking with customers and growing your business you are busy wasting your time installing a web server, database server, configuring build tools, etc?

Getting root access to a barebones linux install is conceptually "not complex". But that is only because it pushed all the actual complex stuff up the food chain and into your head. A head that needs to be thinking about everything but how to configure apache or the load balancer or postgresql.

> keep it simple and boring

Installing a web server from a package manager and configuring it in a repeatable way is not simple and boring. A single person startup doesn't have the bandwidth to do that.

5 comments

Yes, you'll spend some 2 days setting all services, testing, setting backups and alerts, testing again. Add another day if you want redundancy.

And then, every 4 to 8 months you'll spend some 2 hours making sure everything is working right and up to date. If you get into another user-base class (like, from 100 to 1000, or from 1000 to 10000), you will spend all those 3 days again.

Compare that with cloud services, where you'll spend a week up-front, and 2 days at random when something changes. But well, that comes with the bonus of a much higher price and a slower development speed.

There is the safety to know that you can move between user-base classes without any cost. You'll just be taken by surprise when it actually happens and you discover that those 3 days are a rounding error compared to what it costs to update your software.

This comment reads as if you worked with the cloud in 2009 and haven't been back since. It doesn't take a week to setup a service. In fact, you could spin up everything you need in maybe an afternoon to get you a fully-working, TLS-backed API and website. From that point forward, everything is fully managed and you don't need to deal with Let's Encrypt binaries and stdout logs, etc.

Your first paragraph is exactly what the OP of the article did who is now writing about how it failed.

And building on barebones keeps all options open.

If you go big and realize an IaaS solution is right, great, you are ready to go on to IaaS with no trouble

If you IaaS from the beginning, you've cornered yourself and have to build your way out.

How are these scenarios any different from each other?

You are not ready to go IaaS with no trouble if you've already built your own. It's just as hard to do that as going from IaaS to your own custom infrastructure!

> Installing a web server from a package manager and configuring it in a repeatable way is not simple and boring. A single person startup doesn't have the bandwidth to do that.

Indeed, which is why there were no web startups before about 2010.

I don't know if I've been doing something wrong now. For my personal web apps, I've always just installed Nginx, Let's Encrypt, and then a docker image of my application/DB. Spinning this up on a fresh Ubuntu Server install takes less than a half hour if I had to guess. Nginx to force TLS and proxy pass to my docket image.

I'm not trying to be rude, just genuinely curious if I'm missing something complex that could be making my services less secure.

Heroku does that in 3 minutes. And maintains & updates that stack for you. And gives you deployment automation etc. For $7 a month.
Exactly. Deployment is merely a "git push" away. It is amazing how simple it is to get started building a new product.

Every second you spend configuring web servers and stuff is a second you should be spending adding value to your business.

Deployment /can be/ a git push away, but that's only on the extreme end with things like heroku. You mentioned cloud. Cloud has cost sinks every so often (in terms of time).

Cloud has much value but please dont' consider it a panacea.

You can get a lot of value out of those 30 minutes installing a webserver; and it can save you a significant amount of cost.

Not to mention when you want to actually scale you'll see the reason why pretty clearly, unlike in cloud providers where inefficiencies can just suck up money until you notice.

And I definitely take exception to the "every _second_ you spend doing something other than business is a waste" because by that logic I shouldn't use the bathroom or take time to have a coffee.

Businesses don't exist to save money. They exist to deliver value.

Your goal in a startup shouldn't be all about saving money like some cheapskate penny pincher. Penny wise, pound foolish.

Worrying about $100/mo in heroku bills instead of $10/mo "bobs budget webhost" bills is a waste of time. If your startup cannot afford $100/mo or even $1000/mo in infrastructure costs you probably should exist. Especially given smartly spent infrastructure costs (eg: using heroku) let you deliver value far faster than cobbling together infrastructure yourself.

Penny wise, pound foolish.

You are so clueless and off the mark I wonder if you're trolling or are some teenager that watching a lot of entrepreneur videos.

A dollar saved is a dollar earned. AWS is a terrible choice unless you have a huge amount of free credit. Also, an income of $4000/mo puts you into the average American household income bracket. Why would you throw away 25% of that on infrastructure to save 2 hours on the front end?

Not every startup needs to be the next Instagram. There are tons of people out there happy with their small and medium sized SAAS companies which have allowed them to leave the rat race.

I think this heavily depends on your model. What if you're sticking a hundred darts in the dartboard to see what gets traction? $10K a month is going to hurt.
Stay away from Heroku. The team has recently all moved over to work on Salesforce Evergreen and is only barely keeping the lights on.

Source: I worked there for years until very recently for this reason.

You can use CapRover and additionally save the steps of nginx and Let’s encrypt. On DigitalOcean exists even a 1-Click App of it, so it’s trivial to get CapRover running on a droplet.
”So instead of talking with customers and growing your business you are busy wasting your time installing a web server, database server, configuring build tools, etc.”

Oh come on. It takes maybe an afternoon of work to do everything you’ve described.

Let’s say you’re utterly clueless about all aspects of sysadmin, and you need to learn how to do it from scratch: 2-3 days, tops.

No matter how much you pad the schedule, it’s far worse to have to learn 5-10 “managed solutions” to do what you can do on a single VPS with an Ubuntu install.

Can you do it all with something like heroku? Sure, but you’ll probably spend at least an afternoon learning heroku (speaking as someone who has extensively used heroku, it’s not a panacea.)

If I heard this objection in the real world, from a dev who worked for me, I’d be seriously reconsidering my hiring decision. You’re either irrationally afraid of basic syadmin, or you lack fundamental knowledge.

> or you’re just being lazy

LOL. Good developers are the most lazy people on the planet. Laziness is a virtue, not a sin!

If my developer told me our company could outsource all our sysadmin tasks to some third party I'd be a fool to not listen. If I was a developer and my boss called me lazy for trying to help the company move faster (which is far more important for a startup than saving a few bucks) because boss-person is a penny pincher, I'd reconsider my choice of employer.

A startup focused on pinching pennies is doomed from the start.

Lazy when it counts.

This mantra that good engineers are universally lazy is absurd. I absolutely will find the easiest way to solve a problem... as long as that problem can tolerate that solution.

IaaS is a minefield and plainly saying IaaS >> barebones is absurd.

Engineering 'magic' is great until you realize you need something slightly different but you are locked into their framework, system, whatever. You then have to spend a bunch to engineer yourself out and end up with an inferior solution when you could've just done it 'simple' the first time.

An early engineer should have zero trouble pulling up an Ubuntu box, installing Nginx and Supervisor and pulling some default configs from StackOverflow. I have been re-using the same config for both for years now.

Great developers are not lazy. They close brackets and leave no debt. They are lazy in the sense that they implement the least features required because they know the pitfalls of over developing. They are lazy because they leave at 5 but only after finishing their work.

A great developer doesn't ask his boss to hire a third party to manage the server. They ask the boss to hire someone in house because getting anything non-basic done over trouble tickets is a non-starter. A great developer can handle pinching pennies because they use open source at home.

The reason startups die is that they run out of money. Ramen profitable is a thing, and ramen costs less than the kind of outlays you're describing.

If you've hit a seam such that each feature you develop nets you more revenue, you'd be a complete idiot to optimize for costs. But a company in search of a business model hasn't gotten that far yet.

You're wrong. I've been doing it for 11 years, and it really is simple and quick. Package-managers does most of the work and there isn't much config necessary to start out. You should give it a go.