django at the ajc

45
Django at the AJC Evil for Awesome

Upload: zellyn-hunter

Post on 06-May-2015

1.768 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Django At The AJC

Django at the AJC

Evil for Awesome™

Page 2: Django At The AJC

Who am I?

Zellyn HunterSr. Web Developer

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

zellynhunter there)

Page 3: Django At The AJC

Make you totally badass!

Page 4: Django At The AJC

Make you totally badass!

…like a fluffy pink pony…

Page 5: Django At The AJC

Make you totally badass!

Page 6: Django At The AJC

Make you totally badass:

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

Page 7: Django At The AJC

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

Page 8: Django At The AJC

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

Page 9: Django At The AJC

Who are we?

Page 10: Django At The AJC

Who are we?

The “Online Development Group”

Page 11: Django At The AJC

Who are we?

The “Online Development Group”

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

sysadmin, 1 tester- occasional: 1 VM ninja

Page 12: Django At The AJC

What do we do?

Page 13: Django At The AJC

What do we do?

Everything except:

Page 14: Django At The AJC

What do we do?

Everything except:

main CMS - big, corporate, Java

Page 15: Django At The AJC

What do we do?

Everything except:

main CMS - big, corporate, Java

“classifieds” - ruby on rails

(we’ll discuss this later)

Page 16: Django At The AJC
Page 17: Django At The AJC

SearchWeather

Buzz (interesting news)

Slider

TwitterVideos

Most viewedstories/galleries

Feedback

Stocks

Page 18: Django At The AJC

What do we do?

Interactive applications.

Page 19: Django At The AJC

What do we do?

Interactive applications.

Last-minute,

Page 20: Django At The AJC

What do we do?

Interactive applications.

Last-minute, breaking-news,

Page 21: Django At The AJC

What do we do?

Interactive applications.

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

Page 22: Django At The AJC

What do we do?

Interactive applications.

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

Page 23: Django At The AJC

What do we do?

Interactive applications.

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

NO!

Page 24: Django At The AJC

What do we do?

Interactive applications.

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

NO!

Reusable

^

Page 25: Django At The AJC

What do we do?

Interactive applications:Periodic use:

- Election Results- Peachtree Road Race

Results- Predict-the-outcome

(Oscars)- Executive Pay- Victims database

Page 26: Django At The AJC

What do we do?

Interactive applications:Data-only Updates:

- Home sales report- Georgia Baby Names

Page 27: Django At The AJC

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”

Page 28: Django At The AJC

What do we do?

Interactive applications:Constant use:

- Galleries- Vent- Recipes

Page 29: Django At The AJC

What do we do?

Interactive applications:Third-party content:

- Destinations (Frommers)- Topic Pages

Page 30: Django At The AJC

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)

Page 31: Django At The AJC

What do we do?

Interactive applications:Blogs:

- Wordpress MU

Page 32: Django At The AJC

What do we do?

Interactive applications:Blogs:

- Wordpress MU (sorry)

Page 33: Django At The AJC

What do we do?

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

Page 34: Django At The AJC

What people outside our group think we do:

Page 35: Django At The AJC

What people outside our group think we do:

Galleries

Page 36: Django At The AJC

What people outside our group think we do:

Galleries(60% of our group’s traffic)

Page 37: Django At The AJC

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)

Page 38: Django At The AJC

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

Page 39: Django At The AJC

We Brad Fitzpatrick

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

Not yet:- DJabberd

Page 40: Django At The AJC

Tools

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

Page 41: Django At The AJC

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

Page 42: Django At The AJC

Wins

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

Page 43: Django At The AJC

Questions?

Page 44: Django At The AJC

Questions?

Page 45: Django At The AJC