SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Nuxeo Marketplace
And the Update Center

Thierry Delprat, Stefanescu Bogdan, Alain Escaffre




                                                     1
Agenda

●
    Nuxeo Marketplace: presentation and objectives

●
    Nuxeo Marketplace review

●
    Behind the scenes – how it works




                                                     2
Nuxeo chose a modular
& extensible design...
●
    To maximize reuse of components in different
    use cases, thus improving their quality and
    usability
●
    To have an active roadmap
●
    To beneft from a high level of fexibility towards
    user requirements
●
    To have a vibrant and popular plugin
    ecosystem.
                                                        3
Nuxeo Community contributes
plugins...
●
    Nuxeo provides many plugins (CAS, importer,
    etc.)
●
    SI partners have their own internal shared library
    of typical improvements and demo scenarios
●
    Solution providers, through Nuxeo Galaxy,
    already have vertical solutions on top of Nuxeo
    DM
●
    Open source community provides several groups
    of interest in Nuxeo with various plugins
    (Yerbabuena, ESUP …)                                 4
… that will now fnd their place
in the Marketplace !
●
    Federate and focus Nuxeo Social Marketplace
    momentum
●
    Make it easier for Nuxeo users to access to all
    the available resources
●
    Provide a way for our partners to develop their
    business on top of the platform with (soon) a
    distribution solution for commercial plugins
●
    Provide a way to distribute «safe» customizations
●
    Keep on improving the Nuxeo user experience !       5
The Nuxeo Marketplace




                        6
Marketplace, Our Recipe

●
    The Marketplace portal
●
    A new plugin packaging system
●
    A solution for set up in only a few clicks
●
    An optional and multi-level qualifcation/validation
    scheme
●
    And … contributors !


                                                          7
Update Center Use Cases

●
    Distribution of addons
●
    Distribution of Nuxeo Connect patches
●
    Nuxeo Studio project deployment (with hot
    reload!)
●
    Will soon be a deployment solution for your
    project


                                                  8
Package View




               9
Contribution Process and
Guidelines
●
    Make sure your development is not buggy!
●
    Create your Marketplace package and test its
    deployment locally from the Update Center
●
    Send your package to Nuxeo with a full
    description
●
    Documentation -- provide a user guide, a
    technical guide if necessary, and optionally a link
    to the source code
                                                          10
Validation and Support of
Marketplace Packages
●
    Production state: vendor opinion on level of
    achievement of the plugin towards a go-to-
    production goal.
    ●
        prototype, testing, or ready
●
    Certifcation status: Level of audit and control
    by Nuxeo
    ●
        none, primary validation, or Nuxeo certifed
●
    Vendor support: yes/no
                                                      11
Update Center



   Nuxeo Server Package Administration




                                         12
Nuxeo Update Center




●
    Update Center
    ●
        is a part of Admin Center
    ●
        provides a fltered view of Marketplace packages
    ●
        manages package downloads
    ●
        manages installation wizard for packages
                                                          13
Browsing Packages
●
    Update Center provides several views
    ●
        Software updates
        –   Installed packages that can be upgraded
        –   Nuxeo patches and fxes
    ●
        Local packages
        –   packages that have been installed via Update Center
        –   packages that have been downloaded but not installed
    ●
        Marketplace
        –   last version of all Marketplace packages
    ●
        Studio
        –   different versions of Studio projects                  14


        –   quick update button
Browsing Packages
●
    Packages can be fltered
    ●
        by target platform
    ●
        by type (hot fx, addon, studio)




●
    You can see package details
    ●
        description
    ●
        validation status
    ●
        dependencies
    ●
        comments, download counts         15
Install Packages
●
    Downloading package
    ●
        managed as a background task
●
    Dependencies check
    ●
        Update Center will prompt for dependencies installation if
        needed
●
    Setup wizard
    ●
        if needed a setup wizard will be displayed
        (package confguration)
●
    Newly installed components may be
    ●
        hot deployed
        deployed on server restart
                                                                     16
    ●
Package Model



  An update package is the bundled feature
             you want to install.




                                             17
Package Structure
●
    An update feature is packaged as a zip
    ●
        A package descriptor fle: package.xml.
    ●
        An installation descriptor: install.xml.
    ●
        The package data:
        –   JARs to install
        –   confguration fles and other resources to copy on the
            server.
    ●
        Descriptor fles must reside in the ZIP root.



                                                                   18
The Package Descriptor
 ●
     A Package is uniquely identifed by its name and
     version.
 ●
     A Package has a type and a set of properties required
     by the installer.




                                                             19
