Drupal in the Enterprise, IBM and Norwegian Cruise Line

Post on 14-Jun-2015

1.864 views 0 download

Tags:

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

Drupal in the EnterpriseIBM and Norwegian Cruise LineRob Shea

NCL.com

Software Licensing

ProprietaryLicensing

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

OSS Licensing

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

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?

Support

Proprietary Support

OSS Support

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

ContentModel

ContentModel

$BusinessNeeds

Integration

LegacyData

TemplateNeeds

Content model lessons learned

• Start Agile• Prototype• Documentation

– Painful to keep accurate

– If required, automatically generate from CCK

Integration

Drupal

Legacy CMS

Search Index

Pricing

Flash www

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

Geotargeting

Content Deployment

Content deployment

deploy module services module

Staging

Integration

QA

Production

Large development teams

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

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

Infrastructure

Infrastructure

CDN

Load Balancer

Drupal

Drupal

Drupal

MySQLFirewall Intrusion

Detection

Caching Strategy

Caching Strategy

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

Caching Strategy

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

Code Deployment

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

Monitoring

Monitoring

• ganglia• nagios• email• sms

Agile Practices

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

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

Click the “Take the Survey” link.

Thanks!