Gravatar, one year later

October 11, 2008 | Posted by Demitrious Kelly

Wow it’s really been 1 year since Gravatar joined the Automattic family.  Time sure flies when you’re having fun!

Gravatar has come a long way from the service that it was back in October 2007.  My wife likes to laugh at me because I’ll pick something up in one room, like a remote control, and move around the house fidgeting with it.  Then I’ll absentmindedly leave it in some random place like the bathroom, or the freezer.  One year ago we picked up a small avatar service with a great name and an awesome fan base.  Now, in an attempt not to leave it in a random location, we’re looking back on the last year (and letting you look with us.)

The service was running version 2.0, and set up on two rented (or collocated, I don’t honestly know) servers.  The servers were running at loads of around 20, and could spike to well over 100 (that’s a lot.)  It was obvious that we needed both some stop-gap fixes and a plan. The first thing we did was throw some caching servers in front of the service — a couple of varnish servers as I recall.  This dropped the workload of the two boxes considerably, and allowed us to look at Gravatar without bringing the service down.  Next we replicated the setup 1 for 1 to two of our own (more powerful) servers.  This gave us a bit more breathing room.  And we began to plan.

It was obvious, from the very beginning that the service was going to have to handle a constant torrent of requests from the internet.  Most of those requests would be for email addresses with no Gravatar and come from URLs that could be crafted in an unlimited number of ways.  On top of that we knew that we wanted to make all the paid features free, and expand the size a Gravatar could be from 80 pixels to 512 pixels.  So basically instead of our goals being to make the undertaking less daunting we we’re actively making it a more intense challenge than it could have been.  But that was OK with us, because our goals for Gravatar weren’t to make it easier but to make it better.  We wanted to make Gravatar the kind of free service that we could use, would want to use, and would be proud to share with the world.  I know that last bit sounds like marketing crap, but that’s really what we wanted to do and is really how we look at Gravatar.

Pretty much the next thing we did was port Gravatars code from RoR (Ruby on Rails) to PHP.  As I mentioned when we announced this change the reason for this wasn’t about Ruby or Rails.  Simply put we’re a PHP shop, and once rewritten in PHP we have many more great minds that we can easily throw at it than if it were still in RoR. Since we ported it *pretty much* directly from rails there are some left-over rails-isms in Gravatars code that you wont find in, say, WordPress. Shh…. Don’t tell Matt 😉

In the rewriting we tried to tackle the largest scalability problems with the design of the service.  You can imagine that for an avatar serving service… storing, searching, and serving avatars is paramount.  Gravatar 2.0 (pre PHP) suffered from some pretty significant inefficiencies in this regard, and I think that a big part of that was limited resources (time and servers.)  Luckily we we’re now not significantly limited by either of those things.

— warning beginning technical details which may be safely skipped over if you don’t care —

The way that images were stored originally was: a complete image was made for all sizes between 1×1 and 80×80 pixels, a directory made for each rating, and a symlink placed from the rating to the appropriate image (either the users image or the default image in case the rating was too high.)  So that’s 80 images, 5 directories, and 240 symbolic links.  The reason for this, I believe, was to attempt to serve the avatar content without any database interaction whatever.  The files were then archived, uploaded to Amazon S3, and an entry added to Amazon SQS.  Finally the SQS entry was retrieved by the serving server, the file downloaded, extracted, and placed on the filesystem.  So this is why it took several minutes once you uploaded and cropped your image for you to be able to browse the rest of the site again.  You can imagine how many files Gravatar was comprised of by the time we got a hold of it!  We knew that this would simply NOT work for our new 512x512px avatar sizes.  Lastly there were a couple of directories which had several hundred thousand entries (either files or other directories) which were nearly impossible to even get a listing inside of.  So we had a list of things NOT to do.  We just needed to figure out what TO do 🙂

So we decided that we would render all our avatars dynamically from the highest quality copy of the image we can manage… down.  We would only store one version of the image, though we would store it in multiple places (a local file server for speed, and S3 for redundancy.)  We would still rely heavily on caching.  And we would asynchronize as much of the workload as was possible, so that you don’t have to wait for things to happen after you finish cropping (to do this we employed various techniques and hacks best left for another day and another story.)

— ok this batch of details has been concluded —