Package Properties
●
    Main properties:
    ●
        Title – A title to be used in the UI.
    ●
        Description – The package description
    ●
        Vendor – the Vendor name
    ●
        Platforms – a list of target platforms
         –   The target platforms limit the distributions where the
             package can be installed.
    ●
        Dependencies – a list of dependencies, if any.



                                                                      20
Package Dependencies
●
    A package may require some other packages to
    be installed before you install it.
    ●
        Dependencies are identifed using the package ID –
        which has the format: 'name'-'version'.
    ●
        Dependencies are transitive – in order to be able to
        install your package you must install all transitive
        dependencies.
●
    A special dependency are the target platforms.
    ●
        You cannot install a package on an unsupported
        platform.
                                                               21
Package Install - Descriptor
●
    Installable artifacts:
    ●
        Nuxeo bundles (installed in bundles directory)
    ●
        Local third party libraries (installed in Nuxeo 'lib'
        directory)
    ●
        Global third party libraries (installed in container 'lib'
        directory)
    ●
        Static resource fles
    ●
        Confguration fles (installed in Nuxeo 'confg'
        directory)

                                                                     22
Package Install - Example
●
    Use package variables to specify artifact
    locations.




                                                23
Package Install - Variables
●
    In an install.xml you can use a set of useful
    variables like:
    ●
        Package related
        –   package.id, package.name, package version
        –   package.root – the package root
    ●
        Environment
    ●
        env.lib, env.bundles, env.confg, env.syslib
    ●
        sys.timestamp
●
    And also any Java System or Nuxeo Property

                                                        24
Studio Packages
●
    Studio provides integration with Update Center.
●
    You can install a Studio generated plugin in one
    click from Admin Center!
    ●
        You can install either tagged versions either the
        working copy of the project.
●
    Studio Packages are hot deployable.
    ●
        No need to restart the server.
    ●
        Refresh the browser to see the changes.


                                                            25
Update System



 What happens when installing or uninstalling a
                package?




                                                  26
The Installation Process
●
    The package is validated to check if all
    conditions are met – dependencies are resolved
    and the install script is valid.
●
    The installation starts – any user options are
    passed to install commands
    ●
        Each install rule is executed in the order it appear in
        the descriptor.
    ●
        An install log is created by appending in the reverse
        execution order the commands that succeeded.
    ●
        If install succeeds an uninstall.xml fle is generated
        from the install log.                                     27
Automatic Rollback
●
    Installation ensures that failures in an install task
    will not leave the system in an unknown state.
●
    In case of a failure, an automatic rollback is done
    – and thesystem is reset to its initial state (the
    one before starting the installation).
●
    The rollback mechanism executes all the
    commands present in the install log.
●
    Rollback is also done if an uninstall fails.


                                                            28
The Uninstall Process
●
    The uninstall descriptor is auto-generated when
    an install succeeds from the install log.
●
    At install time, a backup is made for any fle
    replaced or removed by the installer.
●
    Also an MD5 fngerprint is generated for any
    installed artifact.
●
    At uninstall backups are restored but only if the
    MD5 of the target fle match the one created by
    the installer.
                                                        29
Uninstall Descriptor




                       30
Hot Reload Support
●
    Limited hot reload after an install / uninstall is
    supported for some packages.
    ●
        Any Studio Packages
    ●
        Any Package that doesn't contain Java code
●
    Hot reload will be improved to also support
    packages containing java classes in the near
    future.



                                                         31
What's Next?
●
    Project delivery through Marketplace
●
    Install wizard improvements
●
    Hot reloading improvements
●
    Nuxeo Studio introspection of Marketplace
    packages
●
    Commercial packages with e-payment




                                                32
Thank you!




             33

Más contenido relacionado

La actualidad más candente

OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveOpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveAlkacon Software GmbH & Co. KG
 
All Work Responsibilities in my whole Life-Testing Profession
All Work Responsibilities in my whole  Life-Testing  ProfessionAll Work Responsibilities in my whole  Life-Testing  Profession
All Work Responsibilities in my whole Life-Testing ProfessionGopi Raghavendra
 
Modern Development Tools
Modern Development ToolsModern Development Tools
Modern Development ToolsYe Maw
 
Sep Nasiri "Upwork PHP Architecture"
Sep Nasiri "Upwork PHP Architecture"Sep Nasiri "Upwork PHP Architecture"
Sep Nasiri "Upwork PHP Architecture"Fwdays
 
