Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

54
Building Bridges, Connecting Communities Brian McMurray, Heather Johnson, John Robert Wilson, Molly Byrnes, Steven Merrill. Government, Non-profit and Education Thursday, May 23 rd 10:45am – 11:45am. Weathering Storms: How Robin Hood Uses Drupal to Fight Poverty Tuesday, May 28, 13

description

Phase2 and Robin Hood Foundation present at DrupalCon Portland about how Robin Hood foundation was able to leverage Drupal to help fight poverty in NYC.

Transcript of Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Page 1: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

https://www.robinhood.org/drupalcon#p2robinhood #drupalcon

@phase2

@RobinHoodNYC

Tuesday, May 28, 13

Page 3: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Molly Byrnes@mabfire

John Robert Wilson@JohnRobertWilso

Steven Merrill@stevenmerrill

Brian McMurray@bmcmurray

Heather Johnson@johns582

@RobinHoodNYC

@phase2

Tuesday, May 28, 13

Page 4: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

•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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

ROBIN HOOD IS NEW YORK CITY’SLARGEST POVERTY FIGHTER.

Tuesday, May 28, 13

Page 6: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

ROBIN HOOD IS THE LARGEST PRIVATE FUNDER OF EMERGENCY FOOD IN NEW YORK CITY.

Tuesday, May 28, 13

Page 7: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

ROBIN HOOD IS THE LARGESTPRIVATE FUNDER OF JOB TRAININGPROGRAMS IN NEW YORK CITY.

Tuesday, May 28, 13

Page 8: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

EVERY YEAR, ROBIN HOOD-FUNDEDSCHOOLS PROVIDE A FIRST-CLASS EDUCATION TO 45,000 CHILDREN IN NEW YORK CITY.

Tuesday, May 28, 13

Page 9: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

ROBIN HOOD IS THE LARGEST PRIVATE FUNDER OF HOMELESS SHELTERS IN NEW YORK CITY.

Tuesday, May 28, 13

Page 10: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

ROBIN HOOD IS THE LARGEST PRIVATE FUNDER OF PROGRAMS FOR NEWBORNS IN NEW YORK CITY.

Tuesday, May 28, 13

Page 11: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

• Unleash the Editors

• Adapt and Change -- Fast

• Small Potatoes (Except When We Think Big)

Challenges

Tuesday, May 28, 13

Page 12: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

• 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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

CHALLENGE #1: UNLEASH THE EDITORS!

Tuesday, May 28, 13

Page 14: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!Source: http://groups.drupal.org/node/150794

Tuesday, May 28, 13

Page 16: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!Source: http://groups.drupal.org/node/150794

Tuesday, May 28, 13

Page 17: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

• 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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 19: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 20: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Adds Editorial UI For Blocks

Tuesday, May 28, 13

Page 22: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

http://drupal.org/project/embeddable Challenge #1 Unleash the Editors!

Embeddables + WYSIWYG

Tuesday, May 28, 13

Page 23: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Template Field

http://drupal.org/project/template_field

Tuesday, May 28, 13

Page 24: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 25: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 26: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 27: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 28: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 29: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 30: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #1 Unleash the Editors!

Tuesday, May 28, 13

Page 31: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

CHALLENGE #2: ADAPT AND CHANGE – FAST!

Tuesday, May 28, 13

Page 32: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #2 Adapt & Change - Fast!

Sandy Relief

Tuesday, May 28, 13

Page 33: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

• 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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #2 Adapt & Change - Fast!

Tuesday, May 28, 13

Page 36: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

CHALLENGE #3: SMALL POTATOES (EXCEPT WHEN WE THINK BIG)

Tuesday, May 28, 13

Page 37: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

• 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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

Tuesday, May 28, 13

Page 39: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

Tuesday, May 28, 13

Page 40: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

An Uninteresting Month

Tuesday, May 28, 13

Page 42: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

Tuesday, May 28, 13

Page 43: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

SSL Termination

Tuesday, May 28, 13

Page 44: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

Non-SSL Traffic

Tuesday, May 28, 13

Page 45: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

SSL Traffic

Tuesday, May 28, 13

Page 46: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Tuesday, May 28, 13

Page 49: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

100x Daily Traffic Increase

Tuesday, May 28, 13

Page 50: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

Rewrites

nginx

Varnish

http://robinhood.org/121212/

http://121212concert.org/

Tuesday, May 28, 13

Page 51: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

Challenge #3 Small Potatoes

Anatomy of a Spike

Tuesday, May 28, 13

Page 52: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

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: Weathering The Storm- How Robin Hood Foundation Uses Drupal to Fight Poverty in NYC

THANK YOUQuestions?

Tuesday, May 28, 13