So the problems were many, one year ago, and the challenges were fascinating.  I recall being overwhelmed by support requests for quite some time.  I would get 40 emails on a good day, more on a bad.  And believe it or not your emails very much shaped the future of Gravatar.  I would group them into specific problems, and always fix at least the largest problem (volume wise) each week.  Over time the service has grown quite stable, support requests have gone down to just a handful every day, and things are generally peppier than ever.

We had some some bumps tuning our caches… for a while there we accidentally told your web browsers never EVER to re-validate an image. But we got that handled in short order… and things are zipping along quite nicely.

Gravatar now lives on about 20 servers: 2 Database servers, 1 File server, 2 Load balancers, 5 Caching servers, 9 Web servers, and 1 Development server.  That combination of servers is handling an average of 7,214 of your requests every second of every day.  That’s a whopping 623,293,056 requests daily! 96% of all of those requests are served directly from cache.  These days we get around 5,000 uploaded images every day.  Even with this staggering increase in the number of requests we’ve been able to make Gravatar faster, and more reliable than it’s ever been.

So here we are, one year later, looking out over the vast frontier of the internet and contemplating the future of Gravatar.  There are a great many things that it could become.  We know that we don’t want to loose focus on the core of the project: Serving your avatars (that’s what it’s all about!)

We know that an avatar is “a graphical image that represents a person, as on the Internet,”  But it’s also “an embodiment or personification, as of a principle, attitude, or view of life.”  And that is exactly where we are headed:  Making Gravatar a place where you can do more than just store an image, making it a place that can be your presence online.  So we’ll be rolling out more features in the near future to allow you to store more data inside Gravatar — and more importantly to allow you to use that information in other places on the internet through open standards.

We hope that you’ve had as awesome a time using your Gravatars as we’ve had making it all work.  And we look forward to the future — to when your identity doesn’t have to be cemented to a specific site, but is fluid and flexible, and persistent.  We hope to see you there!

Cheers!
Demitrious Kelly

