jared whitlock open source in the enterprise plone @ novell

Download Jared Whitlock   Open Source In The Enterprise    Plone @ Novell

If you can't read please download the document

Upload: wooda

Post on 19-May-2015

3.033 views

Category:

Business


2 download

DESCRIPTION

Novell has used various proprietary CMS solutions over time, including TeamSite and Vignette. None of these solutions met all of our needs, nor were they easy to modify. We began looking at different Open Source CMS options, and decided on Plone. This presentation will briefly discuss Novell's proprietary CMS history, why we chose Plone, what we are currently using and developing, and our plans for the future. It will also discuss our architecture for making Plone successful for enterprise websites.

TRANSCRIPT

  • 1. Open Source in the Enterprise Plone @ Novell
      • Jared Whitlock
    • Web Marketing Systems

2. Why do you care? 3. Presentation Outline

  • CMS History at Novell
    • Other CMS systems we have used
    • How we got to Plone
  • Challenges
    • CMS needs and how we met them
    • Exciting adventures along the way
  • Mistakes
  • Future Direction
  • Sage Advice

4. CMS History at Novell

  • Interwoven TeamSite
    • Whole page only in our version
    • Didn't care about us
    • Thermonuclear detonation (more on this later)
  • Vignette VCM
    • Expensive
    • Required Vignette consultants for EVERYTHING
    • Flexible...sort of
  • Never-ending coding death spiral

5. How we got to Plone

  • Neither Vignette nor TeamSite had all the features we needed
  • Novell is investing heavily in open source
  • Plone has great features
    • Easily expandable
    • Active community (lots of third-party products)
    • Localization, localization, localization
    • Archetypes are awesome
    • Scalable???We hoped so...
    • The price was right

6. Challenges 7. Challenge 1: Security How do we not get hacked? Warning: Eye Chart Ahead! 8. Plone Architecture Plone3 ZEO3 Plone2 ZEO2 Plone1 ZEO1 intranet/cms www.novell.com /* ZRS FileDeployment Read/Write Inside Firewall Read Only Outside Firewall Zope Client1 Zope Client1 Zope Client2 Apache File System ZODB Zope Client2 iChain iChain Zope Client1 Zope Client2 Apache File System ZODB File System ZODB L4 L4 L4 L4 9. Challenge 2: Localization

  • LinguaPlone for languages
    • Core of eight languages
    • Up to 15 languages on some content
    • Built an XLIFF exporter that connects to translation vendor
  • GeoPlone for geography-specific content
    • Similar in operation to LinguaPlone
    • Simple example: Novell.com home page phone number

10. Challenge 3: TeamSite Disaster

  • Can we do a mass-migration of static files to Plone?
  • How do we make common changes across files?
  • How do we push those files to the production servers?

Story time 11. TeamSite Disaster (cont.)

  • StaticFile content type
    • AttachmentField
    • FileSystemStorage with our own storage strategy
  • FileDeployment product
    • Queues files for deployment to targets set up in the tool
    • Transactional processing ensures that the files arrive when they should
    • Only deploys to Apache targets on publish
  • Search and Replace product
    • Uses either strings or regex
    • Returns a preview list with checkboxes to change only what you want

12. Meanwhile...back to Dynamic Content

  • Novell.com home page
    • Composite Page/Composite Pack
    • Generated static file for English, dynamic for non-English
  • Press Releases
  • Corporate Events Calendar
  • ListPages
    • Extends Smart Folder
    • Query Results based upon taxonomy field (patched to all content types)

13. Challenge 4: Handling the Load

  • Some stats for August
    • Home page: 537,377 page views
    • http://www.novell.com/linux : 1,357,157 page views
  • StaticFiles
    • Apache + iChain (Novell's reverse proxy cache)
  • Dynamic Pages
    • CacheFu + iChain

14. Plone Architecture Plone3 ZEO3 Plone2 ZEO2 Plone1 ZEO1 intranet/cms www.novell.com /* ZRS FileDeployment Read/Write Inside Firewall Read Only Outside Firewall Zope Client1 Zope Client1 Zope Client2 Apache File System ZODB Zope Client2 iChain iChain Zope Client1 Zope Client2 Apache File System ZODB File System ZODB L4 L4 L4 L4 15. Other Load Gotchas

  • Web Crawlers
  • Broken-link/orphan-file checkers
  • Plone skin exposed URLs
    • Don't have an elegant solution for this
    • Currently using isAnon variable in templates to hide things externally
    • Sounds like Plone 3.x technologies will help with this

16. Mistakes 17. Mistakes

  • ZODB Insecurities: we know and love SQL databases
  • Fear of Python: we know and love Java
  • Wouldn't SQL queries and a search engine be better than catalog queries?
  • How about replacing Plone's interface with a home-grown one?

Answer: no Answer: DEFINITELY no 18. Future Direction

  • Entire website in Plone
    • Many more dynamic pages
    • Content targeting based on locale and interest
  • Intranet on Plone
    • Currently under way
  • Moving to Plone 3.x

19. Sage Advice For Beginners

  • Read The Definitive Guide to Plone (outdated, but still very good) Read Martin's Book
  • Become familiar with every third-party product on Plone.org
  • Subscribe to the "Latest releases" RSS feed on Plone.org
  • Subscribe to the Plone users mailing list
  • Use Plone as it is intended
  • Use quick prototyping to win people over
  • Don't be a wuss (just learn Python)

20. Sage Advice For Beginners (cont.)

  • Hang out in the #plone chat room
  • Don't be afraid to add debug logging in Plone code
  • DeadlockDebugger and Clouseau are your friends

21. Questions? 22. Our Products: Do You Want Them?

  • BackgroundTasks- Run ZODB operations asynchronously
  • CharsetConversion- Character set conversion on file upload/download
  • FileDeployment- Deploy files to SFTP targets
  • GUITopic- Smart Folders whose views can be edited TTW by end users
  • GeoPlone- Like LinguaPlone, but for Geography
  • RDBSynch- Synchronize data from a RDB into Plone objects
  • SearchAndReplace- Regex capable multi-file search & replace
  • TxnFileOps- Transaction support for Filesystem and SFTP