

Why the cloud isn't for your startup - namidark
http://bluescripts.net/2012/02/why-the-cloud-isnt-for-your-startup/

======
nchuhoai
I think you might want to rename the post to: "Why the cloud isn't for my
startup"

Seriously, people need to stop telling other people what to do. I very
appreciate your input and in fact, I am exactly in that situation, but when
you tell me what to do, it's less likely I am listening closely to what you
say.

On topic: Sure I could learn how to do sysadmin stuff. But for some people and
maybe me, the opportunity costs outweight the economic benefits of rolling out
without PaaS

~~~
verelo
Yeah its different for all cases. Our monitoring company uses a bunch of
providers, we started with AWS. Why? Because its cheap, quick to deploy...and
i had no way of getting our servers in 8 global locations in a week any other
way.

We spend under 1k / month (still - we're the masters of money saving...) and
we're all around the globe. The truth is, we couldnt even get close to
matching this price any other way.

The cloud is for a lot of startups, but only if you know how to use it
properly.

~~~
shn
Could you share a bit more how you do it? Thanks.

~~~
verelo
Besides a lot of profiling of our code, its amazing how many people dont ever
do this...we rely heavily on micros in production.

A lot of people will tell you using micros in production is a bad idea, and
dont get me wrong...for most people it is a bad idea. Our findings are that
micros are reliable and if you use them correctly you are going to be OK.

Where we used to have 2 smalls, we can afford around 8 micros before the cost
becomes an issue. This is a significant benefit in that it increases our
availability (Basically we're in each region and every availability zone). We
have two main systems, the web frontend and our monitoring nodes. Nodes exist
in a specific region, and report back to the central storage system via API.

The main feature of our platform which enables us to scale using such small
systems is that our CPU demand is very predictable. There are no "hourly jobs"
or anything that would spike CPU, everything is done throughout the hour and
if we need more work to get done, we simply add more servers.

We are going to do a big write up on this in a few weeks, check our blog
(<http://www.verelo.com/blog>) or HN for the post when it comes out.

------
toast76
I hate these articles. You write an article which claims to tell me why my the
cloud isn't right for MY startup, and then conclude " If no one in your team
has the experience, or time, to learn devops, then a PaaS solution like Heroku
would be a more logical choice."

So really, you're not saying the cloud isn't right for anybody's startup at
all. You're stating the obvious, which is "if you have someone with sysadmin
skills, use those skills". Well, duh.

As a technical co-founder, I can either spend my time learning all there is to
know about being a sysadmin, or I can outsource it for DIRT CHEAP. Even at
$1500 a month for something like Heroku, it's still cheaper than spending as
little as 10-15 hours of my own time managing a server.

Besides, for the first 6mths of your startup, the actual costs for Heroku are
likely to be less than $100 a month for a couple of dynos. It's not even worth
the time to read the manual at those rates. A couple of git commands, and
you're done...even for a complete novice. By the time you're needing those 24
dynos, you likely have the revenue to support the cost.

You can always make more money, but you can't make more time. As a technical
founder of a business, your job isn't to be doing something that you can pay
someone else to do. You should be making magic happen in your product.

~~~
dgregd
"10-15 hours of my own time managing a server"

That's a lot of time.

What is the most time consuming task when managing your own dedicated server?
I thought that it takes max 1h monthly to run "apt-get upgrade".

~~~
cschmidt
I think he's including the time to learn what he's doing. If you have no clue
then it is going to take more than a few hours to learn everything. Sure, once
you're competent and everything is set up, it won't take much time. It is just
getting to that point that could take a lot of time.

~~~
asto
Cost of learning should be amortised over one's lifetime. It iwill work out to
a handful of pennies or dollars on a per-project basis.

~~~
cschmidt
True, but it is more a matter of where you choose to invest your time. Hosting
and sysadmin work have nothing to do with my startup's value add, and I
personally can't add much value by doing it myself.

------
foxylad
Actually the cloud IS for our startup. We used Appengine to launch and have
had no reason to even consider moving to bare metal. We've been successful and
are growing nicely, generating six figures of annual revenue - and paying
Google three figures annually.

For that, we've got a team of the world's best sysadmins working for us. And
if we hit the express elevator, it'll scale as far as we need without us
lifting a finger. We'll be popping champagne corks - not server cores.

And best of all, we can focus entirely on what we do best - developing great
web apps. We don't have to take weeks out at a time to migrate to bigger
machines or the latest operating system. Every time a new exploit comes out,
we don't have to drop everything to check we're safe. I don't lie awake at
night wondering what would happen if a disk drive crashed or a power supply
blew.

Obviously your mileage may vary, depending on exactly what your startup does.
But you'd be a fool to discount the cloud on the basis of one article on HN.

------
davepeck
Nitpick: EC2 (and AWS) isn't PaaS. It's IaaS. I think this is an important
distinction. Most PaaS (like Heroku, App Engine, etc.) takes away the need to
play administrator and lets you focus on your code, less your infrastructure.
On the other hand, IaaS like AWS is closer to a smorgasbord of components you
might want to use to build stuff.

------
holman
GitHub's listed as an example, but I don't really think we should be. It was
pretty reasonable for us to start on virtualized instances to start out. By
the time we moved to bare metal, we had grown quite a bit and it was pretty
clear what our growth strategy for the future was. To further complicate
things, how we stored our Git repositories on the backend changed
_dramatically_ during the move from virtualized to bare metal... a good move,
to be certain, but one that took considerable up-front development time, and
one that may have sunk the company had it delayed GitHub's launch by six
months or more.

We're also just a weird case, since our bottlenecks are almost always a matter
of IO and how-fast-can-we-access disk. That makes our use case a little more
difficult to virtualize. I don't think this is something most startups
generally experience, at least not to our extent.

------
PaulHoule
When I worked with Softlayer I found the support people made things worse
rather than better -- every time I had them do something they broke something.

I upgraded the ethernet port on one machine to 100 Mbps/s and something
happened to the trouble ticket system that made it impossible for me to put
tickets in. At least I got the port upgrade for free.

To get to the point where I could put tickets in again I had to call on the
phone and talk to three different people, finally one guy was a wizard who
logged into SQL monitor and was able to fix my record.

Then there was the time that I had them add a new disk drive to a machine and
they added the drive w/o a partition table. When the machine rebooted, the
superblock got overwritten and I thought I lost the files.

I was able to recover the filesystem, and right after that I moved all of the
files into S3.

My bill at Softlayer was $300 a month, I pay $600 a month now on EC2 but I'm
running a much bigger operation. I probably could get that price down if I
shopped around, but I'd have a hard time building a storage solution as
durable as S3 at any price elsewhere.

Now, with EC2 I am doing sysadmin work, but I find I'm productive at it
because I'm just doing stuff rather than talking on the phone with a bunch of
dolts who'll just screw it up.

------
herge
Sure, for 1.5 grand a month, you can get a crazy amount of dedicated hardware,
but then, that's one-half to one-third of one developer's salary. Heroku
charges a premium to save on developer time (and hopefully benefit from
economies of scale).

~~~
dblock
Yes! +1 Focus on your core competencies (not on running servers).

------
glimcat
Premature optimization.

It's not worth worrying much about what will happen when shit hits the fan if
the fan isn't spinning yet. First, figure out how to get some power to the
thing.

~~~
krobertson
He's also optimized around his current setup and think that would carry over
1:1 to another platform. He has 24 unicorn workers now, so he thinks he needs
24 dynos on Heroku.

Whenever I've moved an app between platforms or server setups, I benchmark an
individual instance and figure out your needs that way.

Also find it interesting how his current setup is all on a single server. So
his entire service is one massive SPOF. On Heroku, he'd be highly available
and horizontally scalable. How much does downtime cost him?

------
ScotterC
I missed the part where he convinced me that EC2s weren't for me. If I have to
learn enough sysadmin to run my own box, then I'll have learned enough to
handle my own AWS cluster without needing a support ticket answered within
hours.

------
apedley
I think this post raises some good points but really misses the mark.

Firstly support. On dedicated hosting on some providers, yes you will get a
quicker response than from Amazon or Microsoft or whoever your cloud provider
is. However, when there is a problem with their service, by the time I find
out about it I am normally looking on their site to see they have already been
notified of the problem and are already looking into it. And Microsoft Azure
does have phone support for any critical issues.

The 2nd great thing about the cloud is that, it isn't just your problem. They
are hundreds if not thousands of companies affected and they are more likely
spending far more money than me with them. Hence I get the rapid fix of any
issues, without being the big client.

Benchmarks - not sure why that was brought up, you can benchmark on any cloud
provider. On Windows Azure I can find out everything from CPU to memory usage
and do remote profiling.

Dedicated will give you better costs, machine to machine wise but I would
rather pay $1,000 + more a month to have someone look after all my hardware
and the ability to scale as a I wish, rather than have to pay someone (who
would cost far more) to monitor, upgrade and plan for it continuously. If $150
to $1,500 is an issue and you are prepared to spend a large part of your own
time on this insignificant issues, then I suppose you are a startup and not a
business yet.

I understand doing everything yourself at the start, staying as lean as
possible, but if you are looking at that scale and hiring people then the
costs of the cloud are FAR more attractive.

~~~
elebertus
Saying that system administration is trivial is like saying your site being
up/down is trivial.

Your level of concern can become more trivial when you pay someone else to
worry about it.

------
dasil003
This definitely contains a valid perspective for green web developers, but
it's thin on actionable information. All these platforms have real upsides and
downsides that should affect your decision more than raw cost. Heroku for
instance is very stable because of the controlled environment, but they nickel
and dime you for any services that are not part of the standard package. EC2
is easy to scale with, but IO throughput is bad, especially on smaller
instances. EY gives you root access in conjunction with a mature suite of Chef
recipes and some higher level services, but they charge a premium and some of
their choices might not be technically ideal for you.

The bottom line is that dedicated hardware is cheaper because it comes with
less. If you aren't making use of those value added services, then by all
means go dedicated. If you know you don't know what you don't know and you
want experienced support to take responsibility for a larger percentage of the
stack, go Heroku or Engine Yard. If you have specific overriding requirements,
let that guide your decision to a platform. There's no one size fits all
solution, and cost is not the primary difference.

~~~
JonWood
One advantage of "Heroku's" nickel and diming is that the money is actually
being split with other companies in most cases, and those companies core
competency is providing _exactly_ that service, whether that be a Redis server
or email delivery.

You do pay more than just throwing another service on a machine you're already
running, but you've got a fairly good chance of it being massively optimised.

~~~
dasil003
> _you've got a fairly good chance of it being massively optimized._

... for the general case.

Is this good bang for your buck? YMMV.

------
spiredigital
My company just moved to the Rackspace Managed Cloud, which is about $350 a
month for a 4GB dedicated virtual server, and it has been fantastic. Our team
is savvy, but we definitely don't have any hard-core linux sysadmins in the
group, so being able to call 24/7 and chat with an expert who has access to
our box gives us most of the benefits of having an in-house admin at about 5%
of the cost.

~~~
Ecio78
How many hours in a month do you use this kind of "sysadmin expertise" ? You
could also use a freelance sysadmin (hourly based payments) that can remotely
connect to your physical box(es) and do what needed.

~~~
lusr
Out of curiosity can you recommend anywhere decent (apart from the obvious
freelancing/guru sites I guess) to find such a freelance sysadmin?

~~~
Ecio78
Nothing specific, apart for the sites you know. I have no experience on those
sites but I've heard of people that have found good professionists there (of
course they wont charge you 5$/hour but maybe 50$/hour).

NB I could probably add also anyfu.com for highlevel experts (in the 200$/hour
range) but it has not launched yet (it's done by Justin Vincent and Jason
Roberts of TechZing podcast fame)

------
bradleyjg
The hole in the cloud offerings right now are in the "managed server" space.

There are plenty of (well grounded) people who aren't worried about having to
double capacity every other week, but still don't want to be (or hire) a
linux, nginx, memcached, and mySQL guru. Figuring out things like setting up a
hot spare with automatic failover, backup, security patching and dealing with
DoS attacks are not by any means things that can be picked up in a weekend.

GAE and Herko promise this type of thing, but bundled along are the cost,
limitations, complexity and opacity of the autoscaling infrastructure.

------
Vitaly
I have all the sysadmin skills needed to run dedicated servers and in fact I
was running and configuring most of our development and production systems for
years. We did switch to Heroku for most of development and production projects
lately and the difference in "time spent doing stupid IT" was enormous.
literally tens of hours per month that I'm not spending now on starting,
stopping, configuring, figuring out why the puppet install script fails
thought it was working perfectly the last time, monitoring, etc, etc, etc.
HUGE gains in productivity and totally worth the extra cost.

It all depends on how much you value your time. We are a consulting web dev
house, so figuring out the price per hours is easy - its just what we bill our
clients; but even for a regular startup it should be fairly straight forward.
And this doesn't even take into account the opportunity cost. The cost of not
doing something directly relevant for your startup outcome while you are
fiddling with the servers.

~~~
dpritchett
How do you properly price out your database stuff? I have a little app with 2
gigs of data in Mongo that I'm running for $10/mo. on Rackspace.

I'm looking at migrating the whole thing to Heroku but the Mongo cloud
providers seem to cost 2-5x more.

~~~
Vitaly
All our development and staging systems are essentially free, mongolab/Mongohq
have free plans that are enough for dev. That being said I'm definitely not
looking to save 20$ as I bill 110€/hour so one saved hour I can devote to
actuall work pays for half a year of payed heroku dyno;)

------
dave_sullivan
Depends on which cloud you're talking about -- there is no "the" cloud.

But since you're talking primarily about web app hosting options, I've found
AWS to be just fine, others seem to like rackspace or linode or whatever.
Heroku has struck me as pricey, and if you're a web developer I feel like you
should be capable of setting up a web server on linux on your own. EC2 and S3
are both just really convenient, I'm not sure of an option that's more
convenient, and that's really what I'm looking for--convenience and one less
thing to worry about.

So, the cloud (or several clouds, really) is right for my startup, but it may
not be right for everyone. Still, EC2, S3, and AWS generally really are great
products, if you're a startup, something like it probably is for you, at the
very least until you've figured out what you're doing and are making something
people are paying for.

------
oniTony
The post seems to discount using EC2, for it being lumped together with
Heroku's free tier as the same kind of a PaaS.

The post also does not talk about elasticity (the E in EC2) -- how easy is it
to add (and later remove) that extra dedicated server to handle a spike of
traffic from HN/elsewhere?

------
sdcooke
I think the important thing to take away from articles like this is that the
cloud isn't the only way (not that you should then title the article "Why the
cloud isn't for your startup"). If you do know a bit of sysadmin stuff and/or
you're running a bootstrapped company it's good to know you can pay about 10%
of what you'd pay on AWS by using dedicated gear (particularly if you have
predictable traffic, as a lot of sites do). "X hours of my time is the same
cost as Heroku" only works if you have cash in the bank or each hour of your
time directly brings in cash.

