Nuxeo & Modularity
Nuxeo Runtime & Bundles
Component Model
- In Nuxeo architecture everything is a plugin
-
Everything is configurable
- Logic and Data Structures depend on configuration
Component Model
bundle-xyz-api
bundle-xyz-core
Implements
bundle-xyz-custom
Contributes / Extends
Component Model
audit-api
audit-core
Implements
audit-elasticsearch
Contributes Backend
changes where the audit entries are stored
Component Model
audit-api
audit-core
Implements
audit-config
Contributes Audit log customization
changes what is stored in the log
Component Model
bundle-xyz-api
bundle-xyz-core
bundle-custom
Contributes / Extends
bundle-abc-api
bundle-abc-core
bundle-foo-api
bundle-foo-core
Bundle generated by nuxeo-studio targets multiples bundles
Component Model
- Bundles are assembled as an Application at startup time
-
Runtime startup
-
resolve dependencies
- component-xyz depends on component-abc
- component-foo contributes to component-bar
- activate components in the right order
- resolve contribution
- start Application
-
resolve dependencies
Plugins everywhere
One plugin model for
- All layers
- The platform
- Your custom components
About Extension points
- 260 Bundles
-
200+ Components
- 180+ Services exposed
- 280+ Extension points
- 1000+ Contributions
-
200+ Components
Pretty much everything inside the Platform can be customized
Assembling an Application
Assembling an Application
Assembling an Application
Assembling an Application
Anatomy of a Nuxeo based Application
-
Easy maintenance and upgrade
-
Clear separation between infrastructure provided by Nuxeo
and the custom components -
Nuxeo Studio configuration is transparently upgraded
-
Assembling an Application
Assembling an Application
Assembling an Application
UI Node
Converter Node
Importer Node
Scaling / Clustering
Scaling / Clustering
Scaling / Clustering
Scaling / Clustering
Clustering Bundles?
-
We cluster and scale nodes not bundles
-
node = Runtime + set of bundles
-
node = Runtime + set of bundles
-
Each cluster node must be a workable unit
- Runtime
- Repository access
-
Services and APIs
-
Most of the time all nodes are technically equivalent
- Same set of bundles on each node
- Only small configuration differences
- Maintenance & upgrade are much simpler!
Automation
Build, test, package, deploy
Bundles
Test & package
Ship!
About packages
-
Packaging and Deployment
- Debian packages & Brew
- Nuxeo packages (install/update/uninstall)
- VM images / Docker images
- AWS templates
-
Application Deployment
- Docker-Compose / Rancher tempates
- AWS CloudFormation
- Ansible
Big Picture
DEPloy & Updates
versions, updates
Layers
Layers
ZIP Archive
Layers
Debian Package
Layers
VM
Layers
Debian Package
Nuxeo Packages
Layers
Docker
Container
Bundles versions & Packages
Bundles versions & Packages
Bundles versions & Packages
Bundles versions & Packages
Bundles versions & Packages
Bundles versions & Packages
Bundles versions & Packages
Nuxeo Cloud
Hosting Nuxeo on AWS
Nuxeo Cloud on AWS
-
Leverage AWS Security
- VPC / Bastion access
- Encryption possible
-
Leverage AWS Services
- RDS for SQL Storage
- S3 for Binary Storage
- ElasticCache for Caching
-
EC2 deployent
- MongoDB and Elasticsearch
-
Monitoring
- DataDog
Nuxeo Cloud on AWS
Nuxeo Cloud on AWS & Projects
-
Architecture
- Ad-hoc deployment depending on project
- 1, 2, 3...5 VMs depending on requirements
-
can leverage autoscaling
-
Update management
- depends on project organization
-
updates can be Jenkins automated
- if we own the project
Nuxeo on YOUR AWS
-
When customers have IT infrastructure
- Deploy on their AWS
- Leverage VPN and direct access
-
Nuxeo provides
-
The tools & the recipes
-
The tools & the recipes
- Customer can handle their own dev/update cycle
Nuxeo & Containers
Components & Deployment
By Thierry Delprat
Components & Deployment
- 2,176