Page 1
Building Bridges, Connecting Communities
Brian McMurray, Heather Johnson, John Robert Wilson, Molly Byrnes, Steven Merrill.
Government, Non-profit and EducationThursday, May 23rd 10:45am – 11:45am.
Weathering Storms: How Robin Hood Uses Drupal to Fight Poverty
Tuesday, May 28, 13
Page 2
https://www.robinhood.org/drupalcon#p2robinhood #drupalcon
@phase2
@RobinHoodNYC
Tuesday, May 28, 13
Page 3
Molly Byrnes@mabfire
John Robert Wilson@JohnRobertWilso
Steven Merrill@stevenmerrill
Brian McMurray@bmcmurray
Heather Johnson@johns582
@RobinHoodNYC
@phase2
Tuesday, May 28, 13
Page 4
•Finds and funds the most effective poverty-fighting organizations in NYC
•Gives 100% of all donated funds to grantees. All operating costs are paid by our Board
•Provides ongoing input and guidance to foster success
•Measures performance using a metrics-based approach
WE INVEST IN THE BEST
WHAT IS ROBIN HOOD?
Tuesday, May 28, 13
Page 5
ROBIN HOOD IS NEW YORK CITY’SLARGEST POVERTY FIGHTER.
Tuesday, May 28, 13
Page 6
ROBIN HOOD IS THE LARGEST PRIVATE FUNDER OF EMERGENCY FOOD IN NEW YORK CITY.
Tuesday, May 28, 13
Page 7
ROBIN HOOD IS THE LARGESTPRIVATE FUNDER OF JOB TRAININGPROGRAMS IN NEW YORK CITY.
Tuesday, May 28, 13
Page 8
EVERY YEAR, ROBIN HOOD-FUNDEDSCHOOLS PROVIDE A FIRST-CLASS EDUCATION TO 45,000 CHILDREN IN NEW YORK CITY.
Tuesday, May 28, 13
Page 9
ROBIN HOOD IS THE LARGEST PRIVATE FUNDER OF HOMELESS SHELTERS IN NEW YORK CITY.
Tuesday, May 28, 13
Page 10
ROBIN HOOD IS THE LARGEST PRIVATE FUNDER OF PROGRAMS FOR NEWBORNS IN NEW YORK CITY.
Tuesday, May 28, 13
Page 11
• Unleash the Editors
• Adapt and Change -- Fast
• Small Potatoes (Except When We Think Big)
Challenges
Tuesday, May 28, 13
Page 12
• 70-person interactive firm using open source since 2001
• Full-service firm providing digital strategy, design & development services
• Verticals include: Government & Public Policy, Publishing & Digital Media, Higher Education, and Non-Profits & NGOs
• Drupal community leaders - contributors/innovators/maintainers
• Headquartered in DC, with an office in NYC and a nationwide staff presence that includes Atlanta, Indy, Austin and San Francisco
About Phase2
Tuesday, May 28, 13
Page 13
CHALLENGE #1: UNLEASH THE EDITORS!
Tuesday, May 28, 13
Page 14
Create new content
Update Images & Assets
Modify styles & themes
YOU ARE HERE
• Site Header is flash
• No new "content types" - EVER!
• One theme to rule them all
• Styles fixed and immutable
• Single webserver with single DB
Challenge #1 Unleash the Editors!
Highly Limiting Environment
Tuesday, May 28, 13
Page 15
Challenge #1 Unleash the Editors!Source: http://groups.drupal.org/node/150794
Tuesday, May 28, 13
Page 16
Challenge #1 Unleash the Editors!Source: http://groups.drupal.org/node/150794
Tuesday, May 28, 13
Page 17
• Dynamic and high design elements
• Stretching the line of ‘what is content
in Drupal’
• Editor autonomy
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 18
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 19
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 20
Behind the Beans...
• Disconnect between blocks and nodes
• Two different Editorial Processes
• The Bean Module bridges that gap.
• (Block Entities Aren’t Nodes)
• http://drupal.org/project/bean
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 21
Challenge #1 Unleash the Editors!
Adds Editorial UI For Blocks
Tuesday, May 28, 13
Page 22
http://drupal.org/project/embeddable Challenge #1 Unleash the Editors!
Embeddables + WYSIWYG
Tuesday, May 28, 13
Page 23
Challenge #1 Unleash the Editors!
Template Field
http://drupal.org/project/template_field
Tuesday, May 28, 13
Page 24
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 25
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 26
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 27
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 28
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 29
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 30
Challenge #1 Unleash the Editors!
Tuesday, May 28, 13
Page 31
CHALLENGE #2: ADAPT AND CHANGE – FAST!
Tuesday, May 28, 13
Page 32
Challenge #2 Adapt & Change - Fast!
Sandy Relief
Tuesday, May 28, 13
Page 33
Even More Performance and Flexibility... Fast!
Challenge #2 Adapt & Change - Fast!
Sandy Relief
• Biggest private music event in history
• Prep for 450M uniques
• 3.5 weeks to prepare
• 3 distinct design iterations
• $50 million raised for relief
Tuesday, May 28, 13
Page 34
• Single Check Box
• Microsite within a site
• Editors using tools in unique ways
• Page creation workflow intact
Challenge #2 Adapt & Change - Fast!
Tuesday, May 28, 13
Page 35
Challenge #2 Adapt & Change - Fast!
Tuesday, May 28, 13
Page 36
CHALLENGE #3: SMALL POTATOES (EXCEPT WHEN WE THINK BIG)
Tuesday, May 28, 13
Page 37
• Physical Hardware for Legacy CMS
• Event-driven traffic spikes
• Scale to meet demand
• Security
Challenge #3 Small Potatoes
Hosting Challenges• CRM data import/export
• Phased rollout
• Drupal for content
• Donation portion on legacy .NET
Tuesday, May 28, 13
Page 38
Challenge #3 Small Potatoes
Tuesday, May 28, 13
Page 39
Challenge #3 Small Potatoes
Tuesday, May 28, 13
Page 40
Challenge #3 Small Potatoes
Hosting Challenges• RackConnect
• VM/Dedicated Interconnect
• Cloud load balancers
• Rackspace Cloud
• SSD block storage
• OpenStack API
• Managed server level
• Fanatical Support™
Tuesday, May 28, 13
Page 41
Challenge #3 Small Potatoes
An Uninteresting Month
Tuesday, May 28, 13
Page 42
Challenge #3 Small Potatoes
Tuesday, May 28, 13
Page 43
Challenge #3 Small Potatoes
SSL Termination
Tuesday, May 28, 13
Page 44
Challenge #3 Small Potatoes
Non-SSL Traffic
Tuesday, May 28, 13
Page 45
Challenge #3 Small Potatoes
SSL Traffic
Tuesday, May 28, 13
Page 46
Challenge #3 Small Potatoes
The Case for Proxies• Enable the Drupal / .NET split
• Varnish and nginx use little CPU
• Scale SSL termination separately
• Use ssl_session_cache
• nginx delivers to slow clients
Tuesday, May 28, 13
Page 47
Challenge #3 Small Potatoes
Administrative Assistant
Physical Load Balancer proxy1 / proxy2
*.aspx*.ashx*.axd/media//css//js//admin/
• Legacy CMS uses /admin
• There's a Module For That™
• http://drupal.org/project/rename_admin_paths
Tuesday, May 28, 13
Page 48
Tuesday, May 28, 13
Page 49
Challenge #3 Small Potatoes
100x Daily Traffic Increase
Tuesday, May 28, 13
Page 50
Challenge #3 Small Potatoes
Rewrites
nginx
Varnish
http://robinhood.org/121212/
http://121212concert.org/
Tuesday, May 28, 13
Page 51
Challenge #3 Small Potatoes
Anatomy of a Spike
Tuesday, May 28, 13
Page 52
Challenge #3 Small Potatoes
121212concert.org
DFW - Dallas Datacenter
O
ORD - Chicago Datacenter
app2app1 app3 app2app1 app3
Cloud LB, port 80 Cloud LB, port 80
Akamai GTM DNS
Akamai Production DNS CNAME
Tuesday, May 28, 13
Page 53
THANK YOUQuestions?
Tuesday, May 28, 13
Page 54
Building Bridges, Connecting Communities
Evaluate this session at: http://portland2013.drupal.org/session/weathering-storms-how-robin-hood-uses-drupal-fight-poverty
Thank you!
What did you think?
Tuesday, May 28, 13