At the Cloud Computing meetup today, Allan Leinwand, Zynga's CTO - Infrastructure, presented a fascinating study of how Zynga has employed cloud computing to power their game servers. It appears we will not see Allan's presentation in a publicly accessible web site any time soon — See Sebastian's talk about the meetup — and what follows is an account of the meeting, transcribed from my notes written out on paper. By the way, Allan's rapid fire delivery is a treat to experience.
Zynga started out renting server power through Amazon Web Services, and managing them by RightScale. By 2009, need for greater flexibility and scalability1, tipped Zynga to build a private cloud, zCloud, and complement it by using AWS. To smoothen the hybridization effort, they built zCloud as an AWS look-alike, including their security model, etc. In building zCloud, Zynga also avoided the use of inter-rack VLANs, and used an IP-routed network to interconnect racks.
Some interesting details about zCloud:
- Zynga uses 1 VM per physical server.
- CentOS is the guest operating system.
- They use x86-based physical servers.
- They have created a highly automated scheme whereby they can provision > 1000 physical servers in < 24 hours.
- The traffic in their cloud is more North-South, between tiers, than East-West (across servers).
- Growth: In January 2011, the server count was 75 times that in January 20092.
- A single orchestration layer manages the three key resources of the cloud: CPUs, Storage and Network.
Allan's recommendation for "Cloud 2.0":
- 99.999% availability at the IaaS level
- Compute power needs to scale to millions of CPUs. (Can the cloud borrow concepts from SETI@home?)
- The cloud environment needs to be able to handle any workload