An introduction to Node.js application development
An introduction to Node.js application developmentAn introduction to Node.js application development
An introduction to Node.js application developmentshelloidhq
 
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...Alkacon Software GmbH & Co. KG
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a DockerfileKnoldus Inc.
 
Chromium: NaCl and Pepper API
Chromium: NaCl and Pepper APIChromium: NaCl and Pepper API
Chromium: NaCl and Pepper APIChang W. Doh
 
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений"
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений" Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений"
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений" Fwdays
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestMicael Gallego
 
Cli jbug
Cli jbugCli jbug
Cli jbugmaeste
 
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms
 
Integrating the Ruby Debugger into YaST
Integrating the Ruby Debugger into YaSTIntegrating the Ruby Debugger into YaST
Integrating the Ruby Debugger into YaSTlslezak
 
.NET Core in the Real World
.NET Core in the Real World.NET Core in the Real World
.NET Core in the Real WorldNate Barbettini
 
10 tips for continuous integration
10 tips for continuous integration10 tips for continuous integration
10 tips for continuous integrationVladimir Roudakov
 

La actualidad más candente (20)

OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
 
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveOpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
 
Selenium cloud
Selenium cloudSelenium cloud
Selenium cloud
 
All Work Responsibilities in my whole Life-Testing Profession
All Work Responsibilities in my whole  Life-Testing  ProfessionAll Work Responsibilities in my whole  Life-Testing  Profession
All Work Responsibilities in my whole Life-Testing Profession
 
Modern Development Tools
Modern Development ToolsModern Development Tools
Modern Development Tools
 
Sep Nasiri "Upwork PHP Architecture"
Sep Nasiri "Upwork PHP Architecture"Sep Nasiri "Upwork PHP Architecture"
Sep Nasiri "Upwork PHP Architecture"
 
An introduction to Node.js application development
An introduction to Node.js application developmentAn introduction to Node.js application development
An introduction to Node.js application development
 
OpenCms Days 2014 - Updating to OpenCms 9.5
OpenCms Days 2014 - Updating to OpenCms 9.5OpenCms Days 2014 - Updating to OpenCms 9.5
OpenCms Days 2014 - Updating to OpenCms 9.5
 
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
 
Selenium camp v1
Selenium camp v1Selenium camp v1
Selenium camp v1
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a Dockerfile
 
Chromium: NaCl and Pepper API
Chromium: NaCl and Pepper APIChromium: NaCl and Pepper API
Chromium: NaCl and Pepper API
 
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений"
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений" Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений"
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений"
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTest
 
Cli jbug
Cli jbugCli jbug
Cli jbug
 
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
 
Integrating the Ruby Debugger into YaST
Integrating the Ruby Debugger into YaSTIntegrating the Ruby Debugger into YaST
Integrating the Ruby Debugger into YaST
 
GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6
 
.NET Core in the Real World
.NET Core in the Real World.NET Core in the Real World
.NET Core in the Real World
 
10 tips for continuous integration
10 tips for continuous integration10 tips for continuous integration
10 tips for continuous integration
 

Similar a Nuxeo Marketplace and Update Center Guide

Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...ICS
 
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Nuxeo
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package ManagerDMC, Inc.
 
Nh php may 2014 - composer
Nh php   may 2014 - composerNh php   may 2014 - composer
Nh php may 2014 - composerDavid Weingart
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
Understanding NuGet implementation for Enterprises
Understanding NuGet implementation for EnterprisesUnderstanding NuGet implementation for Enterprises
Understanding NuGet implementation for EnterprisesJ S Jodha
 
Organize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterpriseOrganize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterpriseMaarten Balliauw
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)Joe Brockmeier
 
10 11-hart installing pythonsoftware
10 11-hart installing pythonsoftware10 11-hart installing pythonsoftware
10 11-hart installing pythonsoftwareWilliam Hart
 
Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo
 
Intro to NuGet
Intro to NuGetIntro to NuGet
Intro to NuGetwlscaudill
 
Streamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL AtomicStreamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL AtomicMichael Solberg
 
Dynamic infrastructure for development
Dynamic infrastructure for developmentDynamic infrastructure for development
Dynamic infrastructure for developmentBalázs Rostás
 
Build and deploy scientific Python Applications
Build and deploy scientific Python Applications  Build and deploy scientific Python Applications
Build and deploy scientific Python Applications Ramakrishna Reddy
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012Nuxeo
 
Automations Presentation New
Automations Presentation NewAutomations Presentation New
Automations Presentation Newfapestniegd
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentationAxsh Co. LTD
 

