SlideShare a Scribd company logo
Open Source in the Enterprise Plone @ Novell Jared Whitlock Web Marketing Systems
Why do you care?
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
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
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
Challenges
Challenge 1: Security How do we not get hacked? Warning: Eye Chart Ahead!
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
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
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
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
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)
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
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
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
Mistakes
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
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
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)
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
Questions?
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

More Related Content

What's hot (19)

PPTX
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
David Wesst
 
PPT
Site Manager rocks!
Gareth Saunders
 
PDF
Introduce Bootstrap 3 to Develop Responsive Design Application
eXo Platform
 
PDF
The Server Side of Responsive Web Design
Dave Olsen
 
PDF
Everyones invited! Meet accesibility requirements with ColdFusion
ColdFusionConference
 
PPTX
Trello - University of St Andrews web team
Gareth Saunders
 
PPTX
Advancing JavaScript without breaking the web - MunichJS
Christian Heilmann
 
PDF
Brad frost: Atomic design (Webdagene 2014)
webdagene
 
PDF
Creating Living Style Guides to Improve Performance
Nicole Sullivan
 
PPT
Using a CSS Framework
Gareth Saunders
 
PDF
Extended slow parts
Francesco Fullone
 
PDF
React Storybook, Atomic Design, and ITCSS
Trevor Pierce
 
PDF
Learning Joomla! in a weekend (for developers)
Valentin Despa
 
PDF
Innovating the other web - #wrocsharp keynote
Christian Heilmann
 
PDF
Responsive Design Workflow: Mobilism 2012
Stephen Hay
 
PPTX
An introduction to Emulsify
valuebound
 
PPTX
Building a Moodle theme with bootstrap
Bas Brands
 
PDF
Atomic Design con Pattern Lab
Mauricio Angulo Sillas
 
PPTX
HTML5 and Joomla! 2.5 Template
Marvelic Engine Co., Ltd.
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
David Wesst
 
Site Manager rocks!
Gareth Saunders
 
Introduce Bootstrap 3 to Develop Responsive Design Application
eXo Platform
 
The Server Side of Responsive Web Design
Dave Olsen
 
Everyones invited! Meet accesibility requirements with ColdFusion
ColdFusionConference
 
Trello - University of St Andrews web team
Gareth Saunders
 
Advancing JavaScript without breaking the web - MunichJS
Christian Heilmann
 
Brad frost: Atomic design (Webdagene 2014)
webdagene
 
Creating Living Style Guides to Improve Performance
Nicole Sullivan
 
Using a CSS Framework
Gareth Saunders
 
Extended slow parts
Francesco Fullone
 
React Storybook, Atomic Design, and ITCSS
Trevor Pierce
 
Learning Joomla! in a weekend (for developers)
Valentin Despa
 
Innovating the other web - #wrocsharp keynote
Christian Heilmann
 
Responsive Design Workflow: Mobilism 2012
Stephen Hay
 
An introduction to Emulsify
valuebound
 
Building a Moodle theme with bootstrap
Bas Brands
 
Atomic Design con Pattern Lab
Mauricio Angulo Sillas
 
HTML5 and Joomla! 2.5 Template
Marvelic Engine Co., Ltd.
 

Similar to Jared Whitlock Open Source In The Enterprise Plone @ Novell (20)

PDF
Building and deploying LLM applications with Apache Airflow
Kaxil Naik
 
PDF
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
PPTX
Building A Platform From Open Source At Yahoo
Dustin Whittle
 
PPTX
#SPSToronto How to do #DevOps with #SPFx and why it matters
Vincent Biret
 
ODP
A winning combination: Plone as CMS and your favorite Python web framework as...
Carlos de la Guardia
 
PPTX
NET Event - Migrating WinForm
Raffaele Garofalo
 
PPSX
Plone in Business - Richard Shea
knappt
 
PDF
Django in enterprise world
Simone Federici
 
PDF
Python Web Framework – A Detailed List of Web Frameworks in Python
abhishekdf3
 
PPT
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Frank La Vigne
 
PDF
Improving The Performance of Your Web App
Joe Stump
 
PPTX
Content delivery Plone Symposium East 2010
alan runyan
 
PPTX
Whats newinsl5
nkaluva
 
ODP
Sai devops - the art of being specializing generalist
Odd-e
 
PDF
Welsh, Ben: The framework fix: how to build better archives by helping news n...
Reynolds Journalism Institute (RJI)
 