We do have a slightly special case with >100TB of storage and monthly
bandwidth, though. When we started I assumed S3 (or another cloud service) was
the only way and never dreamed of building my own distributed file system.

------
oacgnol
I am of the school of thought where Heroku and other PaaS offerings are good
for prototypes, where you'd throw up some simple apps on the short term. If
you need to scale up, then you'd consider hosting it elsewhere and where you'd
have more fine grain control. Does no one do this?

------
shazzdeeds
My experience has been more big data management and analytics. Less on the
startup angle. There are a lot of hidden costs associated with maintaining
your own dedicated hardware. Our projects here invested quite a bit into
several internally maintained clusters, and it hasn't been perfect. There is a
lot of opportunity cost wasted in having developers forced to constantly flex
their sysadmin muscles. My time is best served solving problems that leverage
the cloud, not tuning and maintaining it. The context switching can be very
distracting.

It's actually faster for me to use EC2 whenever I have major calculations than
our internal cluster. I get on demand scaling up with the fine tune control I
need to micromanage when necessary.

------
diego
The cloud worked great for IndexTank, thank you. We launched fast and our
costs grew quickly, but our customers paid for the growth.

If your costs grow and your revenue doesn't, THAT is your problem. All the
optimization in the world won't fix it.

~~~
foobarbazetc
That's good for you, because you flipped IndexTank, and then it died.

