+              +
                                                   Industrializing eZ Publish
                           ...
+              +
                                            Summary




SQLI, fournisseur d'innovation - Industrializing ...
+              +
                                            Summary
                                    Development envir...
+              +
                                            Summary
                                    Development envir...
Development environment




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
              ...
+          +
                           Development environment
            Several issues to solve when working on a proj...
+          +
                           Development environment
            Several issues to solve when working on a proj...
+          +
                           Development environment
            Several issues to solve when working on a proj...
+          +
                           Development environment
            Several issues to solve when working on a proj...
+          +
                         Development environment : a solution

              Eclipse PDT with useful plugins
...
+          +
                         Development environment : a solution

              «Foreign» developers case
      ...
+          +
                         Development environment : a solution

              «Foreign» developers case
      ...
+          +
                         Development environment : a solution

              «Foreign» developers case
      ...
Developer sandbox
                                Developer computer
                                                     ...
SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                          ...
Main
                                                                                  Database




SQLI, fournisseur d'in...
Main
                                                                                  Database




                      ...
Industrializing tests and
                                                             delivery




SQLI, fournisseur d'in...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Automating delivery

             Use scripts to deploy your developments & project ...
+          +
                         Unit tests in eZ Publish
              Unit tests development are NEVER a waste of t...
+          +
                         Unit tests in eZ Publish
              Unit tests development are NEVER a waste of t...
+          +
                         Continuous Integration Platform
              Automatically builds your application
...
+          +
                         Continuous Integration Platform
              Automatically builds your application
...
+          +
                         Continuous Integration Platform
              Automatically builds your application
...
+          +
                         Continuous Integration Platform




SQLI, fournisseur d'innovation - Industrializing...
Questions ?
              My Blog : http://www.lolart.net (french, soon in english)
              My Company : http://www....
Upcoming SlideShare
Loading in …5
×

Industrializing eZ publish project development

