SlideShare a Scribd company logo
+              +
                                                   Industrializing eZ Publish
                                                    Project development
                                                                                                                      +
                                                                                  2010-06-25, by Jérôme Vieilledent




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                                                          #
+              +
                                            Summary




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
+              +
                                            Summary
                                    Development environment
                                          OS
                                          Coding environment
                                          Synchronicity




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
+              +
                                            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
                                                                                  #
Development environment




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
+          +
                           Development environment
            Several issues to solve when working on a project as a team




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
+          +
                           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
                                                                                                   #
+          +
                           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
                                                                                                    #
+          +
                           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
                                                                                                    #
+          +
                         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
                                                                                                            #
+          +
                         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
                                                                                           #
+          +
                         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
                                                                                           #
+          +
                         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
                                                                                                     #
Developer sandbox
                                Developer computer
                                                                                    virtual server




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                                      #
SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
Main
                                                                                  Database




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                        #
Main
                                                                                  Database




                                                                                  Cluster
                                                                                  Database




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                        #
Industrializing tests and
                                                             delivery




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
+          +
                         Automating delivery

             Use scripts to deploy your developments & project configuration




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
+          +
                         Automating delivery

             Use scripts to deploy your developments & project configuration

              eZ XML Installer




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
+          +
                         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
                                                                                  #
+          +
                         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
                                                                                  #
+          +
                         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
                                                                                  #
+          +
                         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
                                                                                  #
+          +
                         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
                                                                                  #
+          +
                         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
                                                                                      #
+          +
                         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
                                                                                      #
+          +
                         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
                                                                                      #
+          +
                         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
                                                                                      #
+          +
                         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
                                                                                      #
+          +
                         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
                                                                                              #
+          +
                         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
                                                                                              #
+          +
                         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
                                                                                              #
+          +
                         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
                                                                                              #
+          +
                         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
                                                                                              #
+          +
                         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
                                                                                       #
+          +
                         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
                                                                                               #
+          +
                         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
                                                                                  #
+          +
                         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
                                                                                  #
+          +
                         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
                                                                                  #
+          +
                         Continuous Integration Platform




SQLI, fournisseur d'innovation - Industrializing eZ Publish project development
                                                                                  #
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
                                                                                                                       #

More Related Content

Similar to Industrializing eZ publish project development

Visual Studio Software architecture
Visual Studio Software architectureVisual Studio Software architecture
Visual Studio Software architectureSuphiyaan Sutar
 
10 Reasons Your Software Sucks 2014 - Tax Day Edition!
10 Reasons Your Software Sucks 2014 - Tax Day Edition!10 Reasons Your Software Sucks 2014 - Tax Day Edition!
10 Reasons Your Software Sucks 2014 - Tax Day Edition!
Caleb Jenkins
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
DevOps.com
 
InduSoft Web Studio and Developing Applications for OEMs - InduSoft Presentation
InduSoft Web Studio and Developing Applications for OEMs - InduSoft PresentationInduSoft Web Studio and Developing Applications for OEMs - InduSoft Presentation
InduSoft Web Studio and Developing Applications for OEMs - InduSoft Presentation
AVEVA
 
Open Source and Windows Azure; A Match Made in Heaven
Open Source and Windows Azure; A Match Made in HeavenOpen Source and Windows Azure; A Match Made in Heaven
Open Source and Windows Azure; A Match Made in HeavenJesus Rodriguez
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
湯米吳 Tommy Wu
 
DevOps and the C64: what's your excuse
DevOps and the C64: what's your excuseDevOps and the C64: what's your excuse
DevOps and the C64: what's your excuse
Todd Whitehead
 
Creating the architecture vision with cisco v2.2
Creating the architecture vision with cisco v2.2Creating the architecture vision with cisco v2.2
Creating the architecture vision with cisco v2.2
Akademy Konsalt
 
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCU
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCUCloud Computing: IC4 Cloud On-Boarding Clinic, DCU
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCU
kantanmt
 
What is Codename One.pdf
What is Codename One.pdfWhat is Codename One.pdf
What is Codename One.pdf
ShaiAlmog1
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewGünter Obiltschnig
 
Net core
Net coreNet core
Net core
Damir Dobric
 
Lean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building ExperiencesLean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building Experiences
Bill Scott
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Vicente Gerardo Guzman Lucio
 
Visual Studio2010 Product Overview
Visual Studio2010 Product OverviewVisual Studio2010 Product Overview
Visual Studio2010 Product Overview
janadbest
 
