際際滷

際際滷Share a Scribd company logo
Lightning Talk
   7 minutes to talk about

   Exporting and importing
   company-level data
   S辿bastien Le Marchand




Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012
PROBLEMATIC




Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012   2
Problematic
   A classic data import/export use case

   + Transfer data between multiple environnements
      Need for
                  束 Selective 損 export or import, not all data      Integration
                  Incremental import


       dont push DB dump !
                                                                        Q/A
   + Available tools
      束 Site scope 損 data
                  LAR export / import
                  Remote stagging                                    Acceptance
                  Resource Importer Plugin
      Data outside 束 site scope 損 (company-level data)
                  ?... thats the problem !
                                                                     Production

Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012                 3
Problematic
   What are company-level data ?

                                                              束 Site-scope 損 data

                                                               Covered by Liferay ARchive native export /
                                                              import




                                                                束 Company-scope 損 data

                                                                 No native feature to help us




Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012                                       4
FRONTLINE FEEDBACK




Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012   5
Frontline feedback
   Example : roles permissions definitions

   + Default permissions for roles
      A critical security configuration

                                                                                                        2
            1
                                                                                                    3

   + How-to ?
      Without any tool (very painful) :
                  you need to write specific configuration procedure documentation (potentially huge)
                  You need to 束 replay 損 procedure manually (UI) for each environement (re-)initi
                  Unsafe (human error)


      Build a tool to do the work (go back at home earlier !)
                  Fast to replay
                  Repeatable (error-prone)
Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012                                      6
Frontline feedback
   Best practices to write import/export tools

   + Dont work directly with database (SQL extract & load)
      Possible application-level data integrity violations


   + Only use portal services to read and write data
      Choose your weapon
                  Plain-old plugin, written in Java
                  Admin script, written in Groovy, Ruby, etc.


   + Be carreful about IDs
      An entity ID is not the same in source environment and target environment
                  Do not rely on entity ID
                  Relations between entities must not be stored with IDs




Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012                 7
OUT-OF-THE-BOX TOOL




Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012   8
Out-of-the-box tool
   Discover a comprehensive ready-to-use tool

   + Hook Plugin
      No user interface, actions only by file manipulation
                  Easy to use for Ops
      Input and output files in the same directory (configurable)
                  ${liferay.home}/deploy/imex
   + Export
      Input
                  xxxx.export.properties (options)
      Output
                  xxxx.imex.zip (data archive)
   + Import
      Input
                  xxxx.import.properties (options)
                  xxxx.imex.zip (data archive)


Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012   9
Out-of-the-box tool
   Options overview

                                                                     xxxx.export.properties




Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012                            10
Out-of-the-box tool
   Data format overview




Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012   11
Out-of-the-box tool
   Get it !

   + Historically, internal developpement targeting Liferay 5.2.x
   + Now open-source project targeting Liferay 6.1
      Beta release


   + Coverage :
      Now
                  Roles & roles default permissions definitions
                  Sites (using LAR mechanisms)
      Next releases
                  Extended coverage


             http://sqli-imex.github.com

Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012   12
That's all folks!
   Thanks!

   +Im/Ex tool                                                       +S辿bastien Le Marchand
      http://sqli-imex.github.com                                    slemarchand@sqli.com
                                                                      @slemarchand


   +SQLI Group
      http://www.sqli.com
      http://www.entreprise-digitale.com
      @SQLIEENTREPRISE

                                        > 1800 employees
                                        170 M turnover
                                        Capability to deploy projects
                                        internationally



Liferay Europe Symposium  Wiesbaden, Germany | 16-17 october 2012                            13

More Related Content

Les2012 lightning talk_exporting_and_importing_company-level_data

  • 1. Lightning Talk 7 minutes to talk about Exporting and importing company-level data S辿bastien Le Marchand Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012
  • 2. PROBLEMATIC Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 2
  • 3. Problematic A classic data import/export use case + Transfer data between multiple environnements Need for 束 Selective 損 export or import, not all data Integration Incremental import dont push DB dump ! Q/A + Available tools 束 Site scope 損 data LAR export / import Remote stagging Acceptance Resource Importer Plugin Data outside 束 site scope 損 (company-level data) ?... thats the problem ! Production Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 3
  • 4. Problematic What are company-level data ? 束 Site-scope 損 data Covered by Liferay ARchive native export / import 束 Company-scope 損 data No native feature to help us Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 4
  • 5. FRONTLINE FEEDBACK Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 5
  • 6. Frontline feedback Example : roles permissions definitions + Default permissions for roles A critical security configuration 2 1 3 + How-to ? Without any tool (very painful) : you need to write specific configuration procedure documentation (potentially huge) You need to 束 replay 損 procedure manually (UI) for each environement (re-)initi Unsafe (human error) Build a tool to do the work (go back at home earlier !) Fast to replay Repeatable (error-prone) Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 6
  • 7. Frontline feedback Best practices to write import/export tools + Dont work directly with database (SQL extract & load) Possible application-level data integrity violations + Only use portal services to read and write data Choose your weapon Plain-old plugin, written in Java Admin script, written in Groovy, Ruby, etc. + Be carreful about IDs An entity ID is not the same in source environment and target environment Do not rely on entity ID Relations between entities must not be stored with IDs Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 7
  • 8. OUT-OF-THE-BOX TOOL Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 8
  • 9. Out-of-the-box tool Discover a comprehensive ready-to-use tool + Hook Plugin No user interface, actions only by file manipulation Easy to use for Ops Input and output files in the same directory (configurable) ${liferay.home}/deploy/imex + Export Input xxxx.export.properties (options) Output xxxx.imex.zip (data archive) + Import Input xxxx.import.properties (options) xxxx.imex.zip (data archive) Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 9
  • 10. Out-of-the-box tool Options overview xxxx.export.properties Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 10
  • 11. Out-of-the-box tool Data format overview Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 11
  • 12. Out-of-the-box tool Get it ! + Historically, internal developpement targeting Liferay 5.2.x + Now open-source project targeting Liferay 6.1 Beta release + Coverage : Now Roles & roles default permissions definitions Sites (using LAR mechanisms) Next releases Extended coverage http://sqli-imex.github.com Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 12
  • 13. That's all folks! Thanks! +Im/Ex tool +S辿bastien Le Marchand http://sqli-imex.github.com slemarchand@sqli.com @slemarchand +SQLI Group http://www.sqli.com http://www.entreprise-digitale.com @SQLIEENTREPRISE > 1800 employees 170 M turnover Capability to deploy projects internationally Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 13