Plone Konferenz 2012

63
agile.open.connected Scalable Plone from town-wise sites to region-wise portals and Intranets Massimo Azzolini

description

This talk will illustrate an use case showing how its flexibility and modularity allowed us to provide Plone solutions both for the little communes’ websites (supporting small communities of users) and for highly available, load-balanced, complex multi-site, multi-skin portals, that may include federated infrastructures of users. Furthermore, on the Intranet side, we could deliver a Plone Intranet serving several thousands of employees with SSO, a strong social flavour, groupware features well matching the specific needs of the diverse organizational units, and all the benefits and add-ons that Plone can provide. RedTurtle’s technical partnership with PloneGov Italia (www.plonegov.it - we serve more than half of the member organizations) is another demonstration of Plone’s versatility.

Transcript of Plone Konferenz 2012

Page 1: Plone Konferenz 2012

agile.open.connectedScalable Plone from town-wise sites to region-wise

portals and Intranets Massimo Azzolini

Page 2: Plone Konferenz 2012

Massimo Azzolini

CEO - project manager

RedTurtle - Ferrara - Italy

[email protected]

@massimoazzolini

www.redturtle.it

Massimo Azzolini

Page 3: Plone Konferenz 2012

Massimo Azzolini

➡WebPortals

➡ Intranets

➡Social

➡Consultancy

➡Contents

➡Network of companies

Page 4: Plone Konferenz 2012

what is this talk about?!This talk will illustrate an use case showing how its flexibility and modularity allowed us to provide Plone solutions both for the little communes’ websites and for highly available, load-balanced, complex multi-site, multi-skin portals, that may include federated infrastructures of users. Furthermore, on the Intranet side, we could deliver a Plone Intranet serving several thousands of employees with SSO, a strong social flavour, groupware features well matching the specific needs of the diverse organizational units, and all the benefits and add-ons that Plone can provide. RedTurtle’s technical partnership with PloneGov Italia is another demonstration of Plone’s versatility.

Page 5: Plone Konferenz 2012

K.I.S.S.

Page 6: Plone Konferenz 2012

Massimo Azzolini

Municipality of Sant’Agostino

➡ Simple web site

‣ Events/News/Pages

‣ PortletPage/Custom Theme

‣ Social Media/Maps

➡ low traffic

‣ from 1 up to 10/15 editors

‣ 100 visits/day (peaks at 1k)

Page 7: Plone Konferenz 2012

Architecture

➡ Plone

➡ Just one instance

‣ Events/News/Pages

‣ no pound

‣ no varnish

‣ plone.app.cache rocks!

➡ Light Plone, it’s extremely fast

Apache

Page 8: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ Easier customization: portlets

‣ ContentWellPortlets/PortletPage

‣ ER Navigation portlet

‣ Portlet advanced static

‣ Collection portlet with custom view

➡ Maps: collective.geo

➡ Online Forms: PloneFormGen

➡ Newsletter: Singing & Dancing

➡ (re)Organize contents: SmartLink

➡ Social: sc.social.like

➡ Tag Cloud Vaporisation

Page 9: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ Easier customization: portlets

‣ ContentWellPortlets/PortletPage

‣ ER Navigation portlet

‣ Portlet advanced static

‣ Collection portlet with custom view

➡ Maps: collective.geo

➡ Online Forms: PloneFormGen

➡ Newsletter: Singing & Dancing

➡ (re)Organize contents: SmartLink

➡ Social: sc.social.like

➡ Tag Cloud Vaporisation

Page 10: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ Easier customization: portlets

‣ ContentWellPortlets/PortletPage

‣ ER Navigation portlet

‣ Portlet advanced static

‣ Collection portlet with custom view

➡ Maps: collective.geo

➡ Online Forms: PloneFormGen

➡ Newsletter: Singing & Dancing

➡ (re)Organize contents: SmartLink

➡ Social: sc.social.like

➡ Tag Cloud Vaporisation

