

Making Posterous faster with Varnish page caching - rantfoil
http://technology.posterous.com/making-posterous-faster-with-varnish

======
nostromo
Pushing dynamic content via AJAX and caching the much larger part of the page
that isn't dynamic is a great tip -- much better than caching fragments. I
will now steal it and appear smart by telling others. :-P

~~~
patio11
Make sure you run your specific implementation past an SEO who knows what
they're doing -- and on this issue, most don't. (The sweet spot is probably
caching the whole page for non logged-in users and regenerating that
"relatively infrequently", and doing the AJAX trick for your logged-in users
only.)

------
trevorturk
Varnish is most definitely a huge win. It can be somewhat of a pain to install
if you're not using Chef or something, though. Here's some helpful info I
compiled that might come in handy for first-timers:

Installing Varnish with nginx, Passenger, and Monit on Ubuntu 8.10 intrepid:

[http://trevorturk.com/2009/10/22/installing-varnish-with-
ngi...](http://trevorturk.com/2009/10/22/installing-varnish-with-nginx-
passenger-and-monit-on-ubuntu-8-10-intrepid/)

It's a bit out of date now, but basically still applicable.

Also, here are some packages for Sprinkle, which is an alternative to Chef
that I like:

<http://github.com/trevorturk/sprinkle-packages>

Varnish is not installed by the default example, but look in
packages/varnish.rb and you'll be able to sort it out.

Go go gadget Varnish!

------
seregine
Nice choice. This post about Varnish architecture is one of my favorites:
<http://www.varnish-cache.org/trac/wiki/ArchitectNotes>

~~~
mahmud
"The Varnish Guy", as many call him here and on reddit is none other than
Poul-Henning Kamp, Yeah, _that_ phk from FreeBSD. So, yeah, you're gonna get
some top-notch systems engineering from him.

------
amix
Slightly off-topic: Varnish has some really beautiful C code. It's so good you
can get the source code in book form. Check out:
<http://ing.dk/modules/xphoto/cache/40/31740_460_400.jpg>
<http://phk.freebsd.dk/misc/_book2.pdf> ;)

~~~
jacquesm
It's a textbook example of how to code up a unix daemon that does a
spectacular amount of work.

------
mrkurt
I really love Varnish, but hate VCL. I wish they'd have embedded Lua or
something. There's all sorts of cool stuff you could do with better scripting.

~~~
papaf
I think the unique point about VCL is that it compiles down to machine code.
Varnish makes a big thing about doing things the fastest way possible.

~~~
apgwoz
I didn't realize this for some reason, makes it a bit more obvious as to why
you can actually embed C. /slaps forehead

------
jacquesm
Happy to see varnish get so much airtime recently, it's a great piece of
software and I would not be able to run my service at the current budget
without it. If you are not a varnish user yet and you have a high volume site,
go check it out, and save yourself some big $ by better utilizing the servers
that you already have.

------
blantonl
Varnish is very attractive, and it is something that my organization is
beginning to look at.

But, this appears to be a new blog from Posterous, with this submission being
it's first post, and it comes to HN just after Posterous had some, well
potentially negative press about their traffic.

Am I off base in asserting that this blog post is a marketing play? And if
this isn't their first blog post, please let me know of my grave error (and
down-vote me accordingly)

Edit and follow-up: This blog has been around for a while, so I guess I'll sit
back and relax. However, I'll still stand behind the marketing assertion.

~~~
natrius
Corporate blogs exist solely for marketing purposes. There's nothing wrong
with that.

------
herf
Their description of Lacquer sounds problematic to me.

The usual failure case for this is that a cache node goes down for awhile,
misses some invalidation messages, then comes up and starts serving (stale)
traffic again.

This case isn't so bad if you keep your TTL low, and have cheap page
revalidation.

~~~
rantfoil
Ideally invalidation happens on an offline queue with retry support. Server
down? Reschedule job and retry later.

We use Delayed Job at Posterous for things like this. Resque works too.

------
js4all
Interesting, we also added a Varnish based cache layer and also got a dramatic
performance boost. The connections to the backend dropped to 50%, taking off a
lot load.

I am currently going through your VCL to take some ideas for improvement.
Thanks for posting that.

------
yish
Any opinions on pros/cons of using Varnish vs a CDN (Akamai/Limelight)

------
datums
Getting -> 502 Bad Gateway

