3 ms·
I think Heroku is a great tradeoff for brand-new startups that are cash-strapped and also have no sysadmin capabilities. Buying your own hardware - or using a
by MattRogish 14y ago
I think Heroku is a great tradeoff for brand-new startups that are cash-strapped and also have no sysadmin capabilities.
Buying your own hardware - or using a blank VM provided by a VPS company - and setting them up immediately puts you in sysadmin mode from day one. New apache vulnerability? Your problem. Operating system upgrade? That's you, too.
What about security? Do you know all the ways that bad people can get into your system? How do you lock it down? Do you know how to properly configure the firewall?
What about a hardware failure? Now you're running back and forth from Fry's to your datacenter. Or in a VPS - you're going to have downtime while your provider moves your VM to another box. Depending on the scale of the outage, you could be down for a long time. Ugh.
Yes, Heroku is more expensive than your own hardware. So are tons of other VPS/VM hosting facilities out there.
Personally, I also really like RailsMachine. They built something called Moonshine (https://github.com/railsmachine/moonshine https://github.com/railsmachine/moonshine) that uses Puppet and Ubuntu to spin up properly configured, locked-down servers at the drop of a hat. I'd try something like that before managing my own infrastructure as an early-stage startup.
Some things are better outsourced; as a startup your most valuable currency is not a few hundred dollars per month - but your time. Wasting it playing sysadmin isn't worth the cost.
- DenisM 14y agoYou're making VPS look harder than it needs to be. Amazon EC2 has firewall that's a snap to configure, spinning instances up and down is a few mouse clicks, updates can be set up automatically (at least for windows), and a filed instances (which I've never seen) means you just need to spin up a new machine from an image and deploy your latest software again. The only admin thing you need to do is backups (I am still upset that EC2 EBS does not provide timer-based snapshots).
- MattRogish 14y agoYeah, sure, for you that's easy. Clearly you've done it before. What if you've never seen the AWS admin panel? Is it really that easy to pull a well-architected AWS setup out of thin air? Maybe, but from playing around with it (I've used S3 a lot and there are plenty of gotchas) there is a lot of nuance I'm missing without experience. (see all the "oops we did it wrong" posts on HN). I've been in software and systems architecture a long time and I probably wouldn't be very confident I got it right on my first try. Perhaps I'm overestimating the domain knowledge needed. I'm not at all suggesting Heroku > AWS, but in my experience an early stage startup with only developers shouldn't play sysadmin. It only leads to pain and suffering later. And, time spent mucking around with AWS should be better spent figuring out product/market fit.
- DenisM 14y agoI think AWS is easy, but you're right in that there are so many features you might know where to look. I could probably write a tutorial and exercises that will cover all of the requisite things for Windows: 1) Finding an image (also - what is an image?) 2) Launching a new instance from an image 3) Connecting to instance using RDP 4) Basic monitoring (on the level of - are the lights blinking?) 5) Finding and pressing the reset button 6) Creating a new image, to be used later 7) Setting up auto update 8) Configuring the firewall This will take an hour to read and do the exercises, after each anyone can run their stuff in the cloud. I'm not talking about complex system, but a few web sites and a database is easy enough to set up. Firewall can be buttoned down to only allow ports 80 and 443 (or just 443) to public, and RDP port to your own IP address. If you're using Microsoft stack, they will keep you fully up to date. You would still have to update your own software, but presumably people can handle that. The only thing is automated backup - you'd have to write a script for that and schedule a cron (schtasks) job.
- zeeg 14y agoI'm definitely not an expert on AWS, but this almost seems like the same process I had to go through with setting up my servers. I more or less knew how to structure the app, what software to use. So it came down to: - Setting up base configuration (users, iptables, etc) - Setting up web/db specifics - Setting up automated backups