Evernoteのシステム概要

ふと、Evernoteは沢山のユーザーと沢山のデータを抱えているはずでバックエンドは大丈夫なのかなあと気になった。検索してみたらA Digest of Evernote Architectureという記事が見つかった。900万のユーザーがいて、まあそれなりなんだけどノート本体は90台ちょい*1で持ってるということだった。まあアプリ的には素直にユーザー分割しておけばよくてそれはmixiより簡単だよねと思うくらいで、図をみたら大体わかるし特筆すべき点もない…と思ったら!

We use BGP to direct traffic through fully independent network feeds from our primary (NTT) and secondary (Level 3) providers. This is filtered through Vyatta on the way to the new A10 load balancers that we deployed in January when we hit the limit of SSL performance for our old balancers.

えええーつまり、NTTのASにBGPで直結してトラフィックをevernote.comのサイトに流して、VyattaとA10のロードバランサでフロントエンドのWebサーバーに流していると。SDNってそういう使い方もあったのねとびっくりするばかり。で、ちょっと調べてみたらAS53635がちゃーんと存在していてどうやらホントらしいという…で、tracerouteしてみると

9 ae-2.r07.snjsca04.us.bb.gin.ntt.net (129.250.5.57) 132.837 ms 137.744 ms 139.679 ms
10 ge-0-7-0-27.r07.snjsca04.us.ce.gin.ntt.net (128.241.219.42) 137.410 ms 143.038 ms 137.336 ms
11 fw02-b0.evernote.com (204.154.94.5) 148.227 ms 146.089 ms 145.183 ms
12 * * *
13 * * *

ああフロントエンドにたどり着いてから帰ってこなくなってしまった。pingしてもなしのツブテ。そう思ってwhoisかましてみたら

NetRange: 204.154.94.0 - 204.154.95.255
CIDR: 204.154.94.0/23
OriginAS: AS53635

まあなんかいろいろ出てきた。/23で確保しているのでフロントエンドに500台程度はロードバランサ置けるっていうか、IPアドレスはそれだけあるけどvyattaでどう流しているかは謎。きっと謹製のコントローラがあるに違いない。CDNもなかなか効かないアプリだし、どうやって上りトラフィック節約してるのかな…NTTさんが安くしてたりするのかなと思ったけど動画ほどトラフィックも大きくないよな。

*1:2011年