Use cases
The goal of Petals ESB Deployer is to resolve several deployment problematics:
- how to simplify the deployment of a Petals ESB bus avoiding to use scripts for automating deployment ?
- how to upgrade an existing deployment of a Petals ESB bus to a new version of this Petals ESB bus,
- how to deploy a set of service providers and consumers on different environments, for example DEV, TEST or PROD where the Petals ESB bus topology and external resources are different ?
- how to deploy a Petals ESB bus on different environments, for example STAGING, PRE-PROD, PROD where the Petals ESB bus topology is the same but where machines running Petals ESB bus and external resources are differents ?
Modeling your deployments
Petals ESB Deployer is based on a model defining your Petals ESB bus to deploy. This model contains all components and their configurations forming your Petals ESB bus.
The model of your Petals ESB bus is composed of several parts:
- a Service-units Object Model: that list all service-units that must be deployed into your Petals ESB bus,
- a Topology Object Model: that defines the topology of your Petals ESB bus,
- a Bus Object Model that defines:
- where are running the service-units, on which Petals ESB container of your topology,
- where are running your Petals ESB containers, on which machine,
- where are running your Petals ESB Hazelcast Registry nodes, on which machines,
- which external resources are to be used.

Service-units Object Model
This model defines the set of service units to deploy on your Petals ESB bus. This model will be mainly written by development teams because they have the knowledge of service units to deploy.

This model is composed of following elements:
- service-units, the list of service units that must be deployed,
- service-unit, one service unit to deploy:
- id, the identifier of this service-unit in the model. Can be different from the service unit name,
- url, the URL of the associated archive that can be a service assembly or a deployable service unit.
- placeholders, the set of placeholders that the service unit requires for its execution,
- placeholder, a placeholder required by a service-unit:
- key, the place holder name as used in the service-unit. A value is associated to this placeholder in the bus object model.
Topology Object Model
This model defines the topology of your Petals ESB bus. This model will be mainly written by the Petals ESB bus architect.

This model is composed of following elements:
- topology, the topology definition of your Petals ESB bus, with:
- containers, its different Petals ESB containers as a list of container,
- registry, the registry used in your topology. Optional.
- container, a Petals ESB container member of your topology:
- id, identifier of the Petals ESB container as used as name in the file topology.xml,
Bus Object Model
This model defines your Petals ESB bus. This model will be mainly written by the Petals ESB bus architect in agreement with operators.

Petals Deployment Model
Source code
Maven project work in progress (POC ?)
Example project
Here is a project to try making deployment model for an existing project (with script CLI)