Page 11: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ Easier customization: portlets

‣ ContentWellPortlets/PortletPage

‣ ER Navigation portlet

‣ Portlet advanced static

‣ Collection portlet with custom view

➡ Maps: collective.geo

➡ Online Forms: PloneFormGen

➡ Newsletter: Singing & Dancing

➡ (re)Organize contents: SmartLink

➡ Social: sc.social.like

➡ Tag Cloud Vaporisation

Page 12: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ Easier customization: portlets

‣ ContentWellPortlets/PortletPage

‣ ER Navigation portlet

‣ Portlet advanced static

‣ Collection portlet with custom view

➡ Maps: collective.geo

➡ Online Forms: PloneFormGen

➡ Newsletter: Singing & Dancing

➡ (re)Organize contents: SmartLink

➡ Social: sc.social.like

➡ Tag Cloud Vaporisation

Page 13: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ Easier customization: portlets

‣ ContentWellPortlets/PortletPage

‣ ER Navigation portlet

‣ Portlet advanced static

‣ Collection portlet with custom view

➡ Maps: collective.geo

➡ Online Forms: PloneFormGen

➡ Newsletter: Singing & Dancing

➡ (re)Organize contents: SmartLink

➡ Social: sc.social.like

➡ Tag Cloud Vaporisation

Page 14: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ Easier customization: portlets

‣ ContentWellPortlets/PortletPage

‣ ER Navigation portlet

‣ Portlet advanced static

‣ Collection portlet with custom view

➡ Maps: collective.geo

➡ Online Forms: PloneFormGen

➡ Newsletter: Singing & Dancing

➡ (re)Organize contents: SmartLink

➡ Social: sc.social.like

➡ Tag Cloud Vaporisation

Page 15: Plone Konferenz 2012

Massimo Azzolini

Organization changes

➡ Awareness

‣ one course

‣ they know they can publish information

➡ Delegation of the responsabilities

‣ creation of teams

‣ each owns an area

‣ website manager coordinates

Page 16: Plone Konferenz 2012

Massimo Azzolini

Benefits

➡ Fast delivery

‣ 1 month from startup to golive

‣ first contents, then theme

➡ No more fees

➡ Organization re-thinked

Page 17: Plone Konferenz 2012

The big one

Page 18: Plone Konferenz 2012

Massimo Azzolini

Main issues

➡ Migration from an old proprietary platform

‣ a lot of separated websites

‣ a lot of contents

‣ several features

➡ Centralized editing and review, but distributed contributors from all the organization

Page 19: Plone Konferenz 2012

Massimo Azzolini

Main issues

➡ Homepages configuration must have great flexibility:

‣ portlet page,

‣ content well portlet,

‣ a lot of new custom portlets

➡ Subsites, federated sites

‣ SSO

➡ “Areas” - a folderish object that allows editors to personalize look & feel

Page 20: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ Easier customization: portlets

‣ ContentWellPortlets

‣ Portlet page

‣ ER Navigation portlet

‣ Portlet advanced static

‣ Collection portlet with custom view

➡ photos:

‣ photo galleries

‣ collective.carousel

Page 21: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ press room, council management

➡ social: sc.social.like

➡ Google Search Appliance integration

➡ custom policies to grant fine tuning about portlet and collection management

➡ redturtle.smartlink

➡ anonymous view for the editors

➡ rt.purge

➡ Newsletter: Singing & Dancing & add-ons (collective.dancefloor)

Page 22: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ press room, council management

➡ social: sc.social.like

➡ Google Search Appliance integration

➡ custom policies to grant fine tuning about portlet and collection management

➡ redturtle.smartlink

➡ anonymous view for the editors

➡ rt.purge

➡ Newsletter: Singing & Dancing & add-ons (collective.dancefloor)

Page 23: Plone Konferenz 2012

Massimo Azzolini

add-ons

➡ press room, council management

➡ social: sc.social.like

