[
https://issues.apache.org/jira/browse/S4-24?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13151292#comment-13151292
]
Matthieu Morel commented on S4-24:
----------------------------------
I implemented the first milestone as described above, in
https://github.com/matthieumorel/s4-piper/tree/deployment-manager
Most of the logic of the deployment manager is factored into the
DistributedDeploymentManager class.
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
https://github.com/leoneu/s4-piper-app
- 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: https://issues.apache.org/jira/browse/S4-24
> 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:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira