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.
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.
Your first paragraph is exactly what the OP of the article did who is now writing about how it failed.
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.
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!
Indeed, which is why there were no web startups before about 2010.
I'm not trying to be rude, just genuinely curious if I'm missing something complex that could be making my services less secure.
Every second you spend configuring web servers and stuff is a second you should be spending adding value to your business.
Source: I worked there for years until very recently for this reason.
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.
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.
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.
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.
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.