The point is, if you rely on profits to keep your company running, saving 11x
on your infrastructure costs is something everyone should be at least
evaluating.

------
blueprint
The author makes too many generalizations in this article.... My company uses
Rackspace, which has been fantastic, and as far as I could find Rackspace has
no demerits listed in the article. Common complaints like poor support or
limited customizability have just not been issues so far. Maybe when we become
huge and can afford racks of servers and such matters as hardware
customization become relevant issues to us it will be time to make the switch
to our own servers, but as far as I can tell, as long as the hosting company
doesn't suck at certain critical service aspects like support, cloud hosting
only helps small startups get off the ground more easily.

------
fufulabs
In other related news, AWS drops prices for the 19th time
[http://aws.typepad.com/aws/2012/03/dropping-prices-again-
ec2...](http://aws.typepad.com/aws/2012/03/dropping-prices-again-ec2-rds-emr-
and-elasticache.html)

------
swasheck
I guess I should go invest some time learning KVM so that I can spin up VMs on
my home computer until I can get some angel to toss me some money so that I
can invest in some hardware.

All I have to do is learn how to spin allocate space on a disk drive to a
virtual disk, should I use RAW, QCOW2, something else? I should probably
figure out how to install an OS within this "container."

What's that honey, you need to do the budget? Hang on, I'm still working on my
job.

