Five Models of Enterprise Cloud Deployment -- Part 2
As enterprises increasingly adopt and implement cloud computing as their main approach to running their IT operations, several patterns of deployment are emerging. Each one of these patterns has its merits and faults, and different companies seem to align themselves with different approaches.
In this series of blog posts I am reviewing several of these approaches. In Part 1, I reviewed the “Pure Public Cloud” approach, which among others, is famously adhered to by Netflix. As I described in that post, Netflix is committed to running its entire IT operations on public clouds (namely, Amazon Web Services). But the company itself acknowledges that this approach introduces some risks and has inherent limitations. One of these limitations -- the lack of control over the underlying infrastructure -- is what drove Zynga, the social game company, to shift away from the pure public cloud approach. And this is the topic of Part 2.
Cloudbursting -- The Zynga Approach
Although it has undergone several changes in its approach to using cloud computing, today Zynga takes a hybrid approach to private and public cloud. Zynga primarily relies on its internal private cloud, known as zCloud and only uses the public cloud, specifically Amazon Web Services, to handle unexpected loads, a pattern also known as “cloudbursting”. One such highly publicized load happened when actor Alec Baldwin was kicked off a plane because he refused to stop playing Words With Friends, one of Zynga’s popular games, after being asked to do so by a flight attendant as the plane was about to take off. According to AppData, a website that tracks mobile apps and social games, the number of Words With Friends users jumped that day by an unusually high 300,000.
It is interesting to understand how and why Zynga arrived at its current hybrid cloud deployment model, which runs 80% of its ADUs (Active Daily Users -- a metric commonly used by social and mobile apps) on zCloud and the remaining 20% on AWS. Luckily, this has been widely reported and discussed by the company’s technical team.
The company launched its first game, Zynga Poker, in 2007, and although Amazon had already launched EC2 at that point, it was very early days for cloud computing. So Zynga, as the vast majority of companies did at the time, launched its app on company-owned servers running in a traditional colocation center. But as Allan Leinwand, Zynga’s CTO of infrastructure, explained in an Ars Technica piece by Jon Brodkin entitled How Amazon Saved Zynga's Butt—and why Zynga built a cloud of its own, all that changed when the company launched its smash hit game, Farmville in 2009:
"We couldn’t get power fast enough. We couldn’t get servers fast enough. We just couldn’t scale our infrastructure to match the needs of FarmVille," said Allan Leinwand, Zynga’s CTO of infrastructure.
Zynga upended its whole IT model, shifting most of its infrastructure to the Amazon Elastic Compute Cloud, which lets businesses buy virtual servers and storage, scaling capacity up and down as needed. "They clearly saved us. They clearly were helping us scale throughout 2010 and 2009. They did an amazing job,"
At some point after that, nearly all of Zynga’s operations were running on the public cloud. But eventually Zynga had a better understanding of their operations in regards to the cloud that can be summarized as two things, which are very informative for others considering their cloud computing strategy:
- The pattern of popularity of their own games. After an initial launch the games would wane in popularity and stabilize. At this point, when they no longer needed to grow rapidly and unpredictably, Zynga would bring the games in-house to the zCloud, on which they could run the games much more efficiently, because...
- AWS was not ideally suited for the type of workloads Zynga required for social gaming. Zynga needed different server architectures than what was available on Amazon EC2. For example, they needed more memory, I/O capabilities and caching. You can read more about it here.
As I noted above, today Zynga runs the vast of the majority of its load in-house and only “rents the spike”. Its zCloud was designed very similarly to AWS, with Citrix’s CloudStack (now an Apache incubated project) as the cloud “operating system” and using automation from RightScale.
A very different approach from Netflix’s but one that works well for Zynga’s needs.
In the next part in this blog series we will explore a couple more, very different, enterprise cloud deployment models.