SlideShare uma empresa Scribd logo
1 de 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
                                                                                                                       #

Mais conteúdo relacionado

Semelhante a Industrializing eZ publish project development

Visual Studio Software architecture
Visual Studio Software architectureVisual Studio Software architecture
Visual Studio Software architecture
Suphiyaan Sutar
 
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
Jesus Rodriguez
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
Günter Obiltschnig
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
Sergii Shmarkatiuk
 

Semelhante a 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
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

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 #

Notas do Editor

  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