PPTX
Building appsinsilverlight4 part_1
Dennis Perlot
 
PDF
How to Build a Pure Evil Magento Module
AOE
 
PPT
Succeding with the Apache SOA stack
Johan Edstrom
 
PPTX
Intro to Perfect - LA presentation
Tim Taplin
 
Building and deploying LLM applications with Apache Airflow
Kaxil Naik
 
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
Building A Platform From Open Source At Yahoo
Dustin Whittle
 
#SPSToronto How to do #DevOps with #SPFx and why it matters
Vincent Biret
 
A winning combination: Plone as CMS and your favorite Python web framework as...
Carlos de la Guardia
 
NET Event - Migrating WinForm
Raffaele Garofalo
 
Plone in Business - Richard Shea
knappt
 
Django in enterprise world
Simone Federici
 
Python Web Framework – A Detailed List of Web Frameworks in Python
abhishekdf3
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Frank La Vigne
 
Improving The Performance of Your Web App
Joe Stump
 
Content delivery Plone Symposium East 2010
alan runyan
 
Whats newinsl5
nkaluva
 
Sai devops - the art of being specializing generalist
Odd-e
 
Welsh, Ben: The framework fix: how to build better archives by helping news n...
Reynolds Journalism Institute (RJI)
 
Building appsinsilverlight4 part_1
Dennis Perlot
 
How to Build a Pure Evil Magento Module
AOE
 
Succeding with the Apache SOA stack
Johan Edstrom
 
Intro to Perfect - LA presentation
Tim Taplin
 
Ad

More from Vincenzo Barone (20)

PDF
Sally Kleinfeldt - Plone Application Development Patterns
Vincenzo Barone
 
PPT
Where's the source, Luke? : How to find and debug the code behind Plone
Vincenzo Barone
 
PDF
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
Vincenzo Barone
 
PDF
How to market Plone the Web2.0 way
Vincenzo Barone
 
PDF
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Vincenzo Barone
 
PDF
Wichert Akkerman Plone Deployment Practices The Plone.Org Setup
Vincenzo Barone
 
PDF
Philipp Von Weitershausen Untested Code Is Broken Code
Vincenzo Barone
 
PDF
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
Vincenzo Barone
 
PDF
Rocky Burt Subtyping Unleashed
Vincenzo Barone
 
PDF
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Vincenzo Barone
 
PDF
Wageindicator Foundation: a Case Study
Vincenzo Barone
 
PDF
Tom Lazar Using Zope3 Views And Viewlets For Plone 3.0 Product Development
Vincenzo Barone
 
PDF
Xavier Heymans Plone Gov Plone In The Public Sector. Panel Presenting The...
Vincenzo Barone
 
PDF
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Vincenzo Barone
 
PDF
Wichert Akkerman - Plone.Org Infrastructure
Vincenzo Barone
 
PDF
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Vincenzo Barone
 
PDF
Denis Mishunov Making Plone Theme 10 Most Wanted Tips
Vincenzo Barone
 
PPT
Duncan Booth Kupu, Past Present And Future
Vincenzo Barone
 
PDF
Jeroen Vloothuis Bend Kss To Your Will
Vincenzo Barone
 
PDF
Paul Everitt Community And Foundation Plones Past, Present, Future
Vincenzo Barone
 
Sally Kleinfeldt - Plone Application Development Patterns
Vincenzo Barone
 
Where's the source, Luke? : How to find and debug the code behind Plone
Vincenzo Barone
 
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
Vincenzo Barone
 
How to market Plone the Web2.0 way
Vincenzo Barone
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Vincenzo Barone
 
Wichert Akkerman Plone Deployment Practices The Plone.Org Setup
Vincenzo Barone
 
Philipp Von Weitershausen Untested Code Is Broken Code
Vincenzo Barone
 
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
Vincenzo Barone
 
Rocky Burt Subtyping Unleashed
Vincenzo Barone
 
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Vincenzo Barone
 
Wageindicator Foundation: a Case Study
Vincenzo Barone
 
Tom Lazar Using Zope3 Views And Viewlets For Plone 3.0 Product Development
Vincenzo Barone
 
Xavier Heymans Plone Gov Plone In The Public Sector. Panel Presenting The...
Vincenzo Barone
 
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Vincenzo Barone
 
Wichert Akkerman - Plone.Org Infrastructure
Vincenzo Barone
 
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Vincenzo Barone
 
Denis Mishunov Making Plone Theme 10 Most Wanted Tips
Vincenzo Barone
 
