Django At The AJC

Preview:

DESCRIPTION

A short talk given at PyATL on the use of Django at the AJC. Video available at http://blip.tv/file/2805912/

Citation preview

Django at the AJC

Evil for Awesome™

Who am I?

Zellyn HunterSr. Web Developer

“zellyn” on almost every internet site (I forgot my aol password, so I’m

zellynhunter there)

Make you totally badass!

Make you totally badass!

…like a fluffy pink pony…

Make you totally badass!

Make you totally badass:

- Add our architecture to your repertoire so you can serve one billion pageviews a year!†

Make you totally badass:

- Add our architecture to your repertoire so you can serve one billion pageviews a year!†

- See what we’ve done with Django, so you know what’s possible

Make you totally badass:

- Add our architecture to your repertoire so you can serve one billion pageviews a year!†

- See what we’ve done with Django, so you know what’s possible- Learn from our struggles and know the tricky areas ahead of time

Who are we?

Who are we?

The “Online Development Group”

Who are we?

The “Online Development Group”

- 1 manager, 4 developers- shared: 1 DBA, 1

sysadmin, 1 tester- occasional: 1 VM ninja

What do we do?

What do we do?

Everything except:

What do we do?

Everything except:

main CMS - big, corporate, Java

What do we do?

Everything except:

main CMS - big, corporate, Java

“classifieds” - ruby on rails

(we’ll discuss this later)

SearchWeather

Buzz (interesting news)

Slider

TwitterVideos

Most viewedstories/galleries

Feedback

Stocks

What do we do?

Interactive applications.

What do we do?

Interactive applications.

Last-minute,

What do we do?

Interactive applications.

Last-minute, breaking-news,

What do we do?

Interactive applications.

Last-minute, breaking-news, quick-turnaround,

What do we do?

Interactive applications.

Last-minute, breaking-news, quick-turnaround, crazy deadlines,

What do we do?

Interactive applications.

Last-minute, breaking-news, quick-turnaround, crazy deadlines,

NO!

What do we do?

Interactive applications.

Last-minute, breaking-news, quick-turnaround, crazy deadlines,

NO!

Reusable

^

What do we do?

Interactive applications:Periodic use:

- Election Results- Peachtree Road Race

Results- Predict-the-outcome

(Oscars)- Executive Pay- Victims database

What do we do?

Interactive applications:Data-only Updates:

- Home sales report- Georgia Baby Names

What do we do?

Interactive applications:Tools for the newsroom:

- Maps - Slider

- Contests - Buzz

- Alerts - Promotions in sidebar

- Quizzes - Twitter

- Hot-or-not - “CMS Lite”

What do we do?

Interactive applications:Constant use:

- Galleries- Vent- Recipes

What do we do?

Interactive applications:Third-party content:

- Destinations (Frommers)- Topic Pages

What do we do?

Interactive applications:Lots of Plumbing:

- Caching - Search- Broken links log - Stocks- User feedback - Weather- Auto-linking - User

registration- Support tickets - Work

queues- Feeds (transforming, caching)

What do we do?

Interactive applications:Blogs:

- Wordpress MU

What do we do?

Interactive applications:Blogs:

- Wordpress MU (sorry)

What do we do?

All told, we serve ¼ to ⅓ of site traffic.

What people outside our group think we do:

What people outside our group think we do:

Galleries

What people outside our group think we do:

Galleries(60% of our group’s traffic)

What the Rails folks do

“Classifieds Development Group”

- AJC Exchange- Homefinder

(neighborhood profiles, school guide, periodically updated home sales data)- Vacation rentals- User Registration backend (Merb)

Architecture

- Three python servers: Apache/WSGI/Django- Two static media servers- Two MySQL servers (one read-only,

replicated)- Two NFS cluster servers- Two memcached servers- Two rails servers- Three PHP servers- Akamai

We Brad Fitzpatrick

We’re currently running:- Memcached- Perlbal- Gearman- MogileFS

Not yet:- DJabberd

Tools

- IRC- Basecamp- Buildbot- Capistrano- Subversion (git? hg?)

Troubles

Authentication:Builtin django.contrib.auth has fixed ideas: - username-based - sharing email addresses is possibleThe Ruby guys beat us to the punch: - external system of record for user registration

Wins

• Built-in admin views for everything• RSS all over the place• Caching, caching, caching

Questions?

Questions?