Similar a Nuxeo Marketplace and Update Center Guide (20)

Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
 
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package Manager
 
Nh php may 2014 - composer
Nh php   may 2014 - composerNh php   may 2014 - composer
Nh php may 2014 - composer
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Understanding NuGet implementation for Enterprises
Understanding NuGet implementation for EnterprisesUnderstanding NuGet implementation for Enterprises
Understanding NuGet implementation for Enterprises
 
Organize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterpriseOrganize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterprise
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)
 
10 11-hart installing pythonsoftware
10 11-hart installing pythonsoftware10 11-hart installing pythonsoftware
10 11-hart installing pythonsoftware
 
Weblogic12 c installation guide
Weblogic12 c installation guideWeblogic12 c installation guide
Weblogic12 c installation guide
 
Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get Started
 
Intro to NuGet
Intro to NuGetIntro to NuGet
Intro to NuGet
 
Unlocked package
Unlocked packageUnlocked package
Unlocked package
 
Streamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL AtomicStreamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL Atomic
 
Dynamic infrastructure for development
Dynamic infrastructure for developmentDynamic infrastructure for development
Dynamic infrastructure for development
 
Build and deploy scientific Python Applications
Build and deploy scientific Python Applications  Build and deploy scientific Python Applications
Build and deploy scientific Python Applications
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012
 
Automations Presentation New
Automations Presentation NewAutomations Presentation New
Automations Presentation New
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentation
 

Más de Nuxeo

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesNuxeo
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureNuxeo
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicNuxeo
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoNuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportNuxeo
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM ContinuumNuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021Nuxeo
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteNuxeo
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoNuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationNuxeo
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Nuxeo
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionNuxeo
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Nuxeo
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMNuxeo
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...Nuxeo
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondNuxeo
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMNuxeo
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesNuxeo
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsNuxeo
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceNuxeo
 

