28Jan Thu2010 | Private Clouds, good or bad?
James Hamilton -who I have a lot of respect for- has big
posting,
Private Clouds are not the future.
His Arguments
- You don't get the scale in hardware purchases
- Only the big datacentres can justify the investment in free-air
cooled, low-power servers, negotiate low cost power from PNW hydro
facilities, etc.
- "Cloud computing providers have some of the best distributed
systems specialists in the world.They also have open source experts
and depend deeply upon both open source and internally produced
software."
- Costs of keeping High Availability are high, best
outsourced
Interesting, but I don't agree with all of them
- If you are doing something private you don't get the economy of
scale of a brand new rack-in-container setup somewhere near Yakima
or Eastern Oregon, yes your power budget may be higher. But you
don't need any upfront investment in your own hardware, you contact
your favourite server vendor and tell them how many you want, where
and when.
- You don't need brand new datacentre facilities. If you can get
away with what you have: less capital outlay. Whereas AWS and
facebook are spending $$$, and that has be paid for somehow
- Yes, the providers do have some of the experts. But here's the
thing, a lot of that experience can feed back into the source, be
it open or closed. When we get some wierd DNS bug or something,
that gets patched, the app is better at working in those situations
-or a least recognising them. Amazon may think they are gaining
a strategic edge by not contributing back any of their bug fixes to
the big applications, but all they are doing is forking their code
away from everyone elses. In open source, regardless of the
license, if you keep your patches closed, you gain a short term
advantage, but risk the long-term. And if you roll-your-own app
from the ground up (SimpleDB) then anyone who uses it is locked
into your platform forever.
- HA is best outsourced. Maybe so, but I note that apps on EC2
aren't necessarily HA, as the task of keeping the application alive
still belongs on that ops team. Only now if something is wrong you
don't get access to the datacentre, to its routers, to find out why
things are wrong.
I don't see why any infrastructure shouldn't have an API that
lets me create VMs from my remote command line, web UI, build
tools. Something that lets me share infrastructure with other
people, rather than have dedicated machines to dedicated apps.
Because in a sufficiently large organisation, there are always some
old under-used apps floating around, and those apps that are used
have varying demand. Exactly the kind of thing you need an agile
infrastructure for
|