3,695 views

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,695
On SlideShare
0
From Embeds
0
Number of Embeds
196
Actions
Shares
0
Downloads
104
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

  • SQLI : 17 agencies including offshore
  • SQLI : 17 agencies including offshore

  • 1. Developers' OSes
    => Can be VERY heterogene (one is working on Ubuntu Linux, another on Fedora, another on Windows or on Mac OSX)
    => IT departments may impose an OS (Windows in most cases) for several reasons
    => But you need to work in an environment as close as possible from the target environment (Linux in most cases, but can be Solaris), to avoid potential issues when going live in production
    => VMs are a suitable solution. Virtual Box may be the way to go as you can find lots of VBox images of almost every open OS (including Open Solaris) on the internet

    2. Developers' coding environment
    => Each developer has its preferred IDE (Eclipse, Netbeans, Vim, TextMate, PHPEdit...)

    3. Developers' synchronicity
    => Sharing the same sources
    => Sharing the same database
    => Sharing the same media files
    => Even when working with developers who are far from each other (Cartier : Paris, Nantes, Lyon, Morocco)
  • 1. Developers' OSes
    => Can be VERY heterogene (one is working on Ubuntu Linux, another on Fedora, another on Windows or on Mac OSX)
    => IT departments may impose an OS (Windows in most cases) for several reasons
    => But you need to work in an environment as close as possible from the target environment (Linux in most cases, but can be Solaris), to avoid potential issues when going live in production
    => VMs are a suitable solution. Virtual Box may be the way to go as you can find lots of VBox images of almost every open OS (including Open Solaris) on the internet

    2. Developers' coding environment
    => Each developer has its preferred IDE (Eclipse, Netbeans, Vim, TextMate, PHPEdit...)

    3. Developers' synchronicity
    => Sharing the same sources
    => Sharing the same database
    => Sharing the same media files
    => Even when working with developers who are far from each other (Cartier : Paris, Nantes, Lyon, Morocco)
  • 1. Developers' OSes
    => Can be VERY heterogene (one is working on Ubuntu Linux, another on Fedora, another on Windows or on Mac OSX)
    => IT departments may impose an OS (Windows in most cases) for several reasons
    => But you need to work in an environment as close as possible from the target environment (Linux in most cases, but can be Solaris), to avoid potential issues when going live in production
    => VMs are a suitable solution. Virtual Box may be the way to go as you can find lots of VBox images of almost every open OS (including Open Solaris) on the internet

    2. Developers' coding environment
    => Each developer has its preferred IDE (Eclipse, Netbeans, Vim, TextMate, PHPEdit...)

    3. Developers' synchronicity
    => Sharing the same sources
    => Sharing the same database
    => Sharing the same media files
    => Even when working with developers who are far from each other (Cartier : Paris, Nantes, Lyon, Morocco)
  • Virtual Box : Can be replaced by VMWare. VBoxHeadless => VMWare ESX
    Subversion : can be your preferred SCM (Git)
  • Foreign developers : SQLI : 17 agencies including offshore
    Connection to DB : About security, MySQL data exchange is not secured by default, but one can connect to remote DB with SSH tunneling
    Remote VBox solution : VBox is in the same LAN than MySQL server => reasonably fast
  • Foreign developers : SQLI : 17 agencies including offshore
    Connection to DB : About security, MySQL data exchange is not secured by default, but one can connect to remote DB with SSH tunneling
    Remote VBox solution : VBox is in the same LAN than MySQL server => reasonably fast
  • Foreign developers : SQLI : 17 agencies including offshore
    Connection to DB : About security, MySQL data exchange is not secured by default, but one can connect to remote DB with SSH tunneling
    Remote VBox solution : VBox is in the same LAN than MySQL server => reasonably fast

































  • PHPUnderControl is based on Apache ANT
  • PHPUnderControl is based on Apache ANT


  • Industrializing eZ publish project development

    1. 1. + + Industrializing eZ Publish Project development + 2010-06-25, by Jérôme Vieilledent SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    2. 2. + + Summary SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    3. 3. + + Summary Development environment OS Coding environment Synchronicity SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    4. 4. + + Summary Development environment OS Coding environment Synchronicity Industrializing Tests and Delivery Automating delivery Unit tests in eZ Publish Continuous integration platform SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    5. 5. Development environment SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    6. 6. + + Development environment Several issues to solve when working on a project as a team SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    7. 7. + + Development environment Several issues to solve when working on a project as a team Developers’ OS Can be VERY heterogene IT Departments may impose an OS (Windows in most cases) BUT you need to work in an environment as close as possible from the target environment VMs are a suitable solution (Virtual Box, VMWare...) SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    8. 8. + + Development environment Several issues to solve when working on a project as a team Developers’ OS Can be VERY heterogene IT Departments may impose an OS (Windows in most cases) BUT you need to work in an environment as close as possible from the target environment VMs are a suitable solution (Virtual Box, VMWare...) Developers’ coding environment Each developer has its preferred IDE Unicity rimes with productivity => Choose only one IDE (I chose Eclipse) Easier for developer support or when welcoming a new developer in the team A good IDE provides all needed tools all-in-one SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    9. 9. + + Development environment Several issues to solve when working on a project as a team Developers’ OS Can be VERY heterogene IT Departments may impose an OS (Windows in most cases) BUT you need to work in an environment as close as possible from the target environment VMs are a suitable solution (Virtual Box, VMWare...) Developers’ coding environment Each developer has its preferred IDE Unicity rimes with productivity => Choose only one IDE (I chose Eclipse) Easier for developer support or when welcoming a new developer in the team A good IDE provides all needed tools all-in-one Developers’ synchronicity Sharing the same sources (SCM like Subversion or Git) Sharing the same database Sharing the same media files Even when working with developers who are far from each other SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    10. 10. + + Development environment : a solution Eclipse PDT with useful plugins Smile eZ Publish plugin (TPL syntax highlight, code completion & content class view) eZClipse (TPL & INI syntax highlight) Subversive Mylyn (Bug tracker integration : Mantis, Trac, Bugzilla, Jira...) FileSync (see below) Virtual Box With an image close to target environment (let’s say Ubuntu Server) Can be run from a dedicated headless server with VBoxHeadless FileSync Eclipse plugin Sync your workspace with a remote server Your remote server has to be accessible from your local/host computer Samba or SSHFS are good solutions Common dedicated MySQL server eZ Publish (Database cluster mode enabled) + useful extensions Subversion SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    11. 11. + + Development environment : a solution «Foreign» developers case Different geographical centers working together on the same project Freelances Everyone needs to share the same database (Data & Cluster files) SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    12. 12. + + Development environment : a solution «Foreign» developers case Different geographical centers working together on the same project Freelances Everyone needs to share the same database (Data & Cluster files) Issues Too much potential traffic with the database over the internet Slow Insecure SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    13. 13. + + Development environment : a solution «Foreign» developers case Different geographical centers working together on the same project Freelances Everyone needs to share the same database (Data & Cluster files) Issues Too much potential traffic with the database over the internet Slow Insecure Solution Dedicated Virtual Box Headless server, located in the Project Headquarter Each foreign developer has its dedicated remote VBox Sources are sent through SSHFS or Samba (with VPN) via FileSync automatically Each VBox is local to the database server Developer accesses to its own development server through HTTP and/or SSH Fast and secure :-) SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    14. 14. Developer sandbox Developer computer virtual server SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    15. 15. SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    16. 16. Main Database SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    17. 17. Main Database Cluster Database SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    18. 18. Industrializing tests and delivery SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    19. 19. + + Automating delivery Use scripts to deploy your developments & project configuration SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    20. 20. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    21. 21. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    22. 22. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    23. 23. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    24. 24. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    25. 25. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    26. 26. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    27. 27. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    28. 28. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode All settings centralized in a XML file SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    29. 29. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode All settings centralized in a XML file http://projects.ez.no/noveniniupdate SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    30. 30. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode All settings centralized in a XML file http://projects.ez.no/noveniniupdate Apache ANT or similar tool... SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    31. 31. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode All settings centralized in a XML file http://projects.ez.no/noveniniupdate Apache ANT or similar tool... ... to push your sources/config files into staging/production platform SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    32. 32. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode All settings centralized in a XML file http://projects.ez.no/noveniniupdate Apache ANT or similar tool... ... to push your sources/config files into staging/production platform Connected to your SCM SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    33. 33. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode All settings centralized in a XML file http://projects.ez.no/noveniniupdate Apache ANT or similar tool... ... to push your sources/config files into staging/production platform Connected to your SCM Make an differential export between tags SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    34. 34. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode All settings centralized in a XML file http://projects.ez.no/noveniniupdate Apache ANT or similar tool... ... to push your sources/config files into staging/production platform Connected to your SCM Make an differential export between tags Think about Rollbacks SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    35. 35. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer Create / Update content classes, objects and roles Trigger your modifications from CLI (no more timeouts) Create your own handler http://projects.ez.no/ezxmlinstaller Noven INI Update Switch from one environment to another regarding configuration Safely handles your INI files, config.php and cluster mode All settings centralized in a XML file http://projects.ez.no/noveniniupdate Apache ANT or similar tool... ... to push your sources/config files into staging/production platform Connected to your SCM Make an differential export between tags Think about Rollbacks Soon on projects.ez.no ;-) SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    36. 36. + + Unit tests in eZ Publish Unit tests development are NEVER a waste of time You spend 15-25% more time developing tests You spend 10-20% less time debugging in the client’s test phase Unit tests then become non-regression tests SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    37. 37. + + Unit tests in eZ Publish Unit tests development are NEVER a waste of time You spend 15-25% more time developing tests You spend 10-20% less time debugging in the client’s test phase Unit tests then become non-regression tests eZ Publish has a test framework Based on PHPUnit Only available from SVN (http://pubsvn.ez.no/nextgen) ... And GitHub (http://github.com/ezsystems/ezpublish) Handy kernel wrapper to easily manipulate content classes/objects/nodes Run your tests with a temporary and droppable database More info on eZPedia http://ezpedia.org/en/ez/testing_ez_publish_test_system PHPUnit is compatible with Selenium (automated functional tests) SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    38. 38. + + Continuous Integration Platform Automatically builds your application Updates from your SCM Runs your unit and functional tests Tests your code against your coding standards (PHPCodeSniffer) Detects messy code (PHPMessDetector) Makes reports and graphs about these builds SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    39. 39. + + Continuous Integration Platform Automatically builds your application Updates from your SCM Runs your unit and functional tests Tests your code against your coding standards (PHPCodeSniffer) Detects messy code (PHPMessDetector) Makes reports and graphs about these builds Very useful on big projects, with extensible team of developers => Control => Stability SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    40. 40. + + Continuous Integration Platform Automatically builds your application Updates from your SCM Runs your unit and functional tests Tests your code against your coding standards (PHPCodeSniffer) Detects messy code (PHPMessDetector) Makes reports and graphs about these builds Very useful on big projects, with extensible team of developers => Control => Stability 2 main platforms to remember => PHPUnderControl (http://www.phpundercontrol.org) => Hudson (http://hudson-ci.org/) SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    41. 41. + + Continuous Integration Platform SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
    42. 42. Questions ? My Blog : http://www.lolart.net (french, soon in english) My Company : http://www.sqli.com Industry Finance Telecom Real Public sector Estate Services 21% SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #

    ×