Duncan Booth Kupu, Past Present And Future
Vincenzo Barone
 
Jeroen Vloothuis Bend Kss To Your Will
Vincenzo Barone
 
Paul Everitt Community And Foundation Plones Past, Present, Future
Vincenzo Barone
 
Ad

Recently uploaded (20)

PDF
Infrastructure and geopolitics.AM.ENG.docx.pdf
Andrea Mennillo
 
PDF
Agentic AI: The Autonomous Upgrade Your AI Stack Didn’t Know It Needed
Amnic
 
PPTX
Appreciations - July 25.pptxffsdjjjjjjjjjjjj
anushavnayak
 
PDF
SMLE slides.pdf pediatric medical history
hananmahjoob18
 
PDF
NewBase 24 July 2025 Energy News issue - 1805 by Khaled Al Awadi._compressed...
Khaled Al Awadi
 
PDF
Equinox Gold - Corporate Presentation.pdf
Equinox Gold Corp.
 
PPTX
Integrative Negotiation: Expanding the Pie
badranomar1990
 
PDF
GenAI for Risk Management: Refresher for the Boards and Executives
Alexei Sidorenko, CRMP
 
PPTX
Certificate of Incorporation, Prospectus, Certificate of Commencement of Busi...
Keerthana Chinnathambi
 
PPTX
Andrew C. Belton, MBA Experience Portfolio July 2025
Andrew C. Belton
 
PPTX
Struggling to Land a Social Media Marketing Job Here’s How to Navigate the In...
RahulSharma280537
 
DOCX
India's Emerging Global Leadership in Sustainable Energy Production The Rise ...
Insolation Energy
 
PPTX
The Ultimate Guide to Customer Journey Mapping
RUPAL AGARWAL
 
PPTX
Appreciations - July 25.pptxsdsdsddddddsssss
anushavnayak
 
PPTX
Chapter 3 Distributive Negotiation: Claiming Value
badranomar1990
 
PDF
Driving the Energy Transition India’s Top Renewable Energy Solution Providers...
Essar Group
 
PPTX
The Rise of Artificial Intelligence pptx
divyamarya13
 
DOCX
Andrew C. Belton, MBA Resume - July 2025
Andrew C. Belton
 
PPTX
PUBLIC RELATIONS N6 slides (4).pptx poin
chernae08
 
PPTX
Appreciations - July 25.pptxdddddddddddss
anushavnayak
 
Infrastructure and geopolitics.AM.ENG.docx.pdf
Andrea Mennillo
 
Agentic AI: The Autonomous Upgrade Your AI Stack Didn’t Know It Needed
Amnic
 
Appreciations - July 25.pptxffsdjjjjjjjjjjjj
anushavnayak
 
SMLE slides.pdf pediatric medical history
hananmahjoob18
 
NewBase 24 July 2025 Energy News issue - 1805 by Khaled Al Awadi._compressed...
Khaled Al Awadi
 
Equinox Gold - Corporate Presentation.pdf
Equinox Gold Corp.
 
Integrative Negotiation: Expanding the Pie
badranomar1990
 
GenAI for Risk Management: Refresher for the Boards and Executives
Alexei Sidorenko, CRMP
 
Certificate of Incorporation, Prospectus, Certificate of Commencement of Busi...
Keerthana Chinnathambi
 
Andrew C. Belton, MBA Experience Portfolio July 2025
Andrew C. Belton
 
Struggling to Land a Social Media Marketing Job Here’s How to Navigate the In...
RahulSharma280537
 
India's Emerging Global Leadership in Sustainable Energy Production The Rise ...
Insolation Energy
 
The Ultimate Guide to Customer Journey Mapping
RUPAL AGARWAL
 
Appreciations - July 25.pptxsdsdsddddddsssss
anushavnayak
 
Chapter 3 Distributive Negotiation: Claiming Value
badranomar1990
 
Driving the Energy Transition India’s Top Renewable Energy Solution Providers...
Essar Group
 
The Rise of Artificial Intelligence pptx
divyamarya13
 
Andrew C. Belton, MBA Resume - July 2025
Andrew C. Belton
 
PUBLIC RELATIONS N6 slides (4).pptx poin
chernae08
 
Appreciations - July 25.pptxdddddddddddss
anushavnayak
 

Jared Whitlock Open Source In The Enterprise Plone @ Novell

  • 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
  • 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
  • 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
  • 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