drupal in the enterprise, ibm and norwegian cruise line
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
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!