Faster deep learning solutions from training to inference - Michele Tameni - ...
Faster deep learning solutions from training to inference - Michele Tameni - ...Faster deep learning solutions from training to inference - Michele Tameni - ...
Faster deep learning solutions from training to inference - Michele Tameni - ...
Codemotion
 
Ide benchmarking
Ide benchmarkingIde benchmarking
Ide benchmarking
Mallikarjuna G D
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment ManagementSergii Shmarkatiuk
 
Docker Seattle Meetup, May 2017
Docker Seattle Meetup, May 2017Docker Seattle Meetup, May 2017
Docker Seattle Meetup, May 2017
Stephen Walli
 
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium ParisProject Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
Alexis Moussine-Pouchkine
 

Similar to Industrializing eZ publish project development (20)

Visual Studio Software architecture
Visual Studio Software architectureVisual Studio Software architecture
Visual Studio Software architecture
 
10 Reasons Your Software Sucks 2014 - Tax Day Edition!
10 Reasons Your Software Sucks 2014 - Tax Day Edition!10 Reasons Your Software Sucks 2014 - Tax Day Edition!
10 Reasons Your Software Sucks 2014 - Tax Day Edition!
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
 
InduSoft Web Studio and Developing Applications for OEMs - InduSoft Presentation
InduSoft Web Studio and Developing Applications for OEMs - InduSoft PresentationInduSoft Web Studio and Developing Applications for OEMs - InduSoft Presentation
InduSoft Web Studio and Developing Applications for OEMs - InduSoft Presentation
 
Open Source and Windows Azure; A Match Made in Heaven
Open Source and Windows Azure; A Match Made in HeavenOpen Source and Windows Azure; A Match Made in Heaven
Open Source and Windows Azure; A Match Made in Heaven
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
 
DevOps and the C64: what's your excuse
DevOps and the C64: what's your excuseDevOps and the C64: what's your excuse
DevOps and the C64: what's your excuse
 
Creating the architecture vision with cisco v2.2
Creating the architecture vision with cisco v2.2Creating the architecture vision with cisco v2.2
Creating the architecture vision with cisco v2.2
 
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCU
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCUCloud Computing: IC4 Cloud On-Boarding Clinic, DCU
Cloud Computing: IC4 Cloud On-Boarding Clinic, DCU
 
What is Codename One.pdf
What is Codename One.pdfWhat is Codename One.pdf
What is Codename One.pdf
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
 
Net core
Net coreNet core
Net core
 
Lean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building ExperiencesLean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building Experiences
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Visual Studio2010 Product Overview
Visual Studio2010 Product OverviewVisual Studio2010 Product Overview
Visual Studio2010 Product Overview
 
Faster deep learning solutions from training to inference - Michele Tameni - ...
Faster deep learning solutions from training to inference - Michele Tameni - ...Faster deep learning solutions from training to inference - Michele Tameni - ...
Faster deep learning solutions from training to inference - Michele Tameni - ...
 
Ide benchmarking
Ide benchmarkingIde benchmarking
Ide benchmarking
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
 
Docker Seattle Meetup, May 2017
Docker Seattle Meetup, May 2017Docker Seattle Meetup, May 2017
Docker Seattle Meetup, May 2017
 
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium ParisProject Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
 

Recently uploaded

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Industrializing eZ publish project development

  • 1. + + Industrializing eZ Publish Project development + 2010-06-25, by Jérôme Vieilledent SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 2. + + Summary SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 3. + + Summary Development environment OS Coding environment Synchronicity SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 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. Development environment SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. Developer sandbox Developer computer virtual server SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 15. SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 16. Main Database SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 17. Main Database Cluster Database SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 18. Industrializing tests and delivery SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 19. + + Automating delivery Use scripts to deploy your developments & project configuration SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 20. + + Automating delivery Use scripts to deploy your developments & project configuration eZ XML Installer SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + Continuous Integration Platform SQLI, fournisseur d'innovation - Industrializing eZ Publish project development #
  • 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 #

Editor's Notes

  1. SQLI : 17 agencies including offshore
  2. SQLI : 17 agencies including offshore
  3. 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)
  4. 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)
  5. 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)
  6. Virtual Box : Can be replaced by VMWare. VBoxHeadless => VMWare ESX Subversion : can be your preferred SCM (Git)
  7. 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
  8. 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
  9. 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
  10. PHPUnderControl is based on Apache ANT
  11. PHPUnderControl is based on Apache ANT