Skip to content. | Skip to navigation

Personal tools
Sections
You are here: Home Topics migration
Navigation
 

migration

Sep 30, 2010

Università di Ferrara: una migrazione riuscita

by Cesare Brizio — last modified Sep 30, 2010 04:35 PM

Il passaggio da Plone 2.5 a Plone 3 ha offerto a UNIFE l'opportunità di ulteriori migliorie all'infrastruttura Plone, probabilmente la più complessa nell'ambito della Pubblica Amministrazione italiana.

La versione - bersaglio: Plone 3


Pur essendo già consolidata la presenza di Plone 4, e con Plone 5 all'orizzonte, UNIFE ha adottato un approccio altamente prudenziale, tale da consentire la conservazione di molti prodotti Plone e soprattutto tale da non sovraccaricare di lavoro lo staff IT dell'Università: la migrazione a Plone 3, basata su sistemi parametrici, progettati da RedTurtle Technology, per la riconversione automatica dei dati.

Situazione di partenza

L'infrastruttura Plone di UNIFE, che serve una Intranet con oltre duemila postazioni di lavoro ed altrettante utenze di telefonia VOIP, oltre a una galassia di circa duecento siti pubblici, fino a pochi mesi fa era solidamente basata su un vecchio rilascio di Plone, la versione 2.5.

Obiettivi

Sebbene le prestazioni fossero complessivamente soddisfacenti, ci si è resi conto che i tempi erano maturi per un passaggio di versione, che consentisse di:

  • sfruttare gli avanzamenti delle recenti release Plone, più efficienti dal punto di vista delle prestazioni,
  • garantire la crescita dei numerosi prodotti Plone in dotazione a UNIFE (alcuni dei quali specifici della versione 2),
  • ridisegnare alcuni aspetti delle strategie di load balancing ed alta disponibilità, per un ulteriore miglioramento del potenziale di gestione del traffico , sempre intenso sui numerosi siti di UNIFE.
  • semplificare i processi di manutenzione.

 

Il contributo di RedTurtle

RedTurtle ha progettato una suite di "Migration Tools", calibrati per garantire il recupero automatico dei dati dei diversi tipi standard di oggetti Plone (pagine, documenti, files...), il cui numero è di diverse migliaia. Oltre a questo, sono state definite analoghe procedure automatiche per la migrazione a Plone 3 dei tipi di contenuto non standard:

  • le traduzioni di LinguaPlone
  • i collegamenti di RedirectionTool
  • i formulari online di PloneFormGen
  • i sondaggi di PloneSurvey
  • le newsletter di PloneGazette

 

Risultati finali

Ora l'Università di Ferrara non solo dispone di un portale più performante (grazie alle migliorie apportate alla configurazione multi-istanza, all'elevato grado di virtualizzazione, al bilanciamento assicurato da Pound, alle corrette strategie di storage), ma può affermare di avere salvaguardato la totalità degli investimenti svolti in precedenza, grazie all'integrale recupero dei contenuti sopra ricordati.

Questo successo, particolarmente significativo in un contesto della complessità di quello di UNIFE (descritto in questa presentazione), segna un nuovo importante passo, sempre nella giusta direzione, della collaborazione tra Università di Ferrara e RedTurtle Technology.

Oct 16, 2009

Fast content import

by Andrew Mleczko — last modified Oct 16, 2009 08:19 PM

For one of our customers we have implemented a prototype for fast importing data to Plone. Instead of creating thousands of Archetype-based objects - we are creating only brains. Real objects will be created manually by users. The difference is huge.

The task was simple - import to Plone 36.000 documents (with all children it gives the total of 120.000 objects). Simply creating it using invokeFactory will take too much time (aprox. 14 hours). Why not create just brains and let users decide which document fully migrate? This is what we did.

We started with import script which creates brains in portal_catalog using directly catalog_object method:

pc = getToolByName(self.context, 'portal_catalog')
pc.catalog_object(dummy_object, dummy_object.path)

 

dummy_object is a simple python object with all metadata that we need later for portal_catalog query:

>>> pp dummy_object.__dict__
{'title': u'dummy title',
'id': u'simple_id',
'review_state': 'private',
'path': '/plone/importfolder/ToBeMigrated_simple_id'}

 

After lunching the script (it took 19 minutes) we had all the brains (36.000) in portal_catalog with proper metadata/index updated. Now we need to allow users to see them. So we created traverser for our importfolder:

def __bobo_traverse__(self, REQUEST, name):
    if name.startswith('ToBeMigrated'):
       view = getMultiAdapter((self, self.REQUEST), name='to_be_migrated')
       view.setBrainId(name)
       return view
    return super(ImportFolder, self).__bobo_traverse__(REQUEST, name)
 

which returns a simple BrowserView with the brain.id. The view has a template which informs end-user that this document need to be migrated. If he decided to import it - system will start import process for selected brain.id.
The rest is pure Plone folder_contents view which lists my 'dummy' brains in import_folder (cause the path in the brain is correct). Simple and much faster ;-)