This is Eran's Typepad Profile.
Join Typepad and start following Eran's activity
Join Now!
Already a member? Sign In
Eran
Recent Activity
I understand and know of others who have used specialized hardware such as SSDs but I personally don't like to hang the performance of my system on specialized hardware. Specialized hardware machines and 32Gb machines cost significantly more than 16Gb machines with regular disks. Almost all big players try to find their sweet spot machine configuration and use a lot of that same machine. You can argue that it might require more machines to reach the same performance, but usually in most cases if you optimize it correctly and look at it from a different point of view you might be able to do the same without specialized hardware. Like anything else in life, using the cloud is a trade off and the solution is probably a hybrid one with both cloud and dedicated servers. The fact that all big players have some sort of virtualized environment (Amazon, RackspaceCloud, GoGrid and others virutalize hardware, while Google AppEngine virtualize the platform - not needing to worry about it) shows that there is something there. Other than that, one of the key points you raised is the lack of experienced sysadmins. The fact is there is always a lack of such people and the key for them to be most effective is automation. That is where cloud makes things a lot more easier. Easier to provision more servers, easier to automate, etc. Also, with the dynamic load on sites, having a virtualized environment means you can easily scale up and down your system, even automatically, since provisioning becomes a breeze.
Oh, and using Xen, KVM for the raw virtualization or the Eucalyptus project (which Ubuntu's private cloud is based upon) can give you the cloud environment you need. Today I also heard that Rackspace are opensourcing their cloud tech called OpenStack to the wild. So things are going to be interesting.
I agree that you must have sysadmins, however I think ALL developers have some knowledge of administration. You have to know all of your stack bottom up and top to bottom to really understand how the system works, where are the bottlenecks and be able to really scale. Regarding the cloud, the problem is not the cloud itself, its the platform. Amazon runs most of its own site on its own cloud platform and there are a lot of benefits for that. Just consider a simple deployment of new version in the cloud vs. physical computers: Cloud: 1) Start new instances with new code 2) Test them on real production config 3) Using the load balancer route more and more traffic to them. If there are problems you always have your old instances running. 4) If all is ok, move all traffic to new instances and shutdown the old ones. Physical machines: 1) If you have spare machines or can downsize capacity for a while, install the new code there. 2) Test new code 3) Start moving traffic to new machines / upgraded machines 4) Upgrade the rest of the machines 5) If you have an issue rolling back is a bitch (at least more than shutting down a couple of instances in the cloud). From a scaling point of view, your architecture shouldn't be dependent on the cloud at all. You should be able to migrate to physical machines (or just use a cloud provider such as GoGrid or Rackspace cloud that provide both cloud and physical hosting). As you said, you need admins for the cloud, so the skill set stays and knowledge is still required. You just save, at least at first, the 1/4 time spent on networking and hardware. If a VC tells you that must go to the cloud because its hot, you might want to reconsider taking this VCs money... :-)
Eran is now following The Typepad Team
Jul 19, 2010