Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Startup development infrastructure - ec2, cloud services or own servers?
12 points by Robin_Message on Nov 1, 2011 | hide | past | favorite | 8 comments
I'm just starting a job with a startup and we'll now have a team of developers instead of just one—which means setting up source control, continuous integration and backups.

Anyone have any advice on best practices or good solutions to this? We're considering either an ec2 instance, a physical server in our office, or a reasonable set of cloud services.

Details: a few developers and a designer, Java web apps and an Android app, probably Jenkins for continuous integration, git for source control.




We used heroku until the free tier wasn't enough. Then AWS, though it does have a initial learning curve. AWS is really flexible, but you do have to become a bit of a sys admin.


That seems to make no sense at all to me. $50 a month for a db and 2 dynos has to be cheaper than AWS+your time sys-admining everything.

Now I'm not saying there aren't other reasons to not use heroku, but yours doesn't seem reasonable to me. Care to elaborate a little for us?


I am running off a managed dedicated server because server adminstration just isn't something I want to deal with and my concerns about scaling/growth aren't there yet. I guess it probably depends on your situation, if there is someone in your office who has a really strong opinion and the knowledge to implement it, perhaps that would work best for your group?


Good point, considering the capabilities. If you do everything with EC2, you should stick with it. Otherwise, if your developer box is Linux, you are probably able to admin a dedicated Linux server (for the build environment) as well, no?

On the other hand, it makes sense to develop Cloud skills at some stage as well, and you might want to screw it up with the test&build server first, before setting up the production server ;) Probably depends as well then on how much time you have?


[deleted]


[edit] I replied to a comment which is deleted now; it was a popular point of view that you should go EC2 early and buy more instances as you grow.

This is one common belief but actually if you ask any professional admin there's a big chance he'll say: hell noooo!

At least that's what I and anyone who is serious in operations business around are saying.

EC2 these days is overpriced, unstable, has ridiculously slow I/O, has epic crashes and gives no sane support. It also forces you to do lots of maintenance work with instances, ips, snapshots, etc - you can do it clicking in the web console but still you have to do it; so you basically buy an illusion of less work and a hardware of nightmarish parameters.

I'd say: buy a two dedicated server plans for your dev/CI machine and production (dedicated, yeah, no VMs!), pay a fellow admin some booze to make a magic on it once and you're done for a year. Even if your startup is successful (which I wish you from a deepest heart but remember the statistics are against you) a decent under-$100 plan will be enough [1] for you for the first year or two and you'll see the symptoms of increased resource usage soon enough to rethink the infrastructure. After that time - if your startup survives - you'll call fellow admin again to re-measure the usage, make some prediction and configure some horiz scaling for you. And you still will go cheaper than with EC2.

Other sane approach would be to have production on a dedicated server and put your development on some good PaaS like Heroku, but I warn you - you will be quickly excessing a free plan, so it won't be a most cheap option.

A general rule: cloud server or platform price is 150%-500% of a dedicated server with similar hardware. Why overpay when you're small?

And YES, I'm using EC2 since its start. It sucked badly at its infancy and sucks worse. And YES, I'm not against the cloud because of some bitterness caused by my corporation which hosts everything in house, but I cofounded and delivered to production a successful (yet) startup. References upon request.

[1] the price gap is right given you don't use Java of course.


Good analysis, but why production on a dedicated server and development on PaaS? Intuitively, I would do it the other way around, to make sure I don't have to do the admin on a production system (source of failure) and can scale the production system with the click of a button (which I'm happy to pay slightly more on). Where is my mind going wrong? ;)


The case for dev/CI on PaaS would be when one initially can't decide which toys (components, web stacks, libraries, CI servers, ...) he needs, provided that PaaS vendor has many options to choose from (heroku has). So one can test & trash different solutions quickly - this often happens at the initial stage of a startup. When settled with some infrastructure idea I advice to install production on a dedicated server for the reasons mentioned above: price & stability, keeping in mind that buying & setting up the horizontal scaling is postponed for about a year. At this moment there's choice - conntinue to use PaaSed environments for dev (I can understand the sentiment) or trash them completely and prepare a dev machine as well (better IMO).

YMMV


The sooner you get set up on the cloud or any VPS host the better. Hosting your site from a desktop in your office is pretty ghetto in this day in age.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: