David Blinder, CTO of Familybuilder.com, tells us about how they use AWS to power their genealogy and family-oriented applications within online social networks, Facebook, MySpace, Bebo and Hi5. Family Tree now has over 10 Million members.
What is your title and main job function at Familybuilder? As Chief Technical Officer, my job is to understand our application and seek ways to optimize and scale the network infrastructure to insure the highest availability. Insure the highest quality user experience that we can provide.
Please describe FamilyBuilder.com. Familybuilder.com provides genealogy and family-oriented applications within online social networks. The company’s flagship product, Family Tree, is a leading social genealogy application on Facebook, Bebo, and MySpace. As of April 1, 2008 over 10,000,000 profiles have been built with Familybuilder. The company is only about 1 year old.
How have you incorporated Amazon Web Services as part of your architecture? What services are you using? Our company developed its infrastructure on top of the Amazon Web Services platform using both EC2 and S3. We use small instances to load balance www systems and run redundant database servers with failover and front-end servers all within EC2. As part of our effort, we enjoy the flexibility that AWS offers our growing company where we have been able to change our network topology and structure to accommodate new needs within hours. It’s really very exciting to have this kind of control while scaling an application.
We use the EC2 platform and take advantage of the S3 storage service extensively. The transfer rates from these two services are fast enough for most applications. Our S3 usage was adopted out of a need to store user-specific media on an ongoing basis. Our application allows a significant number of personalization options and S3 allows an unlimited amount of storage—it’s a perfect fit.
Why did you choose Amazon Web Services? We went to three ISPs and reviewed their proposed cost to deliver services that were “contract printed.” In other words, we would pay a significant amount upfront to build a schematic of the network, setup units and deploy the servers. All this was paid upfront, to include, in most cases the first month hosting. In all, the ISPs would cost in the ball park of $10K-$15K just to get started and about $7K-$10K monthly. Many of our peers and some of our partners expressed common regrets about their infrastructure choices so we sought alternatives. We also considered everything we thought could go wrong as we scale our applications in the social space, which seems to grow exponentially larger everyday.
We found our answer in the use of RightScale on top of AWS. RightScale’s dashboard, with their library of images, allowed us to move quickly to put together an infrastructure that is capable of scaling in minutes, not days. We can act to increase capacity or decrease it at will, providing better service during peaks or press hits and pulling back when we know user volume is lower.
What were you using as a solution before implementing Amazon EC2 and S3? Prior to using EC2 and S3, we hosted at an ISP. Technical difficulties at their NOC’s physical location left the application servers without enough bandwidth to serve users. This lack of bandwidth carried on for approximately 20 days or so. During this time, we searched for other hosting solutions.
Have you learned any valuable lessons during this process that you would like to share with other developers? If you are going to scale your application and you are looking for a hosting platform to lay it out on, make sure that you can move to change quickly. You will plan and you will research and you will recode your software. If you decide to go with physical hosting, you will pay setup fees and first month fees to be delivered an infrastructure that can change, but not by yourself, when you need it to change. So, you will deploy your application having made your choices and if you’re wrong then you will have incurred some significant costs to allow for changes, in some cases these changes are significant. AWS allows an application to be scaled in a cost effective manner. Final word, if nothing else, run your scale models on AWS to see where things will break and get used to scaling.
How has AWS helped your Facebook app succeed? Facebook and our application are growing so fast that our need to increase capacity is always a concern. During this wild growth, we are able to stay ahead of the curve with AWS. I often shiver when I think that we would have to add a server at an ISP’s rate to cover spikes that last a couple days. Of course, in those hosting scenarios you maintain at least 40% more resources than what is needed at some cost. Resource allocation and provisioning to control cost in these environments can be 30% of the IT department’s job (think, planning).
Do you have any future plans to incorporate other AWS solutions or use EC2 and S3 in other ways? I like the new database service, Amazon SimpleDB and I intend to research it for some use. It is another exciting opportunity.
We have an active R&D department always looking to enhance the social graph. AWS allows us to try new concepts without making a huge cost commitment.
Is there anything else you would like to add? I think that, as your service offerings grow and the technology improves, it is possible that the physical hosting model will start to be replaced entirely. It is obvious that there are still many people lacking the knowledge to leverage EC2, but with wonderful add-on products like the ones available for FireFox (S3Fox and EC2), people are closer than ever to really enjoying this powerful technology.