incubator-s4-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Morel (Commented) (JIRA)" <>
Subject [jira] [Commented] (S4-24) Dynamic deployment of S4 applications from a remote repository
Date Wed, 16 Nov 2011 16:13:51 GMT


Matthieu Morel commented on S4-24:

I implemented the first milestone as described above, in

Most of the logic of the deployment manager is factored into the DistributedDeploymentManager

I also included a test in test/java/org/apache/s4/deploy/TestAutomaticDeployment that:
- uses a simple application packaged with the gradle packaging script from
- starts an S4 node with a custom module that includes Zookeeper task assignation and the
distributed deployment manager
- creates a znode for the new app, referencing the packaged application file
- checks that the S4 node detects the new app and correctly starts it.

Next steps will be:
- validate the approach
- improve the declaration of nodes and applications (currently, the only metadata is a URI)
- provide tooling for publishing a new application
- test with multiple nodes
- synchronize among multiple nodes?
- support multiple protocols for fetching s4r archives
> Dynamic deployment of S4 applications from a remote repository
> --------------------------------------------------------------
>                 Key: S4-24
>                 URL:
>             Project: Apache S4
>          Issue Type: Sub-task
>    Affects Versions: 0.5
>            Reporter: Matthieu Morel
>            Assignee: Matthieu Morel
>             Fix For: 0.5
> Use case:
> - at startup or during runtime, s4 nodes are notified of new applications available.
The code for these applications is fetched from a remote repository, installed on S4 nodes,
and the applications are started automatically.
> How does it work?
> - Zookeeper is used for coordination: when a new app is available, it creates a new znode
under /s4-cluster-name/apps/app1
> - S4 nodes are notified of this new znode, which contains the s4r URI as metadata
> - S4 nodes can then fetch the s4r, copy it to a local directory and start it
> - we also need a facility to create the app into Zookeeper, along with required metadata
> For a first milestone, I suggest:
> - a simple file system based repository (can be a distributed file system)
> - deployment only, no unloading
> Later we can add extensions:
> - We could provide various repository clients, depending on the protocol specified, and
on the level of trust of the repository (although for a first version, we would just provide
a simple mechanism and assume a trustworthy environment).
> - more metada in the application znode, in order to control the state of the app, a time
to start / stop, a number of nodes, nodes requirements etc...
> I'll start working on a first implementation, and I'm eager to receive suggestions. 

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message