Zynga got its start in 2007 in the Amazon Web Services cloud, then made an epic migration away into its own zCloud in between 2010 and 2011. Former CTO Alan Leinwand noted at the time that Zynga could get three times the work out of its own cloud servers than it could get from AWS.
Then in 2015, Zynga migrated back onto Amazon infrastructure again.
CIO Dorion Carroll offered an explanation of this unparallelled journey at Amazon's Re:Invent show in Las Vegas in October. As the zCloud aged, Zynga realized Amazon could update its infrastructure on a more regular basis than Zynga could.
"In 12 months, AWS has advanced storage and compute three times. Had we chosen our own infrastructure, we would be behind already," Carroll told a Re:Invent session on Oct. 9.
Zynga never entirely left Amazon; it was always a hybrid operation. Even with the zCloud, it would launch a new game, such as CityVille, FrontierVille, Café World, and Mafia Wars, on Amazon, watch how it grew, and let EC2 provide the needed infrastructure. When the picture had stabilized or the trend line had become predictable, it could add its own data center capacity to host it.
Some of that movement tracked Zynga's own changes in fortune. It grew exponentially, piggybacking on top of Facebook in its early days. Then Facebook demanded a larger share of revenue, the game venue shifted off of PCs onto smartphones, and Zynga had to roll with a series of punches. This is part of the reason why it left the Amazon cloud and went back again. By the time it decided to return, the online game firm had fallen on harder times and had less in free funds for capital investment.
Now a Zynga architect, Chris Broglie, has explained one reason why Zynga is happy to be back inside the Amazon infrastructure. He says it's the automated services there, particularly Amazon's Aurora database service, a highly scalable version of MySQL.
Writing as a guest blogger on the Amazon site on June 20, Broglie said:
As we migrated from our own private cloud to AWS in 2015, one of the main objectives was to reduce the operational burden on our engineers by embracing the many managed services AWS offered.
Zynga had been a big user of MySQL in the zCloud and looked to do the same with the version of MySQL offered under AWS's Relational Database Service.
The version "relies on general-purpose Amazon Elastic Block Store volumes for storage. Being able to dynamically allocate durable storage is great, but you trade off having to send traffic over the network, and traditional databases suffer from this additional latency," Broglie wrote.
By signing up for provisioned I/O operations, Zynga could improve that performance at a higher price. Its testing found that it could get even better performance by running a copy of MySQL on an i2 instance. The i2s are high storage instances attached to large amounts of solid state disk. The smallest i2 comes with 800GB of SSD, and high I/Os are a given.
"For these reasons, we used self-managed i2 instances wherever we had really strict performance requirements," Broglie wrote.
For a new service during the migration back to AWS, however, Zynga "took a measured bet" on Amazon's Aurora database service, which had been introduced in November 2014.
"Aurora was only in preview when we started writing the service, but it was expected to become generally available before production, and we knew we could always fall back to running MySQL on our own i2 instances," Broglie wrote.
Amazon has made claims that its Aurora service, while compatible with MySQL applications, scales much faster and further than the existing versions of stand-alone MySQL.
"We were naturally apprehensive of any new technology, but we had to see for ourselves" if Amazon could deliver on its claims, Broglie continued. If it did, Aurora would have the added benefits of using Amazon's networked storage service -- instead of Zynga-managed SSDs associated with i2 servers -- and could be used as a managed service, with Amazon taking responsibility for the core system instead of Zynga.
[ When Zynga was first flush with success, it built its own cloud. Read about its first migration in Lessons From Farmville: How Zynga Uses The Cloud. ]
"After 8 months of production, Aurora has been nothing short of impressive," Broglie concluded. He acknowledged that so far Zynga has kept the workload "fairly modest." Its busiest instance handles 9,000 selects per second during peak against a 150GB data set.
"We love that so far Aurora has delivered the necessary performance without any of the operational overhead of running MySQL," Broglie wrote.
Return To Managed Services
Carroll added his own conclusions at the end of his Oct. 9 presentation: With Zynga's IT staff less focused on hardware and physical infrastructure, "we can focus on running and operating our applications," he told the session. More managed services are in Zynga's future, such as AWS Lambda, the event-driven, code-running service, as well as AWS Redshift data warehouse and AWS Glacier storage.
Zynga is a special kind of Amazon customer, and its experience may not be appropriate to all enterprises, which have a more varied application stack and more legacy systems to deal with. Nevertheless, when developing a new application, the ability of Aurora to perform and the Amazon infrastructure to scale up to meet its demands resulted in Zynga's endorsement.
Zynga has typically been a hybrid operation and it had a choice to keep a high performance MySQL operation in-house to get the performance it wanted and has opted for a cloud service instead.
"Using AWS allows Zynga to focus on developing great games, investing in product innovation, and improving player experiences," Carroll concluded.