Date post: | 17-Jan-2015 |
Category: |
Technology |
Upload: | nuxeo |
View: | 955 times |
Download: | 2 times |
1
Nuxeo MarketplaceAnd the Update Center
Thierry Delprat, Stefanescu Bogdan, Alain Escaffre
2
Agenda
● Nuxeo Marketplace: presentation and objectives
● Nuxeo Marketplace review
● Behind the scenes – how it works
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.
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 …)
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 !
6
The Nuxeo Marketplace
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 !
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
9
Package View
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
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
12
Update Center
Nuxeo Server Package Administration
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
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– 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
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
17
Package Model
An update package is the bundled feature you want to install.
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.
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.
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.
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.
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)
23
Package Install - Example● Use package variables to specify artifact
locations.
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
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.
26
Update System
What happens when installing or uninstalling a package?
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.
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.
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.
30
Uninstall Descriptor
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.
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
33
Thank you!