➡ Google Search Appliance integration

➡ custom policies to grant fine tuning about portlet and collection management

➡ redturtle.smartlink

➡ anonymous view for the editors

➡ rt.purge

➡ Newsletter: Singing & Dancing & add-ons (collective.dancefloor)

Page 24: Plone Konferenz 2012

Massimo Azzolini

cluster redhat

Architecture

➡ Balanced IIS

➡ 3 servers

‣ 1 Reverse Proxy (apache)

‣ 1 Web accelerator (varnish)

‣ 1 Proxy Balancer (Pound)

‣ 4 zeo client

‣ 1 zeo server

➡ SAN/zodb partitioned/blob

➡ High Availability

zodb

varnish

Pound

varnish

Pound

IISIIS

apache apache

zeo server

Page 25: Plone Konferenz 2012

Massimo Azzolini

deliver it, deliver always, deliver fast

➡ The portal has great visibility/reputation in our region

➡ it has to manage peaks during election days

‣ 20M hits/month - 7.7 hits/sec

‣ 1.3M hits/day - 15.1 hits/sec

➡ let’s siege it

Page 26: Plone Konferenz 2012

Siege

# siege -f resources.txt -i -c 10 -t 15M# siege -f resources.txt -i -c 20 -t 15M# siege -f resources.txt -i -c 30 -t 15M# siege -f resources.txt -i -c 40 -t 15M# siege -f resources.txt -i -c 50 -t 15M

Page 27: Plone Konferenz 2012

Siege

# siege -f resources.txt -i -c 10 -t 15M# siege -f resources.txt -i -c 20 -t 15M# siege -f resources.txt -i -c 30 -t 15M# siege -f resources.txt -i -c 40 -t 15M# siege -f resources.txt -i -c 50 -t 15M

Page 28: Plone Konferenz 2012

Subsites

Page 29: Plone Konferenz 2012

Massimo Azzolini

Do you *really* need a subsite?

➡ yes, if you want to:

‣ create an internal link to a content inside another subsite

‣ create a collection that take contents from more that a subsite

‣ find documents also from outside the subsite

➡ otherwise you probably don't need a subsite but simply another Plone site

Page 30: Plone Konferenz 2012

Massimo Azzolini

You also may want

➡ a different theme

➡ the visitor surfs the subsite:

‣ domain.com/subsite

‣ subsite.com

‣ subdomain.domain.com

➡ the visitor should be not aware that he's visiting a subsection of a bigger site

➡ site contributors:

‣ mostly access the site through a back-end.domain.com domain

‣ see the whole site, not only the subsite

Page 31: Plone Konferenz 2012

Massimo Azzolini

redturtle.subsites

➡ frontend navigation is limited to the subsite only:

‣ breadcrumbs

‣ root

‣ navigation portlet

➡ searches run globally

➡ collections run globally

‣ backend editors can decide if run them locally only

➡ frontend editors work as they act on a indipendent Plone site

Page 32: Plone Konferenz 2012

Massimo Azzolini

More infos

➡ pypi.python.org:

‣ redturtle.subsites

‣ example.rtsubsites_theme

➡ http://blog.redturtle.it/redturtle-blog/sottositi-in-plone-la-nostra-soluzione

Page 33: Plone Konferenz 2012

Massimo Azzolini

Benefits

➡ a back-end interface that hides the subsite behaviours

➡ a front-end interface that show some folders as subsites

➡ an easy way to create additional themes for this folders/subsites

➡ subsites are activated dinamically

http://www.flickr.com/photos/jonathanmcintosh/6674893667

Page 34: Plone Konferenz 2012

Intranet/Groupware

Page 35: Plone Konferenz 2012

Massimo Azzolini

Two components

➡ Internos

‣ user dashboard, bookmarks, personal notifications,

‣ “Mercatino”

‣ “The expert replies”

➡ Groupware

‣ Docs, Events, News

‣ Forum, Blog, Projects

