django at the ajc
DESCRIPTION
A short talk given at PyATL on the use of Django at the AJC. Video available at http://blip.tv/file/2805912/TRANSCRIPT
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?