SlideShare a Scribd company logo
1 of 42
+              +
                                                   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 DevelopmentDevOps.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 PresentationAVEVA
 
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 excuseTodd 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.2Akademy 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, DCUkantanmt
 
What is Codename One.pdf
What is Codename One.pdfWhat is Codename One.pdf
What is Codename One.pdfShaiAlmog1
 
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
 
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 ExperiencesBill 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.FormsVicente Gerardo Guzman Lucio
 
Visual Studio2010 Product Overview
Visual Studio2010 Product OverviewVisual Studio2010 Product Overview
Visual Studio2010 Product Overviewjanadbest
 
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
 
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 2017Stephen Walli
 

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

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

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