‣ Surveys, Comments

http://www.flickr.com/photos/31038781@N07/5916641748/

Page 36: Plone Konferenz 2012

Massimo Azzolini

cluster redhat

Architecture

➡ Balanced IIS

➡ 3 servers

‣ 1 Reverse Proxy (apache)

‣ 1 Web accelerator (varnish)

‣ 1 Proxy Balancer (Pound)

‣ 4 zeo client

‣ 1 zeo server

➡ SAN/zodb partitioned/blob

➡ High Availability

zodb

varnish

Pound

varnish

Pound

IISIIS

apache apache

zeo server

Page 37: Plone Konferenz 2012

Massimo Azzolini

Internos

➡ Plone standard

‣ Custom theme

‣ “usual” add ons

‣ 7.000 registered users

‣ Active Directory

➡ Documentation intranet

➡ Complex dashboard management

➡ “Mercatino”

‣ rer.passaparola

‣ rer.bookcrossing

➡ Q&A

Page 38: Plone Konferenz 2012

Massimo Azzolini

Groupware

➡ Eterogeneous groups of people need to collaborate

➡ The focus is on the activities

➡ Local roles

➡ Delegation of responsabilities

Page 39: Plone Konferenz 2012

Massimo Azzolini

The “group’s objects”

➡ Documents

➡ Events

➡ News

➡ Forum (Ploneboard)

➡ Blog (collective.blog.star)

➡ Projects (extreme management)

➡ Surveys (PlonePopoll)

Page 40: Plone Konferenz 2012

Massimo Azzolini

Groups and delegation

➡ Managers

‣ Add users to groups

‣ Delegate tasks

➡ Editors

‣ Add contents, collections, folders, portletpages,

➡ Collaborators

‣ Add contents

➡ Guests

‣ Read only

Page 41: Plone Konferenz 2012

Massimo Azzolini

Collaboration and notifications

➡ Comments on every object

‣ killer feature?!

➡ Predefined notifications

‣ every user can change them

➡ Personal bookmarking

Page 42: Plone Konferenz 2012

Regional Bulletin

Page 43: Plone Konferenz 2012

Massimo Azzolini

The problem

➡ Customer needs to publish a period bulletin of laws/tenders/etc.

➡ The old solution

‣ had a slow workflow

‣ had long manual tasks

‣ was expensive

• 1.7M+0.6M per year

‣ was paper based

‣ had manual distribution

http://www.flickr.com/photos/kevinpoh/5610165150

Page 44: Plone Konferenz 2012

Massimo Azzolini

The solution

➡ Data retrieving and workflow management through the web

➡ Automatic layout based on a definable schema

➡ Creation of a PDF/A file, digitally signed by the bulletin manager

➡ Bulletin publication:

‣ PDF/A format

‣ website

➡ Store everything in a centralized and general purpose archive

http://www.flickr.com/photos/fieldus/2986820638

Page 45: Plone Konferenz 2012

Massimo Azzolini

The implementation

➡ Plone based

➡ Custom Archetypes

➡ Management views to let data collection and composition easier

➡ Integration with InDesign

‣ XML to PDF

➡ webservice integration for

‣ grant access to externals

‣ connection with the central archive

AT

View

Page 46: Plone Konferenz 2012

Massimo Azzolini

Benefits

➡ Easy to use

➡ Improved comunication between editors; fast to learn

➡ Savings

‣ 2.2M saved the first year

‣ 240 tons of paper

➡ More effective

‣ deadline can be closer to delivery

‣ easier subscription management

http://www.flickr.com/photos/worldofoddy/2296823324/

Page 47: Plone Konferenz 2012

Multimedia & other sources

Page 48: Plone Konferenz 2012

Massimo Azzolini

Main issues

➡ Multimedia

‣ Videos

‣ Podcasts

‣ Photos

➡ and others:

‣ Solr

‣ Google Search Appliance

‣ Maps

