Drupal in the Enterprise, IBM and Norwegian Cruise Line

43
Drupal in the Enterprise IBM and Norwegian Cruise Line Rob Shea

description

Building an enterprise web site presents a unique set of challenges. In this session, we’ll review IBM’s development of the NCL.com site, focusing on challenges and solutions. We will discuss using open source in the enterprise, the impact of open source support contracts, integrating with enterprise systems such as itinerary data, pricing, reservations, shore excursions, geotargeting, and search, integrating with technologies such as Endeca and Flash, defining a complex content model in Drupal and migrating legacy CMS data, staging and deploying content, structuring and being efficient with large development teams (up to 30 team members), working with many content contributors, hosting within an enterprise infrastructure, caching and content delivery networks, code deployments, monitoring, load testing and integrating Agile practices.

Transcript of Drupal in the Enterprise, IBM and Norwegian Cruise Line

Page 1: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Drupal in the EnterpriseIBM and Norwegian Cruise LineRob Shea

Page 2: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 3: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 4: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 5: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 6: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 7: Drupal in the Enterprise, IBM and Norwegian Cruise Line

NCL.com

Page 8: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 9: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 10: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 11: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 12: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 13: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Software Licensing

Page 14: Drupal in the Enterprise, IBM and Norwegian Cruise Line

ProprietaryLicensing

Page 15: Drupal in the Enterprise, IBM and Norwegian Cruise Line

flickr.com/photos/79117087@N00/1716249985/

OSS Licensing

Page 16: Drupal in the Enterprise, IBM and Norwegian Cruise Line

DeveloperWhy aren’t the servers setup yet?

ArchitectWe are waiting for the licenses to be purchased.

DeveloperSo, we can’t install freely distributed open source software until we purchase a license?

ArchitectCorrect

Page 17: Drupal in the Enterprise, IBM and Norwegian Cruise Line

OSS Licensing in the Enterprise

What can you do?• Educate decision makers

– OSS vs. proprietary licensing• Work with legal, contracts• Define relationships with code

– Who owns the code?– Who owns custom code?

• Enterprise, development contractor, GPL?– Can contrib modules and patches be shared with the

community?

Page 18: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Support

Page 19: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Proprietary Support

Page 20: Drupal in the Enterprise, IBM and Norwegian Cruise Line

OSS Support

Page 21: Drupal in the Enterprise, IBM and Norwegian Cruise Line

OSS Support in the Enterprise

• Needs to be same as proprietary– Support contracts– Defined maintenance and escalated support– Required for enterprise adoption

• Support contract vendors are critical!– Not just development contractors

• Red Hat support made Linux viable in the Enterprise

Page 22: Drupal in the Enterprise, IBM and Norwegian Cruise Line

ContentModel

Page 23: Drupal in the Enterprise, IBM and Norwegian Cruise Line

ContentModel

$BusinessNeeds

Integration

LegacyData

TemplateNeeds

Page 24: Drupal in the Enterprise, IBM and Norwegian Cruise Line
Page 25: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Content model lessons learned

• Start Agile• Prototype• Documentation

– Painful to keep accurate

– If required, automatically generate from CCK

Page 26: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Integration

Page 27: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Drupal

Legacy CMS

Search Index

Pricing

Flash www

Integration· Custom Modules· Import/Export· XML/JSON· Node API/cron

Geotargeting

Page 28: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Content Deployment

Page 29: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Content deployment

deploy module services module

Staging

Integration

QA

Production

Page 30: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Large development teams

flickr.com/photos/33948692@N00/539413957/

Page 31: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Large team best practices

• Team leads– Identify and involve early– Prototype– Contrib vs. custom– Contrib module selection– Approve all modules & tools

• Communications• Don't modify core• Don’t modify contrib modules

Page 32: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Infrastructure

Page 33: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Infrastructure

CDN

Load Balancer

Drupal

Drupal

Drupal

MySQLFirewall Intrusion

Detection

Page 34: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Caching Strategy

Page 35: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Caching Strategy

• Cache, cache, cache• Design infrastructure to cache• Create development mindset for caching• Manage content scheduling expectations

Page 36: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Caching Strategy

• CDN or reverse proxy• Drupal• Memory• PHP• Views• Query

Page 37: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Code Deployment

Page 38: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Code Deployments• Subversion• Git - simplifies branching and merging• Capistrano

– Deploys code from git– Compass compile CSS– Environmental settings– Script other tasks– Unit tests– Patches applied at deploy time– Clear Drupal cache

Page 39: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Monitoring

Page 40: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Monitoring

• ganglia• nagios• email• sms

Page 41: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Agile Practices

Page 42: Drupal in the Enterprise, IBM and Norwegian Cruise Line

Agile Practices• 2 week

iterations/sprints– code– integration testing– user acceptance testing– deployment

• Rational Team Concert (jazz.net)– issues– estimating– iterations

• Cross functional• Self-organizing• Scrum• Velocity tracking• Pair programming• Open work space

Page 43: Drupal in the Enterprise, IBM and Norwegian Cruise Line

What did you think?Locate this session on the DCC website:http://chicago2011.drupal.org/sessions

Click the “Take the Survey” link.

Thanks!