83 Responses

  1. Frederick says:

    Wow. Automattic is full of amazing, dedicated people.

    Keep up the good work!

  2. Fiona says:

    Happy Anniversary Babes! I love Gravatar, love your work.

    xx

    Fi

  3. human3rror says:

    gravatar is the uber.

  4. Ken says:

    Gravatar gives me a good credibility look for my online activity! Thanks for your awesome work to allow me to leave my logo everywhere in the web using gravatar. 🙂

  5. Happy anniversary Gravatar!

  6. agabus says:

    Oh, look, my gravatar! Happy anniversary Gravatar. What a concept.

  7. […] under: Refresh SaturdayOct 11,2008 One Year Since Gravatar Joined Automattic: “Gravatar now lives on about 20 servers: 2 Database servers, 1 File server, 2 Load […]

  8. Teck says:

    Happy anniversary Gravatar,!!! 🙂

  9. Edward says:

    Happy Anniversary!

  10. Rishi says:

    Can’t wait to see what the next year will bring. 🙂

  11. AlexNote says:

    Happy anniversary Gravatar!
    And Thanks!

  12. […] קצת על טכנאות של גרוואטרים והיום חוגג השרות יום הולדת. בפוסט טכני מעניין בבלוג של גרוואטר מתואר השינוי שעבר השרות. מעבר משני […]

  13. jesse285 says:

    Happy birthday! The problem’s that I’m have on my spaceship with our crew’s is that I cannot keep some of these code in my head and right now I can’t write with my right hand, but if you can give a commander a little insight on how to with the gr avatar icon for my e-mail’s on y spaceship it would help me keep tab on where I’m at when I fly. thank you.

  14. Htoo Tay Zar says:

    Happy Anniversary!! =) I wish Gravatar becomes Univatar ~ Universal Avatar =D.. Keep On Movin`

  15. fitzcharming says:

    Recently learned what they’re all about & love it. Thanks for your efforts & great job.

  16. ChaosKaizer says:

    Happy one year Anniversary

  17. Fu4ny says:

    Happy Anniversary! I ❤ Gravatar

  18. Cecep Mahbub says:

    Ok I would saying it in Bahasa Indonesia, Selamat ulang tahun Gravatar 🙂

  19. hpguru says:

    Gravatar = Great. Thanks to Gravatar!

  20. awflasher says:

    Cong!!!!! Spread Gravatar all over the world!

    BTW, there’s a simple introduction in Simplified Chinese:
    http://www.awflasher.com/blog/archives/1503

    You may take a look at how many Chinese readers had got involved 😉

  21. […] ေပါင္းၿပီး version 2.0 အၿဖစ္ေၿပာင္းခဲ့တာ ၁ ႏွစ္ ရွိသြားပါၿပီ။ Gravatar ဆိုတာ တကယ္ေတာ့ Globally […]

  22. Chris says:

    Congrats guys and all the best for the years to come

  23. […] It has been a year now since Gravatar has become part of the dedicated Automattic Family, which just extended it’s roots with the acquisition of Intense Debate. GRAVATAR used to be a very useful tool on it’s own prior the acquisition that happened a year ago, but now, after a year, it has become even better and has become a core functionality to WordPress, to which not only bloggers, but blog readers turn to, to make their presence more personal on websites they interact on. […]

  24. […] 这篇文章感谢AW,在Wopus.org的的后台控制面板首页的WordPress火星里看到了相关的日志(无法访问),今天晚上Matt在博客上也更新了。 […]

  25. […] And also, check it out about the technical details on gravatar. […]

  26. bagol says:

    happy Aniversary Gravarar

  27. olbapnauj says:

    gratz w00t!

  28. me says:

    cool, thanks.. have a long life 🙂
    happy anniversary

  29. Trent says:

    This really is an accomplishment to be proud of Demitrious! Congrats to you and Automattic!

  30. Andy Sowards says:

    PHP FTW!

    Glad to hear of your success!

    Hope next year is even better!

  31. […] Pues, el mio es el mapa de Nicaragua con la bandera y el escudo. Aqui podes verlo […]

  32. ubfred says:

    Congrats! Gravatar is one of the greatest services around. Thank you very much for your dedication and time so that we can have an image everywhere.

  33. […] the appliaction.Yesterday  (October 11 2008), the guys from Automattic/Gravatar wrote a post the summarizes their last year. This reminded me of this small project that I always wanted to code. I’ve decidced to code a […]

  34. Saeed says:

    Thank you so much for your persistent hard work, guys. I’m sure that the new year would bring some very great features for us all.

  35. Congrats!! Keep up the good work! 😀

  36. […] servers WordPress.com. , Gravatar 20 servers 623 requests […]

  37. […] Demitrious Kelly retrace l’évolution du service : il y a un an, Automattic (la branche entrepreneuriale de la famille WordPress) acquérait Gravatar ; aujourd’hui, le service enregistre 5 000 nouvelles images par jour, et affiche 7 214 gravatars par seconde (!) sur les sites compatibles du monde entier. […]

  38. minanube says:

    Happy anniversary Gravatar! gravatar is the the way we know our face each others

  39. […] It’s now been one year since Automattic acquired Gravatar. “Gravatar now lives on about 20 servers. 2 Database servers, 1 File server, 2 Load balancers, 5 Caching servers, 9 Web servers, and 1 Development server.  That combination of servers is handling an average of 7,214 of your requests every second of every day.  That’s a whopping 623,293,056 requests daily!” Wowza! (13) PreviousPost NextPost […]

  40. Mark Malvado says:

    Congrats on one year!

  41. […] Gravatar blog has an update which includes some interesting stats on just how heavy the usage of Gravatars is (emphasis added), […]

  42. Doug Smith says:

    Congratulations on a job well done! I was in the process of giving up on Gravatar and removing it from all of my sites when you acquired it. The difference a year later is amazing.

  43. yurasik says:

    Happy birthday, Gravatar!

  44. Ryan Healy says:

    Getting my own Gravatar has been on my list of things to do for a long time. I’m in the process of signing up now. 🙂

  45. Jeffro2pt0 says:

    Congrats on the anniversary. I remember when I first discovered Gravatar and thought about how great the service was but realize my avatar would never show up and the service was slow to say the least. Now, it’s lightning fast and seems to be online all the time.

  46. Happy birthday. I want to see my “face” on this page, too. Great idea, great service. Thanks, and I wish you many more years to go.

  47. […] Gravatar Has A Birthday – On October 11th 2007, Gravatar was acquired by Automattic. What was once a small idea has blossomed into a incredible resource. Gravatar enables users to upload an avatar that is then displayed on any blog or service that supports Gravatar. Think of it as Global Avatar. Here are some stats that will boggle your mind. There are 7,214 requests to the Gravatar service each second every day. That equals about 623 million requests daily. – https://blog.gravatar.com/2008/10/11/gravatar-one-year-later/ […]

  48. R. Moose says:

    During the past year I honestly didn’t think about Gravatar much other than to try to implement it here and there and sometimes hope that there was a plug in for whatever software I was running (such as vBulletin etc.)…

    Now you guys see the downtime, and the issues.. but to me it just works.. and that says a lot about the service.

    Thanks for awesomeness in 80x80px!

    Hoofy Birthday!

  49. bron says:

    Happy Belated Birthday! Thanks for providing this great service.

  50. Ann says:

    Any chance you’ll flesh out your privacy policy or at least put the contact e-mail back in?

  51. mskogly says:

    About time you ad something more than just an image! Good stuff!

    I also have a question: How many unique gravatars are there? How many people uses gravatar to upload their image?

  52. Pedro says:

    First of all, congratulations on a great job.

    I first heard of gravatar while using the pinax framework, for a personal project (soon, soon ;)). I must say I have been looking for something like that for a long long time. It sucks, having to define my profile picture every freaking where I sign up.

    I have one question though: Have you considered expanding the gravatar concept with some small info about the person (even if it’s just a free text field)?

    Thanks again,
    Pedro

  53. chadrew says:

    Gravatar is an ingenious service for bloggers. Here’s to many more successful years 🙂

  54. WhitDawg says:

    Ive just started seeing my Gravatars appearing around the web automatically. What an awesome idea. Loving your work.

  55. Mushon says:

    (didn’t find a contact email so thought this might be a good place to post this)

    Hi Gravatars,
    Great service indeed, I wonder though, can you distribute the sign-up / image uploading interface too? If I want to get my users to use Gravatar but don’t want to burden them with going to another site and all, wouldn’t it be great if you could probvide an API for presenting the signup interface on other pages? I would add it to my blog, and to other projects I’m making supporting Gravatar. I guess technically it can simply use an iFrame and be implemented fairly easily. User interaction wise, instead of showing the user his gravatar as a default image, it can have a call for action like sign up and then open in a lightbox of sorts and briefly walk them through the process.

    thanks for the great work you’re doing and I hope Gravatar will be further adopted on the web.

    cheers,

    Mushon

  56. Starbucks says:

    Your hard work is greatly appreciated. If it weren’t for ya’ll, we’d all be mystery men/women. A bazillion and one thanks!

  57. Congratulations and may you be the next Google, Myspace or Facebook. : D

  58. Love this service and it’s free. So thank you for supporting the internet and blogging communities.

  59. Chris says:

    What a nice service, too bad the name “gravatar” sounds so bad in French !

  60. […] the Gravatar blog there is some suggestion that the service will be rolling out more features in the near future to allow you to store more data inside Gravatar. I assume this would be similar to the sreg component of OpenId where you could optionally store […]

  61. […] not a social network; it’s not their core mission.  According to this blog post entitled Gravatar, One Year Later, their mission is simple: “Serving your […]

  62. Zim says:

    Thanks for all the improvements to this service — Much appreciated.

  63. michima says:

    too many server per request (try nginx+ncache) and no API (REST/JSON/XSLT) to upload so you can do better.

  64. […] Gravatar’s first anniversary: October 2008 […]

  65. how many users? did you got md5 collisions?

  66. terezacristinasa says:

    OI, não tem nimguém que fale a minha ligua..rsrs

  67. g3giani says:

    gravatar rulles!!!!!

  68. Lets how it works with my custom php!
    So if you have merged with wordpress that means that wordpress account is over your account? Will you sell 5M emails at some point? Could be nice pocket money! 😉

  69. Oh, and I forgot.
    This was a brilliant Idea!
    Congrats!

  70. This is really cool, thanks for all the good work. This ROCKS!

  71. savile row says:

    Wow! Great development. I love you guys and girls please keep up the good work.

  72. flravatar says:

    congrats!

  73. jen says:

    We’ve always loved gravatars. they make blogging a little more fun.

  74. Gravatar make my website live , now Gravatar three Year

  75. dAL says:

    where has the time gone

  76. dukio says:

    That is a very good development on gravatar, i used it myself :p

  77. Hi –

    I found Gravator two weeks ago and love it since 🙂

    Now I want to tell world about it!

    Gravator is brilliant and everyone need to know about it!

    Thanks, ~ Goga

an    joint