Page 49: Plone Konferenz 2012

Massimo Azzolini

Videos & podcasts: Mediacore

➡ MediaCore is a media publishing platform

➡ you can create and control your own fully-featured video site

➡ works on any desktop browser and on popular mobile devices

➡ the community edition is opensource

‣ python/pylons

Page 50: Plone Konferenz 2012

Massimo Azzolini

Integration Plone and Mediacore

➡ Editors use Mediacore to upload their video/podcasts

➡ Mediacore contents can be easily embedded in Plone

‣ as a HTML snippet

‣ redturtle.video

➡ Plone editors just have a simple content type

Page 51: Plone Konferenz 2012

Massimo Azzolini

Integration Plone and Mediacore

➡ Editors use Mediacore to upload their video/podcasts

➡ Mediacore contents can be easily embedded in Plone

‣ as a HTML snippet

‣ redturtle.video

➡ Plone editors just have a simple content type

Page 52: Plone Konferenz 2012

Photos: Plone

Page 53: Plone Konferenz 2012

Google Search Appliance

Page 54: Plone Konferenz 2012

Google Search Appliance

Page 55: Plone Konferenz 2012

Solr

Page 56: Plone Konferenz 2012

Maps

Page 57: Plone Konferenz 2012

PloneGov Italia

Page 58: Plone Konferenz 2012

Massimo Azzolini

✓ The Italian national chapter of PloneGov (PGI for short)

✓ About 50 members

✓ Different public bodies and solutions: Universities, Health Agencies, Regions, Provinces, Cities, Chambers of Commerce, ...

✓ PGI is very diverse, something like a scaled-down version of the worldwide project.

✓ Smaller sub-communities within PGI (e.g. Plone for University & Research aka Plone4UR)

Gov Italia

Page 59: Plone Konferenz 2012

Massimo Azzolini

Plone PMI, ZEA network

“Pilot” body

REQUIREMENT

PROTOTYPE VALIDATION

SUPPORT TO REUSE

other bodiesreusable solution

PloneGovreusable solution

Reusing bodies

‣ triggered by an individual Public Body(e.g. Chamber of Commerce, Town, local Agency...)

‣ propagating by “peer to peer” infection among other individual organizations

‣ particularly suitable for products

‣ may escalate to “top down” model when becoming epidemic and attracting the attention of an Association of Public Bodies

Sustainable reuse model in “bottom-up” version

Page 60: Plone Konferenz 2012

Massimo Azzolini

Public Body

P. B.Assn.

Plone SMBs, ZEA Network

Public BodiesAssociation

“Pilot” body

REQUIREMENT

PROTOTYPE

VALIDATION

SUPPORT TO REUSE

other bodiesreusable solution

PloneGovreusable solution

Reusing bodies

‣ triggered by involving an Aggregate of Public Bodies

‣ propagation “by directive” and by “peer to peer” infection

‣ suited for products but particularly well-suited for ad hoc projects

‣ market target potentially bigger

‣ human and economical resource pooling may be much easier

Sustainable reuse model in “top-down” version

reusable solutionREQUIREMENT

HARMONIZATION

Page 61: Plone Konferenz 2012

Massimo Azzolini

PloneGov Italia Events

RedTurtle supports PloneGov by sponsoring and organizing events, hosted by PGI members.

✓ National launch (Ferrara, 2008)

✓ Yearly National Event (Ferrara, 2009)

✓ World Plone Day “healthcare” (Ferrara, 2010)

✓ Yearly National Event (Padua, 2010)

✓ Technical events (Modena, 2010)

✓ 2 Plone4UR days (Bologna & Naples 2010)

✓ World Plone Day (Bologna, 2011)

Page 62: Plone Konferenz 2012

Grazie. Thank you. Danke.

Page 63: Plone Konferenz 2012

Questions ?

Massimo AzzoliniRedTurtle’s co-founder and project [email protected] tw: @massimoazzolini