AWS Case Study: tadaa
The menschmaschine Publishing camera app tadaa lets iPhone users edit all their photos like a professional. The free app offers 25 real-time effects, HD clarity enhancements, and HD tilt-shift for selective focus. Edited photos can be saved locally or shared on Facebook and Twitter. tadaa also hosts a global photography network where users can find inspiration and receive feedback. tadaa was developed in 2011 by menschmaschine Publishing GmbH, based in Hamburg, Germany.
Menschmaschine’s developers wanted to create a feature-rich mobile experience without spending resources on laborious system administration duties. "On-premises infrastructure was never really an option for us," explains Friedemann Wachsmuth, menschmaschine Publishing CTO. The company knew it wanted a cloud provider with an established track record, flexible pricing, comprehensive managed services, international coverage, and the ability to scale up and down easily.
Why Amazon Web Services
“For our needs, Amazon Web Services (AWS) was the best match across the board,” Wachsmuth says. The decision to adopt AWS immediately reduced menschmaschine’s time-to-market for tadaa. "Instead of purchasing hardware, setting it up, and scaling it, we were able to set up testing, integration, and production environments in AWS within hours," Wachsmuth says. “We started with a set of 12 instances, 4 for each environment. We realized few days later that we only needed 8—and we were so glad we didn’t buy any metal! It takes some CPU power to resize a couple of million HD photos to a dozen of new sizes each. No traditional hosting environment would have allowed us to accomplish this within a few days without any service interruption.”
The menschmaschine developers took a simple, iterative approach to configuring tadaa's cloud environment. "The AWS Cloud freed up a lot of resources," Wachsmuth says. "For example, when we moved from our self-administered database to Amazon DynamoDB, we eliminated the burdens of scaling in favor of predictable response times and infinite table sizes. That was a very easy business decision to make."
“DynamoDB also allowed us to have infinite table sizes,” he continues. “In our previous solutions, we carried database files of up to 8 TB around on Amazon Elastic Block Store (Amazon EBS) volumes—not very handy. Furthermore, we don’t have to take care of redundancy and sharding strategies anymore. All this is built in for Amazon DynamoDB.”
The development team designed tadaa’s back end around a message-based architecture, to glue asynchronous services together. “Having message queues is a bit like memcache for write operations,” Wachsmuth says. “With just a bit more of complexity, scaling and handling of peaks is a lot easier—as is making changes without noticeable service interruptions.”
In addition to Amazon DynamoDB, menschmaschine also relies on Amazon Simple Storage Service (Amazon S3) for storage. The application is powered by Amazon Elastic Compute Cloud (Amazon EC2), while Amazon Elastic MapReduce (Amazon EMR) is used to create backups from Amazon DynamoDB to prevent data loss. In-memory caching is performed by Amazon ElastiCache, and Amazon CloudSearch provides search functionality. Amazon CloudFront serves as the application's content delivery network. “The amount of data to be processed is constantly growing,” Wachsmuth says. “We are finding relationships between more than 250 million anonymized contact hashes in real time, have hundreds of millions of assets on Amazon S3 and are processing an average of 2,500 messages per second. One of our three Amazon ElastiCache clusters gets 200,000 GetHits per minute, peaking at almost a million.”
Developers monitor the entire infrastructure with Amazon CloudWatch and the open-source SourceForge Ganglia system. “The best thing with Amazon CloudWatch is that it is just there,” Wachsmuth says. “You find all the data points you need, even if you did not even think about them while setting up your service. Ganglia is a great addition since it keeps summary data points as long as you want—a perfect companion to recognize long-term trends and patterns.”
When there is a shift in usage, the response is swift. "The ability to switch on different services or replicate across multiple regions allows us to grow where we need to,” Wachsmuth says. “This is crucial for us as a social network because unpredictable viral growth can happen at any time. When we suddenly got big in the United States, we just had to turn on a few more instances in the U.S. East Region instead of deploying actual hardware there."
The architecture diagram below illustrates the tadaa system.
tadaa experienced an exceptionally large growth spurt in late 2012 when nearly 500,000 users converted to the application in less than one week. "Such growth would not have been possible without the scalability provided by AWS," Wachsmuth says. "Using AWS, we quadrupled the amount of photos in our system within five days."
All this was accomplished without hiring any additional staff. "We are a team of 5, and 4 of us are engineers,” Wachsmuth says. “Our small team does not even have a dedicated person for IT operations or systems administrations, so we are saving enormous amounts of working hours by using AWS managed services," Wachsmuth says.
To learn more about how AWS can help power your web applications, visit our Web, Social, and Mobile Applications details page: http://aws.amazon.com/web-mobile-social/.