Man, I seriously have to learn some sysadmin to get this thing up and running
on my commodity box.

Wait a tick ...

~~~
pja
This is where virt-tools actually works well. Point it at an LVM volume, tell
it how much disk you want to give to the new virtual machine, let virt-install
do it's stuff, done.

Your more general point is well made however :)

------
rickmb
AWS plus a dedicated sysadmin company delivering the same service level as a
good hosting provider always seemed like the sweet spot to me. Barring
scenarios where you actually need your own iron to deal with performance
bottlenecks, it's the best of both worlds.

The cost of hardware or cloud services is pretty much irrelevant compared to
the cost of sysadmin hours, be it your own or hiring someone else.
Unfortunately most people only learn that lesson when the shit hits the fan.
Downtime is costly. Getting hacked even more so.

~~~
JonWood
If you're hiring dedicated people to manage your servers bare metal becomes
even more appealing, especially if they know what they're doing and can allow
you to burst out to a cloud provider when you need extra capacity fast.

------
shimon_e
The cloud is using ECC memory. Your server is not. However, if you shop around
you can find cheaper, faster, and better specced servers with ECC memory.

Use forums like webhostingtalk.com to your advantage.

------
heymishy
does it depend on what you define as a 'startup'. weekend projects should not
be considered startups even though every man and his dog seems throwing the
term around for every bit of code they hack together.

go dedicated when you commit to the project. Up until that point, you would be
wasting money and effort and although service support is good with dedicated
providers, that largely depends on 'who' you choose - i certainly wouldnt say
a blanket 'great response times from dedicated vs cloud providers' on some
(shall not be named)providers..

~~~
JumpCrisscross
I'd go one more step - go dedicated when you are reasonably confident you're
done rapidly pivoting, i.e. have found a business and growth model that work.

------
Kiro
Not convinced at all.

------
mthreat
"However once you're project starts growing, the costs can grow
exponentially." [sic]

Exponentially, really? What exponent?

~~~
namidark
Maybe I phrased it wrong, but the cost per worker vs the amount you can fit
per dedicated machine are drastically different.

------
derrida
Everybody playing hacker bingo: "The Cloud".

~~~
swasheck
"Thec" "loud"