Más de Nuxeo (20)

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage Companies
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain Future
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a Pandemic
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and Nuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to Support
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM Continuum
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovante
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et Nuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the Competition
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAM
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and Beyond
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof Technologies
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial Intelligence
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
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!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Nuxeo Marketplace and Update Center Guide

  • 1. Nuxeo Marketplace And the Update Center Thierry Delprat, Stefanescu Bogdan, Alain Escaffre 1
  • 2. Agenda ● Nuxeo Marketplace: presentation and objectives ● Nuxeo Marketplace review ● Behind the scenes – how it works 2
  • 3. Nuxeo chose a modular & extensible design... ● To maximize reuse of components in different use cases, thus improving their quality and usability ● To have an active roadmap ● To beneft from a high level of fexibility towards user requirements ● To have a vibrant and popular plugin ecosystem. 3
  • 4. Nuxeo Community contributes plugins... ● Nuxeo provides many plugins (CAS, importer, etc.) ● SI partners have their own internal shared library of typical improvements and demo scenarios ● Solution providers, through Nuxeo Galaxy, already have vertical solutions on top of Nuxeo DM ● Open source community provides several groups of interest in Nuxeo with various plugins (Yerbabuena, ESUP …) 4
  • 5. … that will now fnd their place in the Marketplace ! ● Federate and focus Nuxeo Social Marketplace momentum ● Make it easier for Nuxeo users to access to all the available resources ● Provide a way for our partners to develop their business on top of the platform with (soon) a distribution solution for commercial plugins ● Provide a way to distribute «safe» customizations ● Keep on improving the Nuxeo user experience ! 5
  • 7. Marketplace, Our Recipe ● The Marketplace portal ● A new plugin packaging system ● A solution for set up in only a few clicks ● An optional and multi-level qualifcation/validation scheme ● And … contributors ! 7
  • 8. Update Center Use Cases ● Distribution of addons ● Distribution of Nuxeo Connect patches ● Nuxeo Studio project deployment (with hot reload!) ● Will soon be a deployment solution for your project 8
  • 10. Contribution Process and Guidelines ● Make sure your development is not buggy! ● Create your Marketplace package and test its deployment locally from the Update Center ● Send your package to Nuxeo with a full description ● Documentation -- provide a user guide, a technical guide if necessary, and optionally a link to the source code 10
  • 11. Validation and Support of Marketplace Packages ● Production state: vendor opinion on level of achievement of the plugin towards a go-to- production goal. ● prototype, testing, or ready ● Certifcation status: Level of audit and control by Nuxeo ● none, primary validation, or Nuxeo certifed ● Vendor support: yes/no 11
  • 12. Update Center Nuxeo Server Package Administration 12
  • 13. Nuxeo Update Center ● Update Center ● is a part of Admin Center ● provides a fltered view of Marketplace packages ● manages package downloads ● manages installation wizard for packages 13
  • 14. Browsing Packages ● Update Center provides several views ● Software updates – Installed packages that can be upgraded – Nuxeo patches and fxes ● Local packages – packages that have been installed via Update Center – packages that have been downloaded but not installed ● Marketplace – last version of all Marketplace packages ● Studio – different versions of Studio projects 14 – quick update button
  • 15. Browsing Packages ● Packages can be fltered ● by target platform ● by type (hot fx, addon, studio) ● You can see package details ● description ● validation status ● dependencies ● comments, download counts 15
  • 16. Install Packages ● Downloading package ● managed as a background task ● Dependencies check ● Update Center will prompt for dependencies installation if needed ● Setup wizard ● if needed a setup wizard will be displayed (package confguration) ● Newly installed components may be ● hot deployed deployed on server restart 16 ●
  • 17. Package Model An update package is the bundled feature you want to install. 17
  • 18. Package Structure ● An update feature is packaged as a zip ● A package descriptor fle: package.xml. ● An installation descriptor: install.xml. ● The package data: – JARs to install – confguration fles and other resources to copy on the server. ● Descriptor fles must reside in the ZIP root. 18
  • 19. The Package Descriptor ● A Package is uniquely identifed by its name and version. ● A Package has a type and a set of properties required by the installer. 19
  • 20. Package Properties ● Main properties: ● Title – A title to be used in the UI. ● Description – The package description ● Vendor – the Vendor name ● Platforms – a list of target platforms – The target platforms limit the distributions where the package can be installed. ● Dependencies – a list of dependencies, if any. 20
  • 21. Package Dependencies ● A package may require some other packages to be installed before you install it. ● Dependencies are identifed using the package ID – which has the format: 'name'-'version'. ● Dependencies are transitive – in order to be able to install your package you must install all transitive dependencies. ● A special dependency are the target platforms. ● You cannot install a package on an unsupported platform. 21
  • 22. Package Install - Descriptor ● Installable artifacts: ● Nuxeo bundles (installed in bundles directory) ● Local third party libraries (installed in Nuxeo 'lib' directory) ● Global third party libraries (installed in container 'lib' directory) ● Static resource fles ● Confguration fles (installed in Nuxeo 'confg' directory) 22
  • 23. Package Install - Example ● Use package variables to specify artifact locations. 23
  • 24. Package Install - Variables ● In an install.xml you can use a set of useful variables like: ● Package related – package.id, package.name, package version – package.root – the package root ● Environment ● env.lib, env.bundles, env.confg, env.syslib ● sys.timestamp ● And also any Java System or Nuxeo Property 24
  • 25. Studio Packages ● Studio provides integration with Update Center. ● You can install a Studio generated plugin in one click from Admin Center! ● You can install either tagged versions either the working copy of the project. ● Studio Packages are hot deployable. ● No need to restart the server. ● Refresh the browser to see the changes. 25
  • 26. Update System What happens when installing or uninstalling a package? 26
  • 27. The Installation Process ● The package is validated to check if all conditions are met – dependencies are resolved and the install script is valid. ● The installation starts – any user options are passed to install commands ● Each install rule is executed in the order it appear in the descriptor. ● An install log is created by appending in the reverse execution order the commands that succeeded. ● If install succeeds an uninstall.xml fle is generated from the install log. 27
  • 28. Automatic Rollback ● Installation ensures that failures in an install task will not leave the system in an unknown state. ● In case of a failure, an automatic rollback is done – and thesystem is reset to its initial state (the one before starting the installation). ● The rollback mechanism executes all the commands present in the install log. ● Rollback is also done if an uninstall fails. 28
  • 29. The Uninstall Process ● The uninstall descriptor is auto-generated when an install succeeds from the install log. ● At install time, a backup is made for any fle replaced or removed by the installer. ● Also an MD5 fngerprint is generated for any installed artifact. ● At uninstall backups are restored but only if the MD5 of the target fle match the one created by the installer. 29
  • 31. Hot Reload Support ● Limited hot reload after an install / uninstall is supported for some packages. ● Any Studio Packages ● Any Package that doesn't contain Java code ● Hot reload will be improved to also support packages containing java classes in the near future. 31
  • 32. What's Next? ● Project delivery through Marketplace ● Install wizard improvements ● Hot reloading improvements ● Nuxeo Studio introspection of Marketplace packages ● Commercial packages with e-payment 32